如何查看默认zsh设置(HISTSIZE,SAVEHIST,...)

时间:2012-08-11 20:52:50

标签: environment-variables default zsh built-in

如何查看所有zsh设置的当前值?

例如,我目前没有设置HISTSIZE和SAVEHIST,因此env | grep HISTset | grep HIST没有显示任何内容。那么我怎样才能看到正在使用的默认值?

3 个答案:

答案 0 :(得分:7)

除解析文档或源代码外,没有选项可以获取未定义变量的默认值。

HISTSIZESAVEHIST不是设置,它们是特殊变量。有一种方法可以列出所有变量,但我知道无法列出那些特殊的变量并用作设置。

为了帮助您列出作为变量实现的参数,可以使用zsh/parameter模块(zmodload zsh/parameter加载它)。它有一个关联数组$parameters,其中键是变量名,值是变量类型描述。 HISTSIZESAVEHIST都显示为integer-specialHISTCHARS显示为scalar-special。请注意RANDOM此处只显示为HISTSIZEinteger-special,因此您无法使用此功能获取用作选项的特殊变量。但您始终可以使用PARAMETERS USED BY THE SHELL的{​​{1}}部分。

我不知道任何允许您确定这些参数的默认值的选项,除了解析文档或源代码。

man zshparam

如果您想查看非默认设置:

  

如果未提供参数,则打印当前设置的所有选项的名称。选择表单以便最小化与当前仿真的默认选项的差异(默认值)                 仿真是原生zsh,如zshoptions(1)所示。默认情况下为仿真启用的选项将显示前缀为no,如果它们已关闭,而其他选项则显示为不带                 前缀no,仅当它们打开时。除了用户从默认状态更改的选项外,shell自动激活的任何选项(例如,SHIN_STDIN或INTERACTIVE)都将                 显示在列表中。选项KSH_OPTION_PRINT进一步修改了格式,但在这种情况下,选择带或不带前缀的选项的基本原理保持不变。

使用:

也是有道理的
# setopt | grep hist
nobanghist
extendedhistory
histfcntllock
histignorealldups
histignorespace
histnostore
histreduceblanks
histsavenodups
histverify
incappendhistory
  

如果未提供参数,则会打印当前未设置的所有选项的名称。

或者只需按照帮助使用

即可
# 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选项时匹配。

答案 1 :(得分:4)

要显示当前值,是否已设置(在这种情况下,它显示默认值):

➜  ~ echo $SAVEHIST
10000
➜  ~ echo $HISTSIZE 
10000

答案 2 :(得分:0)

我不知道你...(我的意思是, i do use .prezto ),但这是"自动完成"输入x509certificate TAB 后, ...

enter image description here

告诉我有用的东西,比如..

_client = MqttClientFactory.CreateClient(address, obj.ClientID,"username","password");

setopt