Bash:向后删除直到反斜杠

Bash:向后删除直到反斜杠

我知道我可以一次向后删除一个单词,但很多时候我只想更改路径的一部分。 emacs 中是否有一个命令以及 bash 中的键盘命令可以向后删除直到斜杠?

alt+w一次只做一个词:如何在命令行(bash 和 zsh)中向后删除单词?

答案1

好吧,我实现了一个简单的解决方案..基本上用于ctrl+left-arrow跳回我想要更改的点。然后按ctrl+k向前删除。

(顺便说一句,ctrl+left-arrow在某些终端上并不总是有效,例如 GCP 远程 ssh shell,我想知道为什么)

答案2

如果您处于 vi 模式 ( set -o vi),则需要Esc返回到正常模式,然后db( delete to beginning)。

如果您处于 emacs 模式(通常是默认模式),您可以进行CtrlR向后搜索,然后/搜索斜杠,最后altd向前删除。

答案3

据我了解,您想要正确配置GNU 阅读线(处理文本版本GNU bash的提示)

在 Bash 中,您可以输入

bind '"\ew": backward-kill-word'

然后测试。

要使其永久化,作为用户,您可以编辑~/.inputrc,它的优先级高于 中的系统配置/etc/inputrc。您可以$include /etc/inputrc继承~/.inputrc它。

你想要这一行:

"\ew": backward-kill-word

这通常默认为unix-word-rubout,甚至是 shell 或 bash 前缀的宏,它只使用空格作为分隔符。但backward-kill-word会接受“不是字母也不是数字”的任何内容。

请参阅man 3 readline完整文档。

相关内容