我用!$
了很多。cat some-long-file
. 然后我想编辑它。必须使用!$
:vim !$
现在有了这样的定义:
zshaddhistory () {
print -sr "${1%%$'\n'}"
# some other stuff
fc -p
}
起初,这一切似乎都可以正常工作(几周以来,我认为我很好),但很快就发现它!$
不再正常工作了。
我看了man zshbuiltins
看fc
和print
。
但这些都不足以让我理解这种print -sr
fc -p
疯狂是什么。
看起来它"${1%%$'\n'}"
根本不做与默认zsh
行为相同的事情。它以一种!$
(或例如!-5$
)不会检索最后一个参数的方式保存它,而是检索整个命令。
我能做些什么?我试过去掉双引号,所以$1
被扩展了。但它仍然没有被完全扩展。希望有人确切地知道问题所在。
也许print -sr
只是错误的命令。