Zshはvarsを履歴に保存しませんか? [閉鎖]

Zshはvarsを履歴に保存しませんか? [閉鎖]

次の変数でテストするとき:

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はあなたの質問に対するコメントですでにこれについて警告しています。

関連情報