Zsh 运行上一个命令更改一个参数

Zsh 运行上一个命令更改一个参数,zsh,history,Zsh,History,给定历史记录中的一个命令,如何运行同一个命令来更改一个参数 例如,如果命令34是script.sh a b c,如何使用某种参数替换来运行命令script.sh a fff c 假设在现实生活中,b不容易键入,因此使用通用字符串替换机制是不合理的。我知道我可以使用edit和execute,但我正在寻找一种不需要打开文本编辑器的方法。我想有点像!34:blahblahblah,但我不知道怎么做 我试着阅读zsh替换的手册,但我觉得我不知道该找什么关键字 编辑:我知道使用readline或EDIT

给定历史记录中的一个命令,如何运行同一个命令来更改一个参数

例如,如果命令34是
script.sh a b c
,如何使用某种参数替换来运行命令
script.sh a fff c

假设在现实生活中,
b
不容易键入,因此使用通用字符串替换机制是不合理的。我知道我可以使用edit和execute,但我正在寻找一种不需要打开文本编辑器的方法。我想有点像
!34:blahblahblah
,但我不知道怎么做

我试着阅读zsh替换的手册,但我觉得我不知道该找什么关键字


编辑:我知道使用readline或EDIT and execute编辑历史记录和注释。我正在寻找类似于“与命令34相同,但将第三个参数更改为
blah
,类似于编写
!34:3
以引用命令34上的参数的方式。

对于确切的las命令,我们可以执行以下操作:

^b^fff

使用插入符号表示要替换的内容和替换。

我能想到的唯一可能性是非常麻烦的

 !!:0-2 new-argument !!:4

!!:0-2
重复命令及其前两个参数,
!!:4
是最后一个命令的最后一个参数(如果愿意,也可以写成
!$
).

你试过向上箭头键吗?大多数shell都可以通过按向上和向下箭头键重复使用旧命令,就像滚动命令一样。要更好地搜索历史记录,请使用
反向-i-search
,使用
Ctrl+R
。我知道如何查找以前的命令。我已经尝试澄清了上面的问题。谢谢。在这种情况下,我想在我的历史记录中更早地更改一个命令,但我不想匹配
b
,因为一般来说,这是一个需要匹配的长字符串。呃。我希望有更好的东西。我想编辑和执行对我来说是阻力最小的选项。谢谢。