Я предполагаю, что вы используете 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