考虑以下 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+d和alt/ opt+ d,它们在那里也能正常工作。