#1 楼
Ctrl + W是标准的“ kill word”(又名werase
)。Ctrl + U会杀死整行(
kill
)。您可以使用
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$
请注意,不必在行上放置实际的控制字符,
stty
可以理解先将^
插入,然后再输入要使用控制键的字符。执行完此操作后,如果我按Ctrl + P,它将删除一个单词线。如果我按Ctrl + A,则会删除整行。
#2 楼
Alt + Backspace在bash和zsh中对我有效。评论
不适用于iterm :(
– Akarsh Satija
16年6月1日在10:25
例如,删除URL,然后使用Ctrl + W删除整个URL,而Alt + Backspace则删除一个单词,并且在发现特殊字符时停止删除。
– Metafaniel
16年8月24日在15:20
和往常一样,您可以按ctrl键拉/撤消/粘贴。
– Pablo A
18-09-20在0:04
这为iterm解决了这个问题:github.com/fish-shell/fish-shell/issues/2124
– Pascalius
19年1月3日在10:13
Ctrl + W关闭cmder中的标签。
– Smart Manoj
20 Dec 15'在10:41
#3 楼
您也可以使用CtrlW来执行此操作。另一个选项是设置您自己的快捷方式,但这取决于您使用的终端仿真器。对于
xterm
和rxvt
以及其他可能的代码,请将此行添加到您的~/.inputrc
(如果文件不存在,请创建该文件):默认情况下,但显然要求您修补gnome-terminal
才能获得CtrlBackspace。另请参见:
https://superuser.com/questions/95626/ control-backspace-unix-kill-rubout-for-readline
https://help.ubuntu.com/community/HowToReadline
#4 楼
在Ubuntu 18.04.4中,先按Ctrl + V,再按Ctrl + Backspace会显示Ctrl + Backspace组合写为^H
。您可以使用
stty -a
显示所有当前的终端键组合。在这种情况下,我们想将werase
更改为^H
,可以使用stty werase ^H
要重新映射的任何其他键,您将再次看到如何使用Ctrl + V组合新组合。
通过查看
werase
并查找当前绑定到某个动作的键组合,您可以找到命令名称(例如stty -a
)。评论
现在是2020年,我们可以在Linux上正确使用退格键:)。好消息是,我认为这不是特定于Ubuntu的(有关某些信息,请参阅cs.colostate.edu/~mcrob/toolbox/unix/keyboard.html)。我在arch和^ H的每种情况下都尝试了几种不同的终端模拟器。
– Pippip19
20年8月30日在17:40
#5 楼
在Mac上,您可以使用:Fn + Delete
评论
这样会删除光标前面的1个字符,而不是后面的1个字
–丹妮德
16-10-14在18:45
不知道这是否仍然有用,但是在Mac上为
–哈桑
17年1月15日在2:15
评论
使用stty命令,我尝试通过键入stty werase后跟Ctrl-v Ctrl-Backspace来将“ kill word”分配给Ctrl + BckSpc。这会插入文字Ctrl-Backspace字符作为stty werase的参数。不幸的是,它不需要键入Ctrl-Backspace即可删除单词,而只能使用Backspace键。因此,我想赞同@terdon的要求以学习如何执行此操作。要将werase重置为默认值,请使用stty werase Ctrl-v Ctrl-w。
–提莫西·马丁(Timothy Martin)
13-10-10在7:26
@TimothyMartin我对如何执行ctrl-backspace有点困惑。退格通常以ctrl-h或ctrl-?的形式发送,因此ctrl-backspace将以某种方式成为ctrl-ctrl-backspace。我确实试图弄清楚是否发送了其他消息,但是至少在键入ctrl-backspace时,腻子才发送退格键。
–kurtm
13-10-10在14:13
ctrl + w可以有效删除单词,但它也会复制到剪贴板上,从而删除您存储的所有内容(或将其向下推?)。
–伊利亚·林恩(Elijah Lynn)
2015年12月28日在17:44
esc-删除刚刚起作用的:-)
–雷恩·伍勒(Rene Wooller)
16-11-23在5:53
我是否正确理解,尽管接受了这个答案并且200票都没有人知道如何将向后删除字映射到CTRL + Backspace。 (我在其他任何地方都有该组合设置,因此我真的很想保留它。)
– Kvothe
20年8月6日在8:43