ctrlwé o padrão "matar palavra" (aka werase
).
ctrlumata a linha inteira ( kill
).
Você pode alterá-los com 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$
Observe que não é necessário colocar o caractere de controle real na linha, stty entende colocar ^
e, em seguida, o caractere que você acertaria com o controle.
Depois de fazer isso, se eu pressionar ctrlp, apagará uma palavra da linha. E se eu acertar ctrla, isso apagará toda a linha.
stty
comando, tentei atribuir a palavra "kill word"Ctrl+BckSpc
digitandostty werase
seguido de Ctrl-v Ctrl-Backspace. Isso insere o caractere literal Ctrl-Backspace como argumento parastty werase
. Infelizmente, não é necessário digitarCtrl-Backspace
para excluir a palavra, mas funciona apenas com aBackspace
tecla. Por isso, gostaria de confirmar o pedido do @terdon para aprender como fazer isso. Para redefinir owerase
padrão, usestty werase Ctrl-v Ctrl-w
.ctrl-backspace
. O backspace geralmente é enviado como umctrl-h
ou outroctrl-?
, dectrl-backspace
alguma forma seriactrl-ctrl-backspace
. Eu tentei descobrir se algo diferente foi enviado, mas a massa de vidraceiro, pelo menos, apenas envia backspace quando você digitactrl-backspace
.Você também pode fazer isso com CtrlW.
Outra opção é definir seu próprio atalho, mas isso dependerá do emulador de terminal que você está usando. Para
xterm
erxvt
e talvez outros, adicione esta linha ao seu~/.inputrc
(crie o arquivo se ele não existir):gnome-terminal
e sua aparência parece ter AltBackspacepor padrão, mas aparentemente exige que você faça o patchreadline()
para obter CtrlBackspace.Veja também:
konsole
fonte
Alt+ Backspacefunciona para mim no bash e zsh.
fonte
Ctrl+W
lo exclui o URL inteiro enquantoAlt+Backspace
exclui uma palavra e para de excluir quando um caractere especial é encontrado.ctrl-y
deve puxar / desfazer / colar.No Mac, você pode usar:
Fn+Delete
fonte