Tenga en cuenta que esto funcionará en el terminal y en el modo predeterminado de emacs (que está utilizando si Ctrl+ Welimina la palabra anterior para usted). No funcionará en el modo vi de bash y no afectará a vi / vim. Por lo tanto, esta es solo una respuesta parcial, pero lo mejor que puede ofrecer este usuario de emacs.
Este tipo de cosas es administrado por la readline
biblioteca cuyo comportamiento se puede controlar a través de ~/.inputrc
. Edite (o cree, si no existe) ~/.inputrc
y agregue esta línea:
"\C-H":"\C-W"
Ahora, abra una nueva terminal y debería funcionar.
Explicación
El \C-H
es en realidad Control+ BackSpace. Puede ver los códigos de tecla presionando Ctrl+ y Vluego la tecla que busca. Verás que BackSpacevuelve ^H
.
Ahora, debería ser posible vincular Control+ BackSpacea la función bash que elimina la palabra anterior ( backward-kill-word
o unix-word-rubout
) usando "\C-H": backward-kill-word
. Sin embargo, no puedo hacer que eso funcione. Funciona perfectamente bien con diferentes teclas ( "\C-E": backward-kill-word
por ejemplo, hace Ctrl+ Eeliminar la palabra anterior) pero por alguna razón, no puedo hacer que funcione BackSpace.
Entonces, como solución alternativa, solo asignamos Ctrl+ Backspacea Ctrl+ Wque ya está asignado backward-kill-word
. Entonces, cuando presiona Ctrl+ Backspace, eso se traducirá a Ctrl+ Wque, a su vez, enviará backward-kill-word
. Se me ocurrió la idea de esta solución alternativa de esta publicación SU .