8

すべてのzsh設定の現在の値を確認するにはどうすればよいですか?

たとえば、現在HISTSIZEとSAVEHISTを設定していないのでenv | grep HISTset | grep HIST何も表示しません。では、どのデフォルト値が使用されているかをどのように確認できますか?

4

3 に答える 3

10

ドキュメントまたはソースコードの解析を除いて、未定義の変数のデフォルト値を取得するオプションはありません。

HISTSIZE設定でSAVEHISTはなく、特別な変数です。すべての変数を一覧表示する方法はありますが、特別で設定として使用される変数を一覧表示する方法はわかりません。

変数として実装されたパラメーターをリストするのに役立つように、 (それをロードするための)zsh/parameterモジュールがあります。キーは変数名で、値は変数タイプの説明でzmodload zsh/parameterある連想配列があります。$parameters両方ともHISTSIZESAVEHISTそこにとして表示されinteger-specialます。HISTCHARSとして表示されscalar-specialます。ただし、ここでは:とRANDOM同じように表示されるため、これを使用してオプションとして使用される特別な変数を取得することはできません。ただし、のセクションはいつでも使用できます。HISTSIZEinteger-specialPARAMETERS USED BY THE SHELLman zshparam

ドキュメントやソースコードの解析を除いて、これらのパラメータのデフォルト値を決定できるオプションはわかりません。

# setopt | grep hist
nobanghist
extendedhistory
histfcntllock
histignorealldups
histignorespace
histnostore
histreduceblanks
histsavenodups
histverify
incappendhistory

デフォルト以外の設定を表示する場合:

引数が指定されていない場合、現在設定されているすべてのオプションの名前が出力されます。フォームは、現在のエミュレーションのデフォルトオプションとの違いを最小限に抑えるように選択されます(デフォルトのエミュレーションはネイティブzshであり、zshoptions(1)に示されています)。エミュレーションでデフォルトでオンになっているオプションは、オフの場合にのみ接頭辞noで表示されますが、他のオプションは、接頭辞noなしで、オンの場合にのみ表示されます。ユーザーがデフォルトの状態から変更したオプションに加えて、シェルによって自動的にアクティブ化されたオプション(SHIN_STDINやINTERACTIVEなど)がリストに表示されます。形式はオプションKSH_OPTION_PRINTによってさらに変更されますが、プレフィックスなしのオプションを選択する理由はこの場合も同じです。

また、以下を使用することも理にかなっています。

# unsetopt | grep hist
noappendhistory
cshjunkiehistory
histallowclobber
nohistbeep
histexpiredupsfirst
histfindnodups
histignoredups
histlexwords
histnofunctions
nohistsavebycopy
histsubstpattern
sharehistory

引数が指定されていない場合、現在設定されていないすべてのオプションの名前が出力されます。

または、ヘルプに従って使用してください

# setopt kshoptionprint
# setopt | grep hist
noappendhistory       off
nobanghist            on
cshjunkiehistory      off
extendedhistory       on
histallowclobber      off
nohistbeep            off
histexpiredupsfirst   off
histfcntllock         on
histfindnodups        off
histignorealldups     on
histignoredups        off
histignorespace       on
histlexwords          off
histnofunctions       off
histnostore           on
histreduceblanks      on
nohistsavebycopy      off
histsavenodups        on
histsubstpattern      off
histverify            on
incappendhistory      on
sharehistory          off

オプションを使用すると、の出力setoptunsetopt一致に注意してください。kshoptionprint

于 2012-08-12T04:00:31.297 に答える
3

現在の値を表示するには、設定しているかどうかに関係なく(この場合、デフォルト値が表示されます)。

➜  ~ echo $SAVEHIST
10000
➜  ~ echo $HISTSIZE 
10000
于 2016-03-12T19:21:18.063 に答える
0

私はあなたについて知りません...(つまり、私は使用します.prezto)、しかしこれは私が入ると得られる「オートコンプリート」setoptTABです...

ここに画像の説明を入力してください

それは私に次のような便利なことを教えてくれます。

-- zsh options (set) -- noaliases noautoresume nohashdirs nohistverify nonomatch ...

-- zsh options (unset) -- allexport cshjunkiehistory hashexecutablesonly kshglob nullglob singlecommand ...

于 2015-07-24T12:30:45.190 に答える