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

Ska*_*Rat 50 command-line shell bash keyboard-shortcuts

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

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

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

例子:

vim /foo/bar^W
vim /foo/
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 35

对于此特定问题,您还可以使用:

Alt + Backspace

$ cd /home/me/test/a_dir/    # Alt + Backspace
$ cd /home/me/test/          # Alt + Backspace
$ cd /home/me/               # ...
Run Code Online (Sandbox Code Playgroud)

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

  • 惊人的!大多数其他答案建议将`Ctrl+w` 或 Ctrl+b 或其他东西重新绑定到`unix-filename-rubout`,但有一个内置绑定要好得多:M-backspace(Alt+backspace 或 Esc backspace) (3认同)

小智 30

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

stty werase undef
bind '\C-w:unix-filename-rubout'
Run Code Online (Sandbox Code Playgroud)

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

  • 应该注意的是,`stty werase undef` 将阻止您在任何程序中使用 Cw(绑定将允许您在 readline 中使用) (4认同)

Not*_*Now 27

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

你可以通过把它放在你的 .bashrc 中来改变它:

bind '\C-f:unix-filename-rubout'
Run Code Online (Sandbox Code Playgroud)

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


小智 7

使用 bash 您可以获得所需的效果,将以下内容放入您的 ~/.bashrc 文件中:

bind '"\C-w":backward-kill-word'
Run Code Online (Sandbox Code Playgroud)

点击CTRL+V和您的组合键以查看终端模拟器的外观。例如,CTRL+bksp可以在不同的终端上进行不同的解释,例如^H^?。该^角色是一样的CTRL