Как я могу сделать страницу Shift + пробел в Vim?
-
07-07-2019 - |
Вопрос
У меня есть запись в моем .vimrc, которая перемещает страницу вниз по области просмотра, когда я нажимаю пробел.Это выглядит так:
map <Space> <PageDown>
Я хочу создать еще одно сопоставление клавиш, которое перемещает окно просмотра при удержании клавиши Shift и нажатии клавиши пробела.Я попробовал следующие записи:
map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Ни то, ни другое не работает.Кто-нибудь знает, как добиться этой функциональности?
Решение
Вы не можете. Решение CMS будет работать для gVim, но не в vim, поскольку терминалы не могут различать & Lt; Space & Gt; и < S-Space > потому что проклятия видят их одинаково. Это может произойти в будущем, если vim получит поддержку libtermkey, а ваш терминал поддерживает правильный & Lt; CSI & Gt; последовательности (xterm делает, если правильно настроен; больше ничего не делает).
Другие советы
Если вы используете vim внутри iTerm2, вы можете сопоставить пробел с Ctrl+U, отправив шестнадцатеричный ключ 15.Вот снимок экрана:
Чтобы найти шестнадцатеричный код комбинации клавиш Ctrl+буква, например Ctrl+U, вы можете сделать следующее:
- В vim войдите в режим вставки
- Нажмите ctrl+v, затем ctrl+u, затем ctrl+c, затем ga.
- различные числовые представления будут напечатаны внизу
Вы можете применить эту идею к другим эмуляторам терминала, поддерживающим сопоставление клавиш.
Используйте это:
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
Для OSX:
nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>