Вы можете попробовать это в терминале перед запуском vi:
$ stty erase [Ctrl-V] [Backspace]
где [Ctrl-V] нажимает Control + V, а [Backspace] нажимает клавишу возврата.
У меня голая установка FreeBSD. Пакет не установлен. И VI не принимает клавишу возврата. (Я нажал клавишу возврата, но ничего не произошло) Как включить клавишу возврата в VI?
О, и я использую Mac и управляю FreeBSD на ВМ или через Терминал.
Вы можете попробовать это в терминале перед запуском vi:
$ stty erase [Ctrl-V] [Backspace]
где [Ctrl-V] нажимает Control + V, а [Backspace] нажимает клавишу возврата.
Что мне помогло - в настройках терминала - выберите вкладку «Дополнительно» - отметьте «Удалить отправляет Ctrl-H»
От :h backspace-delete
:
Клавиши Backspace и Delete
*backspace-delete*
В 3.0 и клавиша удаления, и клавиша Backspace работали как клавиша Backspace в режиме вставки; они удалили символ слева от курсора. В 4.0 клавиша удаления имеет новую функцию: она удаляет символ под курсором, как в командной строке. Если курсор находится после конца строки и установлено «bs», две строки соединяются.
|<Del>| |i_<Del>|
В 3.0 ключ возврата был всегда определен как CTRL-H и удалялся как CTRL- ?. В 4.0 код для клавиши возврата и удаления получен из termcap или termlib и скорректирован на значение «stty erase» в Unix. Это помогает людям, которые определяют символ стирания в соответствии с клавиатурой, над которой они работают.
|<BS>| |i_<BS>|
Если вы предпочитаете backspace и delete в режиме Insert, чтобы иметь старое поведение, поместите эту строку в ваш vimrc:
inoremap ^? ^H
И вы также можете добавить их, чтобы исправить значения для
<BS>
и<Del>
:
set t_kb=^H set t_kD=^?
(Введите ^ H с помощью CTRL-V CTRL-H и ^? С помощью CTRL-V CTRL-? Или
<Del>
.)Если значение для t_kb правильное, а значение t_kD - нет, используйте команду ": fixdel". Он установит t_kD в соответствии со значением t_kb. Это полезно, если вы используете несколько разных терминалов.
|:fixdel|
Когда ^ H не распознается как
<BS>
или<Del>
, он используется как возврат.