3

Я пытался редактировать файл .tex с помощью vi. Войдя в режим вставки, я начал использовать клавиши со стрелками, чтобы перейти к нужной строке. Но вместо того, чтобы добраться до этой строки, редактор начал печатать A, B, C, D для каждой из клавиш со стрелками.

Кто-нибудь сталкивался с такой проблемой?

2 ответа2

3

Вряд ли это как-то связано с латексом.

Для клавиш со стрелками нет односимвольных кодов; вместо этого они отправляют контрольные последовательности. Например, клавиша со стрелкой вверх обычно отправляет ESC [ A vi использует termcap или terminfo (скорее, последний в наши дни) для интерпретации этих последовательностей в зависимости от того, какой терминал он использует, указанный в переменной среды $TERM . Вы можете увидеть эти последовательности, например, набрав control-V а затем стрелку вверх в приглашении оболочки (control-V говорит, что нужно буквально интерпретировать следующий символ).

Очевидно, у vi недостаточно информации, чтобы понять, что такое ESC [ A

Есть также альтернативный набор кодов; например, стрелка вверх может отправлять ESC O A . В xterm этот режим можно переключать с помощью нажатия средней кнопки мыши, включая или отключая "Клавиши курсора приложения".

Также обратите внимание, что вы можете использовать h , j , k и l для левого, нижнего, верхнего и правого соответственно. Это может быть проще в использовании, чем клавиши со стрелками, когда вы привыкнете к этому; Вам не нужно убирать правую руку с домашнего ряда клавиатуры.

Что выводит echo $TERM , набранный в приглашении оболочки? Какой эмулятор терминала вы используете (xterm и т.д.)? Какую версию vi вы используете (vim , что-то еще?) На какой ОС вы работаете? Вы используете Cygwin?

0

У меня была такая же проблема на SunOS с PuTTY. Я нашел совет, говорящий сделать файл ~/.vimrc . Так как в моем домашнем каталоге его не было, запуск touch .vimrc решил мою проблему. Это заставило работать backspace.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .