Recientemente comencé a usar Vim. De editores anteriores, estoy acostumbrado a eliminar una palabra completa presionando Ctrl- Backspace. Después de mirar la documentación, descubrí que esto se hizo presionando Ctrl- wen Vim. El problema es que después de acostumbrarse a presión Ctrl- w, he empezado a cerrar pestañas y chats cada vez que mal una palabra (al escribir esta pregunta Cerré esta ficha 5 veces). Así que verifiqué cómo asignar teclas en Vim e intenté esto:
:imap <C-BS> <C-w>
Lamentablemente, no funcionó. Después de un poco de investigación descubrí que el terminal no distingue entre Ctrl- Backspacey Backspace. Vi algunos hacks y parches para solucionar este problema, pero no pude hacer que funcionaran en Terminator (que es el emulador que quiero usar).
¿Hay alguna forma de mapear Ctrl- Backspaceen Vim cuando se usa el terminador?
fuente
Respuestas:
Debido a la forma en que la entrada del teclado se maneja internamente, desafortunadamente esto no es posible actualmente. Algunas combinaciones de teclas, como Ctrl+ no alfabético, no se pueden asignar, y Ctrl+ letra vs. Ctrl+ Shift+ letra no se pueden distinguir. (A menos que su terminal envíe un código de captación de términos distinto , que la mayoría no envía ). En el modo de inserción o de línea de comandos, intente escribir la combinación de teclas. Si no sucede nada / se inserta, no puede usar esa combinación de teclas. Esto también se aplica a
<Tab>
/<C-I>
,<CR>
/<C-M>
/<Esc>
/<C-[>
etc. (La única excepción es<BS>
/<C-H>
.) Este es un punto problemático conocido y es el tema de varias discusiones sobre vim_dev y el canal #vim IRC.Algunas personas (principalmente Paul LeoNerd Evans) quieren arreglar eso (incluso para la consola Vim en terminales que admiten esto), y han presentado varias propuestas, cp. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
Pero a partir de hoy, todavía no se han presentado parches o voluntarios, aunque muchos han expresado su deseo de tener esto en un futuro lanzamiento importante de Vim 8.
fuente
^?
para retroceso y ctrl + retroceso, lo que los hace (AFAIK) indistinguibles. xterm, por otro lado, envía^H
para retroceso y^?
para ctrl + retroceso, haciéndolos distinguibles.^H
) es indistinguible de ctrl + h (^H
). ¿Quizás podamos crear una nueva secuencia de escape para poder distinguir los tres? No sé lo fácil que es eso, pero parece que sería seguro hacerlo porque con el estado actual de las cosas (algunos terminales usan^?
para retroceder, otros^H
y viceversa) no puedo imaginar muchas aplicaciones de terminal (si lo hay) considere el escenario de retroceso ctrl + (sería completamente indeterminado debido a la variedad de terminales) ...