странное поведение vi на OSX Debian ssh terminal

При создании swap-файла я выдаю vi /etc/fstab как root. Файл fstab подходит, отлично. Выполните G $ чтобы перейти к концу строки, и i чтобы войти в режим INSERT. Нажмите стрелку вправо, чтобы переместить курсор на один символ вправо. vi вставляет в C новую строку. Смущенный, я нажимаю клавишу со стрелкой влево. vi вставляет капитал B

Я довольно смущен. Где я даже начинаю выяснять, что здесь происходит? Мне нужно иметь возможность редактировать файлы с помощью vi .

  • Удалить из курсора в конец строки на VI
  • В чем разница между vi и vim?
  • Есть ли у традиционных vi (not vim) поддержка больших файлов?
  • поиск и увеличение значений между символом второй тильды и символом третьей тильды в каждой строке файла txt
  • Ошибка подсветки синтаксиса в syncolor.vim с VIM 8.0 на Ubuntu
  • vim избегать выбора подчеркивания
  • Заменить слово на основе первых n символов
  • Как я могу вставить (переписать) с помощью vim?
  • 3 Solutions collect form web for “странное поведение vi на OSX Debian ssh terminal”

    OSX «vi» представляется vim. В его сообщении версии говорится (для El Capitan ):

     VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 27 2015 16:22:14) Compiled by root@apple.com Normal version without GUI. Features included (+) or not (-): 

    Есть отдаленный шанс, что вы не используете vim, но никто не предложил правдоподобную альтернативу.

    vim принимает последовательности клавиш курсора в режиме insert.

    Однако одна из ошибок заключается в том, что фактическое поведение терминала не соответствует набору описаний терминала с переменной окружения TERM . Например, описание термина «linux» не использует режим приложения , и если вы установили TERM на то, что, фактически работая в терминале, который был инициализирован для использования режима приложения , vim не ожидает последовательности выхода O B , поскольку он ищет спасения [ B. В результате вы получите букву B нажимая клавишу со стрелкой вниз.

    Дальнейшее чтение:

    • Мои клавиши курсора не работают (часто задаваемые вопросы о ncurses)
    • 2. Специальные специальные клавиши ins-special-special (vim-документация)

    Вы можете использовать vim, который улучшен, и может использовать клавиши со стрелками vi в качестве ключей по hjkl для hjkl чтобы переместить курсор. Если vi с псевдонимом vim, проверьте с помощью

     alias vi 

    Поэтому отредактируйте $HOME/.vimrc и поместите в эту строку

     set nocompatible 

    Если вы заинтересованы в unix, я обычно использую этот vimrc

     set nocompatible set backspace=indent,eol,start syntax on imap <esc>OH <esc>0i cmap <esc>OH <home> nmap <esc>OH 0 nmap <esc>OF $ imap <esc>OF <esc>$a cmap <esc>OF <end> 

    Клавиши со стрелками определяются в вашем termcap (5) как escape-последовательности. Это настройка по умолчанию VT100. Вы можете увидеть последовательность в терминале с помощью: ^ v, за которой следует что угодно. Правая стрелка в языке VT100 – это ^ [[C (^ [) – побег. Обратите внимание, что это говорит vi (1), чтобы выйти из вставки, переместить абзац (по крайней мере, ни одна строка в этом случае) и перейти к концу строки. Подобные неожиданные результаты возникают при использовании функциональных клавиш в любой программе, не предназначенной для их обработки.

    Существует 2 решения этой проблемы, которые не являются ни ОС, ни программами, ни терминальными. Первое решение – использовать vi (1), который знает, как справляться с навигацией в режиме вставки. vim (1) является одним из таких vi (1). Он хорошо работает с эмуляторами w / vt100 и имеет собственный графический интерфейс, если вы хотите установить его таким образом. Тем не менее многие считают vim (1) вирусами; находя его медленным и тяжелым. Другие, вероятно, более раздутые варианты включают Eclipse (1) w / vwrapper plugin и emacs (1) с плагином Viper.

    Другим решением является использование vi (1), поскольку оно предназначалось для использования на реальных VT100. Не используйте стрелки или другие многофункциональные функциональные клавиши в режиме вставки. Последовательность клавиш в вопросе:

    G – перейти к последней строке файла $ – перейти к последнему символу текущей строки i – вставить перед текущим символом

    неверно для задачи. Вместо того, чтобы использовать a – добавить текущий символ, поэтому клавиша со стрелкой не нужна, чтобы пройти последний символ на линии.

    ИЛИ, еще лучше

    G – последняя строка A – добавить текущую строку

    Interesting Posts

    Mac OS X find / grep генерирует "unknown –devices option"

    Остановить Kodi от запуска экземпляра Pulseaudio

    Создание сетевого сервера хранения данных, компромиссы с различными конфигурациями RAID?

    Простой иерархический список задач (который позволяет вам перечеркнуть задачи) для linux в репозиториях Ubuntu?

    Изменение символа с другим шаблоном в текстовом файле

    Как я могу безопасно создавать и получать доступ к временным файлам из сценариев оболочки?

    Как заменить список заполнителей в текстовом файле?

    У Solaris есть эквивалент /etc/ld.so.conf?

    Как выполнить повторную команду k'th в конвейере?

    Как удалить маршрут по умолчанию с помощью iproute2

    pvscan –activate: `Команда не принимает параметр: –activate ay.`

    Совместное использование файлов через Bluetooth

    Сравнение каждого файла в двух каталогах и копирование его на другой, если он отличается от его аналога

    Можно ли использовать Grub для запуска двоичного файла EFI?

    Блокировка SSH: подозрительная локальная проблема, а не удаленная

    Linux и Unix - лучшая ОС в мире.