Bash:删除光标前面的单词

Bash:删除光标前面的单词

考虑以下 bash 命令行,其中 ^ 表示光标位置:

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

我想提交一个具有相同消息的其他文件。如何删除当前单词,从光标位置到下一个空格?是否还有向后删除的快捷方式,从光标向后到第一个空格?

更新: ctrl+w向后删除,但哪个快捷方式可以向前删除一个单词?

答案1

我回答过类似的问题在 unix.stackexchange.com 上

Bash 具有默认不受约束的 readline 命令。您可以在参考资料中找到它们: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

您要查找的命令名为“shell-backward-kill-word”。您必须先选择快捷方式。我们使用 Crtl+p,因为它是“上一个命令” - 与向上箭头相同。

bind '"\C-p": shell-backward-kill-word'

唯一的区别是您必须使用“shell-kill-word”命令,因为您想要删除前向命令。

还有一个“kill-word”命令,带有Meta+d快捷键(如果您没有 Meta 键,请尝试Esc+ )。它一次只会删除路径的一部分。d

答案2

在 OSX Mavericks 上测试了esc+dalt/ opt+ d,它们在那里也能正常工作。

相关内容