Вопрос

У меня есть запись в моем .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.Вот снимок экрана:

enter image description here

Чтобы найти шестнадцатеричный код комбинации клавиш 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top