获取 Vim 中设置的当前值

Posted

技术标签:

【中文标题】获取 Vim 中设置的当前值【英文标题】:Get current value of a setting in Vim 【发布时间】:2011-01-05 21:39:50 【问题描述】:

有没有一种简单的方法可以找出指定 Vim 设置的当前值?如果我想知道 tabstop 的当前值,我可以运行:

:set tabstop

不传递参数,Vim 会告诉我当前值。这对于许多设置来说都很好,但对于那些要么是真要么是假的设置都没有好处。例如,如果我想找出expandtab的当前值,运行:

:set expandtab

实际上会启用expandtab。我只是想知道它是否启用。

这种做我想做的事:

:echo &l:expandtab

但它似乎很冗长。有没有更快的方法?

【问题讨论】:

【参考方案1】:

添加一个?在设置名称后标记,它将显示值

:set expandtab?

【讨论】:

请注意,set <...>? 语法适用于作为选项的“设置”,但不适用于作为变量的“设置”。因此,例如,要找出当前的语法高亮模式是什么(编码在变量中,而不是选项中),您需要执行echo b:current_syntax 如果您还想查看设置选项的位置,请使用verbose。对于此示例,:verbose set expandtab. 如何查看behave等设置的当前值?我试过behave?set behave?。不幸的是,它们不起作用。 @mkobit 我必须使用:verbose set expandtab? 才能工作【参考方案2】:

另外,& 符号可用于表示“选项” - 例如

let x = &expandtab
echo &expandtab

【讨论】:

还有获取列表元素值的选项吗? (例如列表字符的空间) 我相信 listchars 是一个普通的字符串,而不是一个列表,虽然我猜你可以做类似split(&listchars, ',')【参考方案3】:

如果您不记得要检查的设置,可以查看所有设置:

:set all

或显示每个设置,每行一个设置:

:set! all

【讨论】:

【参考方案4】:

还有其他 vim 设置也可以显示,例如:

:highlight

有关完整列表,请参阅: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

编辑:对我的回答有一些误解。这不适用于任何命令。但它确实适用于上面 URL 中列出的所有命令。

【讨论】:

这不起作用。我想检查autowrite 是否打开。 :set autowrite? 完成这项工作。 @Atcold:这确实适用于 一些 设置,只有这种类型的查询才有效。 @gmarmstrong:我看到答案已经用这样的评论编辑了。

以上是关于获取 Vim 中设置的当前值的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 没有获取在 java 中设置的属性

如何获取/获取 Jenkins 管道中设置的环境变量到我们的 maven pom.xml

php 获取主题中设置的所有可能缩略图大小的列表

获取指定时区的日期时间,与计算机中设置的日期时间无关

iOS:如何获取刚刚在界面生成器中设置的 UIView 的框架

如何获取有关谁更改了我在手表中设置的变量的信息(角度)