luc*_*iet 192 bash keyboard-shortcuts
如何在命令行中向后删除单词?我真的习惯于某些编辑器使用Ctrl+删除最后一个“单词” Backspace,我也希望在命令行中使用该功能。
我现在正在使用 Bash,虽然我可以向后跳一个词然后向前删除一个词,但我宁愿将其作为快捷键,或将事件作为Ctrl+ Backspace。
怎样才能做到这一点?
kur*_*rtm 260
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$
Run Code Online (Sandbox Code Playgroud)
请注意,人们不必将实际的控制角色放在线上,stty理解推杆^然后你会用控制击中的角色。
这样做之后,如果我点击Ctrl+P它将从该行中删除一个单词。如果我点击Ctrl+ A,它将擦除整行。
Lui*_*uis 54
Alt+Backspace在 bash 和 zsh 中对我有用。
ter*_*don 34
您也可以使用CtrlW.
另一种选择是设置您自己的快捷方式,但这取决于您使用的终端模拟器。对于xterm和rxvt,也许别人,这行添加到您的~/.inputrc(如果它不存在,创建文件):
## rxvt, xterm
"\b":backward-kill-word
Run Code Online (Sandbox Code Playgroud)
gnome-terminal它的同类似乎在AltBackspace默认情况下具有但显然需要您打补丁readline()才能获得CtrlBackspace.
另见:
konsole在 Ubuntu 18.04.4 中按Ctrl+V然后Ctrl+Backspace显示Ctrl+Backspace组合写为^H.
您可以使用 显示所有当前的终端键组合stty -a。在这种情况下,我们要更改werase为^H可以使用
stty werase ^H
Run Code Online (Sandbox Code Playgroud)
对于您想要重新映射的任何其他键,您将再次看到如何使用Ctrl+V后跟组合来编写新组合。
您可以werase通过查看stty -a和查找操作当前绑定到的组合键来找到命令名称(例如)。
| 归档时间: |
|
| 查看次数: |
140239 次 |
| 最近记录: |