zsh:如何检索上一个命令行?

zsh:如何检索上一个命令行?

我想创建一个命令来获取匹配的先前命令,如下所示:

match-latest "ssh root@150"

但随后退出并使用最新的匹配项填充命令提示符,例如:

owilliams@OWILLIAMS010451 ~/go/ % ssh [email protected]

并将其留给用户编辑(如果需要)并自行按 Enter 键。这可能吗?我该怎么做呢?

zsh我在 MacBook Pro OSX 上使用5.8

答案1

提供了多种从历史记录中检索命令行的方法。这里只是其中的一些选择。

键绑定

  • 可单步执行先前的命令行。
  • Alt.可单步执行遗言每个先前的命令行。
  • CtrlR(“反向”)并开始输入搜索通过之前的命令行。
  • 在新命令行的开头键入一个单词,然后按AltP(“上一个”)单步执行先前的行开始用这个词。

Zsh 行编辑器:历史控制在 Zsh 手册中了解更多选项。

历史扩展

  • !!在当前命令行的任意位置键入,然后按 将AltSpace其替换为上一个命令行。
  • 键入!<word>并按将AltSpace其替换为最新的命令行开始<word>
  • 键入!?<word>并按将AltSpace其替换为最新的命令行含有 <word>

历史扩展在 Zsh 手册中了解更多选项。

fc内置命令

  • fc在新命令行中键入(“fix command”),然后按Enter在外部编辑器中打开上一个命令行(通过设置配置$EDITOR),之后 Zsh 运行修改后的命令行。
  • 使用fc <word>最近的行开始<word>
  • 传递-s(“静默”)标志来执行该行立即地,无需先对其进行编辑。

Shell 内置命令:fc在 Zsh 手册中了解更多选项。

相关内容