%3F.png)
¿Cómo puedo eliminar una palabra al revés en la línea de comando? Realmente estoy acostumbrado a que algunos editores eliminen la última 'palabra' usando Ctrl+ Backspace, y también me gustaría esa funcionalidad en la línea de comando.
Estoy usando Bash en este momento y, aunque podría retroceder una palabra y luego eliminarla hacia adelante, prefiero tener esto como una tecla rápida o un evento como Ctrl+ Backspace.
¿Cómo se puede lograr esto?
Respuesta1
Ctrl+ Wes la "palabra asesina" estándar (también conocida como werase
).
Ctrl+ Umata toda la línea ( kill
).
Puedes cambiarlos con stty
.
-bash-4.2$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = <undef>;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
-bash-4.2$ stty werase ^p
-bash-4.2$ stty kill ^a
-bash-4.2$
Tenga en cuenta que no es necesario poner el personaje de control real en la línea, stty
se entiende cómo ponerlo ^
y luego el personaje que golpearía con el control.
Después de hacer esto, si presiono Ctrl+ Pse borrará una palabra de la línea. Y si presiono Ctrl+ A, se borrará toda la línea.
Respuesta2
Alt+ Backspaceme funciona en bash y zsh.
Respuesta3
También puedes hacer esto con CtrlW.
Otra opción es configurar tu propio acceso directo, pero esto dependerá del emulador de terminal que estés utilizando. Para xterm
y rxvt
tal vez otros, agregue esta línea a su ~/.inputrc
(cree el archivo si no existe):
## rxvt, xterm
"\b":backward-kill-word
gnome-terminal
y los de su calaña parecen tener AltBackspacepor defecto peroaparentementerequiere que parchee readline()
para obtener CtrlBackspace.
Ver también:
Respuesta4
Sorprendentemente, esctambién deletefunciona en macOS.
Además, si se utilizaiTerm2, puedes actualizar el valor predeterminadoperfil:
Keys > Key Mapping > Presets > Natural Text Editing