Как я могу включить клавишу возврата в VI?

У меня голая установка FreeBSD. Пакет не установлен. И VI не принимает клавишу возврата. (Я нажал клавишу возврата, но ничего не произошло) Как я могу включить клавишу возврата в VI?

О, и я использую Mac и управляю FreeBSD на виртуальной машине или через терминал.

3 ответа

Решение

Вы можете попробовать это в терминале перед запуском 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 клавиша Backspace всегда определялась как 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>, он используется как забой.

Другие вопросы по тегам