Як отримати ім'я ключа, яке потрібно закодувати для 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, але що код я повинен використовувати?

Чи можливо отримати ключове ім’я на льоту?

Відповіді:


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 , що допомагає пояснити, чи Altслід ваш ключ записати як <M-x>або <A-x>.


Це 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натиснута, і як Вім знаю , що ви не натиснули ESCтоді x. В основному Altпрацює лише в Gvim.
Мікель

5

Щоб дізнатись, який ключ або комбінація клавіш виводиться у Vim, я зазвичай відкриваю порожній буфер з " :enew", входжу в режим вставки, натискаю control-v, потім клавішу або комбінацію клавіш, яку я хочу ідентифікувати. Цей трюк control-v також може працювати в рядку: -command, тому визначити відображення для тестування досить просто. Наприклад, " :map " control-vі комбінація клавіш, " :echo 'it works'".


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.