Как я могу сделать страницу смены + пробел в Vim?
У меня есть запись в моем .vimrc, которая делает ее страницей в окне просмотра, когда я попал в пробел. Это выглядит так:
map <Space> <PageDown>
Я хочу создать другое ключевое сопоставление, в котором страницы просмотра отображаются вверх, удерживая shift и ударяя пробел. Я пробовал следующие записи:
map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Ни одна из них не работает. Кто-нибудь знает, как достичь этой функциональности?
Ответы
Ответ 1
Вы не можете. Решение CMS будет работать для gVim, но не в vim, поскольку терминалы не могут различать <Space> и < S-Space > потому что проклятия видят их одинаково. Возможно, в будущем, если vim получит поддержку libtermkey, а ваш терминал поддерживает правильную <CSI> последовательности (xterm делает, если правильно настроено, ничего еще не делает).
Ответ 2
Если вы используете vim внутри iTerm2, вы можете перевести shift-space в ctrl + U, отправив шестнадцатеричный ключ 15. Здесь снимок экрана:
![enter image description here]()
Чтобы найти шестнадцатеричный код для комбинации ctrl + letter, например ctrl + u, вы можете сделать следующее:
- В режиме vim введите режим вставки
- Нажмите Ctrl + V, затем ctrl + u, затем ctrl + c, затем ga
- различные числовые представления будут напечатаны внизу
Вы можете применить эту идею к другим эмуляторам терминалов, которые поддерживают отображение ключей.
Ответ 3
Используйте это:
map <Space> ^D " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space
Чтобы правильно получить символы ^ D и ^ U, просто нажмите Control-V Control-D и Control-V Control-U
Ответ 4
Для OSX:
nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>