我想创建一个命令来获取匹配的先前命令,如下所示:
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 手册中了解更多选项。