![替换要在 zsh 中执行的命令中的字符串](https://linux22.com/image/143648/%E6%9B%BF%E6%8D%A2%E8%A6%81%E5%9C%A8%20zsh%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
假设我已经编写了以下命令,但尚未按 Enter 键来执行它:
$ ls dir1 dir2 dir3
有没有一种方法可以替换给定的字符,而无需在每个位置手动更改它们?例如,我想按一些快捷键,输入要替换的字符串(例如,dir
),然后输入另一个字符串作为其替换(例如“目录”)。
答案1
有一个replace-string
可自动加载的小部件。添加到您的~/.zshrc
:
autoload replace-string
zle -N replace-string
zle -N replace-string-again
bindkey '\eg' replace-string-again
bindkey '\er' replace-string
然后按Alt+r即可调用。Alt+g重复上次替换。info zsh replace-string
详情请参阅。