Answers:
您应该能够使用Esc,然后使用Backspace删除由斜杠分隔的单词。
您可以通过将其放入.bashrc来更改此设置:
bind '\C-f:unix-filename-rubout'
现在使用Ctrl+f
做您想要的。
C-w:...
,则仍会执行删除到下一个空格的默认行为。在其他键(如F)上运行正常。
stty -a
什么?您是否将control-w作为werase的默认字符?如果使用comman从tty中删除该设置stty werase undef
,那么bash是否可以按预期工作?
对于此特定问题,您还可以使用:
Alt + Backspace
$ cd /home/me/test/a_dir/ # Alt + Backspace
$ cd /home/me/test/ # Alt + Backspace
$ cd /home/me/ # ...
很好的参考:bash单词擦除的冒险
Ctrl+w
或Ctrl + b或unix-filename-rubout
,但要好得多,因为它内置了绑定:M-backspace(Alt + backspace或Esc backspace)
使用bash可以达到预期的效果,将以下内容放入〜/ .bashrc文件中:
bind '"\C-w":backward-kill-word'
点击CTRL+V
和您的按键组合,以查看终端模拟器的外观。例如,CTRL+bksp
可以在不同的终端上解释不同,例如^H
或^?
。该^
角色是一样的CTRL
。
/
一个额外的停止字符,而不是将delete-word-command绑定到另一个键上的方法。我编辑了我的问题
^F
-但"\^F"
在上面的脚本中使用不起作用
stty werase undef
将阻止您在任何程序中使用Cw(绑定将使您可以在readline中使用)