2

На некоторых машинах Linux, когда я использую vim, я могу без проблем использовать кнопки PageDown, PageUp, Home, End без проблем. Однако на некоторых других машинах эти кнопки дают мне забавные символы.

Почему это так и что я могу сделать?

Спасибо!

2 ответа2

0

Я предполагаю, что вы используете vim в терминале, а не в версии с графическим интерфейсом, gvim.

Различные терминалы отправляют разные символы или последовательности символов в приложения, запущенные в них, когда пользователь вводит клавишу движения, такую как PageDown. Чтобы определить набор символов или последовательности символов, которые текущий терминал отправляет для представления этих ключей, Vim обращается к базе данных terminfo. Он использует переменную окружения TERM для определения типа текущего терминала, а затем обращается к определениям terminfo тех ключей, которые используются этим терминалом.

Если определения ключей для текущего значения TERM соответствуют возможностям вашего текущего терминала, все работает нормально. Если значение TERM неверно для вашего терминала, или если база данных terminfo неполная или отсутствует, Vim не знает, как интерпретировать символы или последовательности символов, отправленные вашим терминалом, поэтому он просто вставляет символы в ваш текст или интерпретирует их как команды Vim.

Наиболее вероятной причиной проблемы является то, что TERM установлен неправильно для терминала, который вы используете. Самое простое решение - выяснить, какой тип терминала вы используете, найти имя terminfo для него в /usr /share /terminfo или /usr /lib /terminfo и добавить такую строку в ваш ~ /.bashrc:

export TERM=thetermifoname

Например,

export TERM=xterm
0

Мое первое предположение состоит в том, что на некоторых машинах Linux вы работаете в "несовместимом" режиме, который включает множество дополнительных функций Vim, в том числе клавиши со стрелками и тому подобное, но те, в которых клавиши не работают, вы не работаете.

Vim автоматически переходит в режим "nocompatible", когда у вас есть ~/.vimrc, но некоторые дистрибутивы устанавливают системный vimrc, который устанавливает опцию "nocompatible", даже без ~/.vimrc.

Увидеть:

:help 'nocompatible'

(С одинарными кавычками.)

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