Вопрос или проблема
После недавнего обновления Ubuntu поведение использования vim внутри xfce4-terminal изменилось. Горячие клавиши “Shift+Page Up” и “Shift+Page Down” назначены в xfce4-terminal для “Прокрутка на одну страницу вверх” и “Прокрутка на одну страницу вниз” соответственно, т.е. они имитируют поведение, которое терминалы UNIX имели в течение десятилетий.
К сожалению, как только я запускаю vim в терминале, похоже, что эти клавиши больше не обрабатываются, так как они не прокручивают терминал назад к содержимому, которое было до запуска vim. При использовании xterm вместо xfce4-terminal все работает как ожидается. Есть ли какие-либо настройки, которые позволят мне восстановить старое поведение UNIX и не изменять поведение терминала в зависимости от того, что в данный момент выполняется в оболочке?
xfce4-terminal версии 1.1.3, vim версии 9.1.
Ответ или решение
Чтобы предотвратить передачу комбинаций клавиш Shift+Page Up и Shift+Page Down от xfce4-terminal в vim, вам потребуется внести изменения в конфигурацию терминала и vim. Вот подробное руководство, как это сделать:
Понимание проблемы
С момента обновления Ubuntu, поведение комбинаций клавиш Shift+Page Up/Down в xfce4-terminal изменилось. Эти комбинации теперь используются для прокрутки терминала вверх и вниз, соответственно. Однако, внутри vim эти клавиши не ведут себя так, как ожидалось, препятствуя удобной навигации по содержимому, выведенному до запуска vim. Проблема, вероятно, вызвана изменением управления событиями клавиатуры в новой версии xfce4-terminal (1.1.3) и взаимодействием с vim (9.1).
Решение
-
Настройка xfce4-terminal:
- Откройте настройки xfce4-terminal. Обычно это можно сделать через верхнее меню терминала, выбрав "Edit" (Редактировать) -> "Preferences" (Настройки).
- Перейдите в раздел "Keyboard" (Клавиатура).
- Убедитесь, что у вас есть возможность редактировать действия для Shift+Page Up/Down, чтобы эти комбинации клавиш не применялись глобально. Если такой опции нет, следуйте следующим инструкциям.
-
Использование альтернативных клавиш для прокрутки в vim:
- Если xfce4-terminal не позволяет изменить назначение клавиш для определённых приложений, настройте vim для альтернативных клавиш. Добавьте в файл
.vimrc
(обычно находится в вашем домашнем каталоге) следующую строку, чтобы переназначить другие комбинации для прокрутки:nmap <C-u> <C-b> nmap <C-d> <C-f>
- Эти команды назначат Ctrl+u и Ctrl+d для прокрутки на страницу вверх и вниз, соответственно.
- Если xfce4-terminal не позволяет изменить назначение клавиш для определённых приложений, настройте vim для альтернативных клавиш. Добавьте в файл
-
Поиск решений через конфигурацию терминала:
- Некоторые версии xfce4-terminal позволяют использовать ключи конфигурации, которые можно изменить через командный файл или напрямую в GUI, чтобы не блокировать Shift+Page Up/Down в сторонних приложениях как vim.
- Попробуйте исследовать документацию xfce4-terminal или сообщества Ubuntu/Xfce для поиска более кастомизированных решений, если стандартная настройка не помогает.
-
Переход на другой терминал, если проблема сохраняется:
- Если ни одно из решений не подходит, рассмотрите возможность использования другого терминального эмулятора, такого как xterm, который, как вы заметили, обрабатывает эти комбинации клавиш ожидаемым образом.
Заключение
Проблема с передачей Shift+Page Up/Down в vim из xfce4-terminal связана с особенностями конфигурации и обработки событий клавиатуры в обновлённых версиях терминала. Попробуйте предложенные изменения в настройках терминала и vim, чтобы вернуть привычное поведение. Не забывайте обновлять ваши версии программ при выходе новых стабильных обновлений, которые могут предложить встроенные решения этой проблемы.
Эти меры помогут не только восстановить ожидаемую функциональность вашего рабочего окружения, но и повысят вашу производительность при работе с vim в xfce4-terminal.