我知道我可以一次向后删除一个单词,但很多时候我只想更改路径的一部分。 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
( d
elete to b
eginning)。
如果您处于 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
完整文档。