zsh 内置 `r` 命令有什么用?

zsh 内置 `r` 命令有什么用?

我不小心r在 shell 中输入了一些内容,得到的似乎是我上次运行的命令的重复。

man zshbuiltins,毫无帮助,这:

r- 与...一样fc -e -

文档fc 几乎无法穿透但我还是总结出了以下几句话:

  • fc [ -eename] [ -LI ] [ -mmatch] [old=new... ] [first[last] ]

  • 编辑器程序埃纳梅在包含这些历史事件的文件上调用....当编辑完成后,执行编辑的命令。

  • 如果埃纳梅-,没有调用编辑器。

在我看来, 的行为r类似于感叹号!,因为它重播历史。事实上,如果我setopt banghist重新打开 bang ,r man和之类的东西! man似乎都会重播我对人类的最后呼唤。

r和之间有何相同点和不同点!?在什么样的假设场景中我可以使用r

答案1

您很好地引用了手册页中的正确段落。

继承r,因为狂欢或者韓軟體知道这个命令。我认为实现是为了尽可能与这三个主要 shell 兼容。

另一方面,历史爆炸机制!起源于韓軟體可以使用 禁用它setopt NO_BANG_HIST

我想到的这两种机制之间的一个区别是r和的!解析方式不同,as!是保留字,但r只是一个(内置)命令。这意味着你可以写例如

$ echo my last command was !!

SPACE按下或ENTER后,具体设置取决于你

$ echo my last command was man zshexpn

当然r,除非您使用命令替换,否则这是不可能的。$(r)

所以,我认为这一切都归结为个人喜好或习惯(如果你以前使用或者韓軟體)...

相关内容