当我使用如下变量进行测试时:
test="abc"
上面的命令没有保存到历史记录中,我一定搞砸了一些命令setopt
,但我不知道哪些会对此产生影响。
那么 zsh 历史记录选项可以阻止它将 var 保存到 zsh 历史记录中吗?我已经HIST_NO_FUNCTIONS
确定我对此表示怀疑。
编辑:完整setopt
autocd
autonamedirs
autopushd
extendedglob
extendedhistory
noglobalrcs
histexpiredupsfirst
histfindnodups
histignorealldups
histignoredups
histignorespace
histnofunctions
histnostore
histreduceblanks
histsavenodups
histverify
incappendhistory
interactive
interactivecomments
login
magicequalsubst
monitor
nonotify
nullglob
promptsubst
pushdignoredups
pushdminus
pushdsilent
pushdtohome
rmstarsilent
sharehistory
shinstdin
zle
答案1
几天前,在另一个问题,你说你已经添加到你的~/.zshrc
:
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }
这会导致第一个单词(包含引号)不是任何现有命令的名称的命令行不会添加到历史记录中。
test="abc"
不是系统上现有命令的名称,因此它不会保存在历史记录中。
这也将无法保存命令行,如"echo" "foo"
、 或<input tr a b >output
、 或(foo; bar) | baz
...
@Gilles 已经在对你的问题的评论中警告过你这一点。