Usando Ctrl o Alt Y retroceso para eliminar la última palabra en Bash


17

En Linux estoy acostumbrado a presionar Ctrl, Backspacepara eliminar la última palabra, pero no sé cómo hacerlo en el terminal Bash.

En OS XI uso Alt- Backspacepara hacer lo mismo.

¿Hay alguna manera de hacer Bash reconoce el Ctrl- o Alt- Backspacecombinación de teclas para borrar la última palabra?

En Linux lo uso terminatorcomo emulador de terminal, en OSX lo uso iTerm2.


1
Alt-⌫ aka Alt- ← aka Alt-Backspace funciona perfectamente bien para mí. Estoy usando Terminator 0.93.
Teddy

Respuestas:


31

Siempre puedes usar Ctrl- W. Elimina la palabra antes del cursor y funciona en cada Bash.

Vea aquí una lista de atajos de teclado Bash .


1
Wow, esto puede haber cambiado la forma en que uso el terminal para siempre. ¡Gracias!
David

3
Esto no responde a la pregunta
Sel

5

Solo necesita configurar Opción como clave Meta en las preferencias de iTerm ( Perfiles »Teclas ).

backward-kill-wordestá vinculado a Meta-Rubout(es decir, Opt-Backspace) de forma predeterminada.

La misma opción existe (aunque menos flexible) en la Terminal.app de Apple.


2
En realidad, debe usar la configuración "+ Esc". Solo establecerlo en "actúa como: Meta" da como resultado que ?se imprima en lugar de que se elimine la palabra.
slhck

@slhck No es para mí. Pero como los desarrolladores lo recomiendan de todos modos, no puede ser algo malo.
Daniel Beck

2

En Terminator puede usar el siguiente " complemento ", junto con

[keybindings]
    kill_word = <Control>BackSpace

en tu archivo de configuración. Esto asignará Ctrl- Backspacea ESCDEL, otro atajo para eliminar la última palabra.


Desafortunadamente, esto dejó de funcionar en el terminador 1.9. ¿Podría proporcionar una solución por casualidad?
Sel

1
Lo siento, dejé de usar Terminator hace mucho tiempo ...
OlivierBlanvillain

2

Puede crear un archivo .inputrcen su directorio de inicio y agregar este contenido dentro de:

"\C-h": backward-kill-word

1
Tenga en cuenta que esto y C-wen la respuesta aceptada difieren en lo que se considera una "palabra". C-wse eliminará de la posición del cursor hasta que encuentre caracteres que no sean espacios y luego un espacio (es decir, "this is a/se=weird |test"donde |marca la posición del cursor "this is test"). Por el contrario, el C-henlace aquí (que se puede enlazar usando bind '"\C-h": backward-kill-word"a .bashrc) produciría "this is a/se= test", ya que básicamente delimita palabras sobre lo que haría una variable bash, no solo espacios.
jeremysprofile

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.