zshaddhistory():必须覆盖(存储CWD),但标准方法是break!$

时间:2013-07-26 05:25:48

标签: zsh

我使用!$ lot cat some-long-file。然后我想编辑它。必须使用!$vim !$

现在定义如下:

zshaddhistory () {
   print -sr "${1%%$'\n'}"
   # some other stuff
   fc -p
}

这一切似乎最初都起作用(几周后我觉得我很高兴),但很快就发现!$不能正常工作了。

我在man zshbuiltinsfc查看print

但是,对于我来说,理解这个print -sr fc -p疯狂是什么,这一点都没有。

"${1%%$'\n'}"似乎与默认的zsh行为完全不同。它以!$(或例如!-5$)不会检索最后一个arg的方式保存它,它会检索整个命令。

我该怎么办?我已经尝试取出双引号,因此$1扩展了。但它仍未完全扩展。希望有人确切知道问题是什么。

也许print -sr只是错误的命令。

1 个答案:

答案 0 :(得分:0)

邮件列表救援!

很高兴有人来过这里。

http://comments.gmane.org/gmane.comp.shells.zsh.user/11785

解决方案:

print -Sr

(不确定我是否需要-r