在 Bash Emacs 模式下,有没有办法删除直到前一个斜杠字符?
例如,如果我输入命令cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path
并只想删除reallylongincorrectfolder
,有什么快捷方式吗?
对于我来说,这是 Bash 中非常常见的场景。
类似于 vi 的东西dF<char>
?
答案1
bind -P |grep unix-filename-rubout
要测试键绑定,例如Ctrl- b:
bind \\C-b:unix-filename-rubout
如需永久使用,请将其添加到~/.inputrc
答案2
Alt-Backspace和Ctrl-w通常映射到backward-kill-word
,它的作用是这个。如果你想知道它在你的系统上映射到什么(如果有的话),运行bind -P | grep '^backward-kill-word'
。
正如解释的那样@Barmar,这与 不同unix-word-rubout
,后者移除了前一个空间边界。
答案3
将其放入你的.inputrc
并启动一个新 shell:
C-b:unix-filename-rubout
Ctrl-b现在向后擦除到下一个斜线。
涅槃!
不要忘记Ctrl——将启动您的编辑器XCtrl,E以便您可以轻松地编辑复杂的命令行。