Как получить имя ключа для кодирования для keymap в vimrc?

10

В Emacs, я могу нажать Ctrl-h, kдля описания ключа. Я могу получить имя ключа, даже если оно не определено, например,

C-x <C-M-end> is undefined

Таким образом, я узнал, что имя ключа C-x <C-M-end>.

Но как вы можете получить ключевое имя для Vim?

Я хочу настроить раскладку для Ctrl-Shift-Vи Shift-Insert, но какой код мне нужно использовать?

Можно ли получить имя ключа на лету?

Xiè Jìléi
источник

Ответы:

2

Ближайшая к describe-key( Ctrl+ H, K) я могу найти :mapкоманду. В нем будут перечислены все сопоставления.

Вы также можете запустить :map <key name>, но вы должны указать, <key>используя специальный синтаксис, указанный в
нотации клавиш .

Или вы можете попробовать :mapCtrl+ V<key>, что позволит вам просто нажать клавишу, а не использовать специальный синтаксис.

Поэтому , чтобы связать Ctrl+ Shift+ V, попробуйте следующее:

:map <C-S-v> whatever

или

:mapCtrl+ V Ctrl+ Shift+V whatever

Но убедитесь, что ваша терминальная программа еще не использует это для чего-то особенного, такого как вставка, иначе Vim никогда не увидит нажатие клавиши.

Также см. Map-alt-keys , который помогает объяснить, Altдолжен ли ваш ключ быть записан как <M-x>или <A-x>.

Mikel
источник
Это Ctrl-h, k, а не Ctrl-X, k, что означает уничтожение буфера.
Xiè Jìléi
Извините, это исправлено.
Микель
Я не уверен, если Mили Aбудет сопоставлен Alt. Но <M-h>, <M-l>просто не работает. Я не знаю, является ли имя ключа недействительным или события ключа не были отправлены в Vim. Нет журнала, без понятия.
Xiè Jìléi
Да, Altэто сложно, потому что большинство терминалов отправляют ESCтогда, xкогда Alt+xнажимают, и как Vim узнает, что вы не нажимали ESCтогда x. В основном Altработает только в Gvim.
Микель
5

Чтобы узнать, какая клавиша или комбинация клавиш выводятся в Vim, я обычно открываю пустой буфер с помощью « :enew», захожу в режим вставки, нажимаю control-v, а затем клавишу или комбинацию клавиш, которые я хочу идентифицировать. Этот трюк control-v также может работать в строке: -command, поэтому определение отображений для тестирования довольно просто. Например, « :map » control-vи комбинация клавиш « :echo 'it works'».

Heptite
источник
0

Просто введите Ctrl+ Vна лету и клавиши, которые вы хотите нажать. Если вы не нашли ожидаемого результата (как, например <c-space>, <c-cr>, <M-i>, ...) это просто означает , что вы используете Vim и не GVim. Способ, которым vim понимает введенные ключи, связан с конфигурацией вашего терминала (ов). gvim использует свои собственные определения, поэтому настраивать нечего.

Люк Эрмитт
источник