Как я могу сделать Shift + пробел страницы в Vim? - PullRequest
40 голосов
/ 11 ноября 2008

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

map <Space> <PageDown>

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

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

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

Ответы [ 4 ]

32 голосов
/ 11 ноября 2008

Вы не можете. Решение CMS будет работать для gVim, но не в vim, потому что терминалы не могут различить и , потому что curses видит их одинаково. Это может быть возможно в будущем, если vim получит поддержку libtermkey, а ваш терминал поддерживает правильные последовательности (xterm работает, если правильно настроен; пока ничего не происходит).

12 голосов
/ 14 августа 2013

Если вы используете vim внутри iTerm2, вы можете отобразить shift-space на Ctrl + U, отправив шестнадцатеричный ключ 15. Вот снимок экрана:

enter image description here

Чтобы найти шестнадцатеричный код для комбинации ctrl + буква, например ctrl + u, вы можете сделать следующее:

  • В vim войти в режим вставки
  • Нажмите Ctrl + V, затем Ctrl + U, затем Ctrl + C, затем Ga
  • различные числовые представления будут напечатаны внизу

Вы можете применить эту идею к другим эмуляторам терминала, которые поддерживают сопоставление клавиш.

6 голосов
/ 11 ноября 2008

Используйте это:

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

3 голосов
/ 09 октября 2011

Для OSX:

nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>
...