Bash readline 删除直到上一个斜杠

Bash readline 删除直到上一个斜杠

在 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-BackspaceCtrl-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——将启动您的编辑器XCtrlE以便您可以轻松地编辑复杂的命令行。

相关内容