¿Cómo obtener el nombre de clave que se codificará para keymap en vimrc?

10

En Emacs, puedo presionar Ctrl-h, kpara describir una clave. Puedo obtener el nombre clave incluso si no está definido, por ejemplo,

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

Por lo tanto, llegué a saber que el nombre clave es C-x <C-M-end>.

Pero, ¿cómo puedes obtener el nombre clave de Vim?

Quiero configurar un mapa de teclas para Ctrl-Shift-Vy Shift-Insert, pero ¿qué código debo usar?

¿Es posible obtener el nombre de la clave sobre la marcha?

Xiè Jìléi
fuente

Respuestas:

2

Lo más cercano que puedo encontrar a describe-key( Ctrl+ H, K) es el :mapcomando. Enumerará todas las asignaciones.

También puede ejecutar :map <key name>, pero debe especificar el <key>uso de la sintaxis especial que figura en
la notación de clave .

O puede probar :mapCtrl+ V<key>, que debería permitirle simplemente presionar la tecla en lugar de tener que usar la sintaxis especial.

Entonces, para vincular Ctrl+ Shift+ V, intente esto:

:map <C-S-v> whatever

o

:mapCtrl+ V Ctrl+ Shift+V whatever

Pero asegúrese de que su programa de terminal no utilice esto para algo especial como pegar, de lo contrario Vim nunca verá la tecla presionada.

También vea map-alt-keys , que ayuda a explicar si su Altclave debe escribirse como <M-x>o <A-x>.

Mikel
fuente
Es Ctrl-h, k, no Ctrl-X, k que significa matar búfer.
Xiè Jìléi
Lo siento, arreglé eso.
Mikel
No estoy seguro de si será asignado Mo Ano Alt. Pero <M-h>, <M-l>simplemente no funciona. No sé si el nombre de la clave no es válido o si los eventos clave no se han enviado a Vim. Sin registro, sin pista.
Xiè Jìléi
Sí, Altes difícil, porque la mayoría de los terminales envían ESCa continuación, xcuando Alt+xse pulsa, y cómo sabe Vim que no presiona ESCa continuación x. Básicamente Altsolo funciona en Gvim.
Mikel
5

Para averiguar qué salida de una tecla o combinación de teclas genera en Vim, generalmente abro un búfer en blanco con " :enew", ingreso al modo de inserción, presiono control-v, luego la tecla o combinación de teclas que quiero identificar. Este truco control-v también puede funcionar en la línea: -command, por lo que definir asignaciones para pruebas es bastante fácil. Por ejemplo, " :map ", control-vy la combinación de teclas, " :echo 'it works'".

Heptita
fuente
0

Simplemente escriba Ctrl+ Vsobre la marcha y las teclas que desea presionar. Si no encuentra el resultado esperado (como por ejemplo <c-space>, <c-cr>, <M-i>, ...) sólo significa que está utilizando vim y no gVim. La forma en que vim entiende las teclas escritas está vinculada a la configuración de su (s) terminal (es). gvim usa sus propias definiciones, por lo tanto no hay nada que configurar.

Luc Hermitte
fuente