2010-04-26 6 views
10

Me gustaría que Ctrl-Backspace elimine la palabra actual en el modo de inserción vim. Desde el interior de xterm puedo sacar esto adelante a través de¿Cómo obtengo Ctrl-Retroceso para eliminar una palabra en vim dentro de gnome-terminal?

:inoremap <C-H> <C-W> 

pero en gnome-terminal no puedo encontrar una manera para que esto ocurra.

Cuando estoy en el modo de inserción vim, si escribo control-v y luego presiono la tecla de retroceso, obtengo^H en xterm, y ^? en gnome-terminal. Desafortunadamente,

:inoremap <C-?> <C-W> 

no hace el truco en gnome-terminal; control-backspace simplemente borra un solo carácter sin importar nada.

relación con los códigos ASCII:

Gnome-terminal le permite cambiar el carácter de retroceso en Editar -> Preferencias del perfil -> Compatibilidad. Por desgracia, no hay opción funciona, por lo que yo puedo decir: el carácter que aplico para retroceder a través de los ajustes, si lo intento mapear el personaje en sí, como

:inoremap <C-H> <C-W> 

de retroceso y de control de retroceso a continuación, regular, tanto en borrar toda una palabra; y si lo intento de control de la cartografía más el carácter, como

:inoremap <C-^H> <C-W> 

continuación, la tecla de retroceso regular y control de retroceso simplemente borrar un solo carácter.

Respuesta

10

libvte de gnome-terminal necesitaría ser parchado.

libvte ya tiene varias opciones para mapear el retroceso, ninguna de las cuales distingue a Ctrl-backspace. Necesita una opción que sí lo haga, tal vez una que siga el comportamiento de la consola de Linux (^? Para retroceso,^H para Ctrl-retroceso). Ver this gnome bug.


actualización de 2015: esto se corrigió en 23c7cd0f99d504cbab06d4c27254d4f3e2807ba8.

libvte 0.41.90, 0.40.3 y más reciente tienen la solución.

+0

¿Cómo podemos hacer que este parche funcione? ¿Qué pasos debería tomar (para recompilar libvte y gnome-terminal)? –

+0

@StevenLu Reenviar-el parche, exponer la configuración a gnome-term (puede editar el gconf/dconf directamente desde gconf-editor), asegúrese de que su libvte recompilado esté en la ruta de carga. – Tobu

+2

Parece que este parche recibió algo de atención el mes pasado y podría lanzarse pronto. No puedo esperar Necesito ctrl-backspace en la consola vim para cordura. – trusktr

Cuestiones relacionadas