如何查看所有 zsh 设置的当前值?
例如,我目前没有设置 HISTSIZE 和 SAVEHIST,所以什么env | grep HIST
也不set | grep HIST
显示。那么我怎样才能看到正在使用的默认值呢?
如何查看所有 zsh 设置的当前值?
例如,我目前没有设置 HISTSIZE 和 SAVEHIST,所以什么env | grep HIST
也不set | grep HIST
显示。那么我怎样才能看到正在使用的默认值呢?
除了解析文档或源代码外,没有其他选项可以获取未定义变量的默认值。
HISTSIZE
并且SAVEHIST
不是设置,它们是特殊变量。有一种方法可以列出所有变量,但我不知道如何列出那些特殊并用作设置的变量。
为了帮助您列出作为变量实现的参数,有zsh/parameter
模块(zmodload zsh/parameter
加载它)。它有一个关联数组$parameters
,其中键是变量名,值是变量类型描述。两者HISTSIZE
和SAVEHIST
出现在那里integer-special
。HISTCHARS
在那里显示为scalar-special
。请注意,尽管RANDOM
此处显示为HISTSIZE
: integer-special
,因此您不能使用它来获取用作选项的特殊变量。但是您始终可以使用PARAMETERS USED BY THE SHELL
.man zshparam
除了解析文档或源代码之外,我不知道有任何选项可以让您确定这些参数的默认值。
# setopt | grep hist
nobanghist
extendedhistory
histfcntllock
histignorealldups
histignorespace
histnostore
histreduceblanks
histsavenodups
histverify
incappendhistory
如果您想查看非默认设置:
如果没有提供参数,则打印当前设置的所有选项的名称。选择该形式是为了最大限度地减少与当前仿真的默认选项的差异(默认仿真是本机 zsh,如 zshoptions(1) 所示)。默认情况下为仿真打开的选项仅在关闭时显示前缀 no,而其他选项不显示前缀 no 且仅在打开时显示。除了用户从默认状态更改的选项外,任何由 shell 自动激活的选项(例如 SHIN_STDIN 或 INTERACTIVE)都将显示在列表中。格式由选项 KSH_OPTION_PRINT 进一步修改,但是在这种情况下,选择带或不带 no 前缀的选项的基本原理保持不变。
使用它也很有意义:
# 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
注意使用该选项时的输出setopt
和unsetopt
匹配。kshoptionprint
显示当前值,无论您是否设置了它(在这种情况下它显示默认值):
➜ ~ echo $SAVEHIST
10000
➜ ~ echo $HISTSIZE
10000
我不知道你......(我的意思是,我确实使用.prezto
),但这是我进入时得到的“自动完成” setopt
TAB......
这告诉我有用的东西,比如..
-- zsh options (set) --
noaliases noautoresume nohashdirs nohistverify nonomatch ...
和
-- zsh options (unset) --
allexport cshjunkiehistory hashexecutablesonly kshglob
nullglob singlecommand ...