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

8794
Eonil

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

О, и я использую Mac и управляю FreeBSD на ВМ или через Терминал.

4
Что вы имеете в виду "не принимает возврат"? Вы видите что-то вроде `^ H`, вообще ничего или как? Eelvex 13 лет назад 0

3 ответа на вопрос

3
Majenko

Вы можете попробовать это в терминале перед запуском vi:

$ stty erase [Ctrl-V] [Backspace] 

где [Ctrl-V] нажимает Control + V, а [Backspace] нажимает клавишу возврата.

1
user193492

Что мне помогло - в настройках терминала - выберите вкладку «Дополнительно» - отметьте «Удалить отправляет Ctrl-H»

Здравствуйте и добро пожаловать в Super User. Ваш ответ был бы гораздо более полезен для спрашивающего, а также для будущих посетителей, если бы он объяснил * почему и как * это решает проблему спрашивающего. SU - это сайт сообщества вопросов и ответов, который лучше всего работает, когда ответы каноничны для рассматриваемой проблемы (вы можете прочитать рекомендации [ответ]). kopischke 11 лет назад 0
-1
Dennis Williamson

От :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>, он используется как возврат.

Это для ВИМ - не ВИ. Они очень разные в своих наборах команд. Majenko 13 лет назад 0
(Этот вопрос возникает в результатах поиска Google для проблемы «backspace не работает» в `vim`.) Инструкции в этом ответе не сработали для меня. Однако размещение `set backspace = 2` в конфигурации vim помогло. vadipp 11 лет назад 0