是否可以配置 ctrl-w (删除单词)?

是否可以配置 ctrl-w (删除单词)?

通常,Ctrl+W会删除回最后一个空格。

是否可以将其配置为使用其他字符,例如/

编辑:更清楚地说:我不想为其配置密钥,我/也想停止删除。

例子:

vim /foo/bar^W
vim /foo/

答案1

对于这个具体问题,您还可以使用:

Alt+Backspace

$ cd /home/me/test/a_dir/    # Alt + Backspace
$ cd /home/me/test/          # Alt + Backspace
$ cd /home/me/               # ...

很好的参考:bash 的单词擦除冒险

答案2

对我有用的是将以下几行添加到我的 .bashrc 中

stty werase undef
bind '\C-w:unix-filename-rubout'

您需要 undef 行,否则 bash 会忽略您的新绑定C-w

答案3

您应该能够使用 Esc,然后使用退格键来删除由斜杠分隔的单词。

您可以通过将其放入 .bashrc 中来更改此设置:

bind '\C-f:unix-filename-rubout'

现在用来Ctrl+f 做你想做的事。

答案4

我不确定这是否特定于 Mac OS,但如果不设置此 readline 选项,我就无法使用 Cw 做任何事情:

set bind-tty-special-chars Off

我将其添加到我的 ~/.inputrc 中,以及:

C-w: backward-kill-word

现在我可以一次向后删除一个单词。

来源:https://shallowsky.com/blog/linux/bash-word-erase.html

相关内容