Подтвердить что ты не робот

Как я могу сделать страницу смены + пробел в Vim?

У меня есть запись в моем .vimrc, которая делает ее страницей в окне просмотра, когда я попал в пробел. Это выглядит так:

map <Space> <PageDown>

Я хочу создать другое ключевое сопоставление, в котором страницы просмотра отображаются вверх, удерживая shift и ударяя пробел. Я пробовал следующие записи:

map <Shift><Space> <PageUp>
map <S-Space> <PageUp>

Ни одна из них не работает. Кто-нибудь знает, как достичь этой функциональности?

4b9b3361

Ответ 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>