如何执行命令但仅将其*修改*版本添加到历史记录中?

如何执行命令但仅将其*修改*版本添加到历史记录中?

我正在尝试创建命令历史记录的模拟,但是对于输出命令,以便我可以执行例如locate filename(可能会显示一些文件),然后vim %2(或其他)编辑第二个。

到目前为止我有:

my-ret() {
    print -n " : `date +%s` : " >>~/.zsh-output
    BUFFER+=" >&1 >>~/.zsh-output"
    zle accept-line
}
zle -N my-ret
bindkey '\e\r' my-ret

但这会添加ls -l >&1 >>~/.zsh-output到我的命令历史记录中。

我找到了print -s可以用来将原始命令添加$BUFFER到命令历史记录中的命令。但是执行修改后的行不会也会将其添加到历史记录中吗?

我想我想要执行命令但不将其添加到历史记录中的东西。

相关内容