获取 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 中设置的当前值的主要内容,如果未能解决你的问题,请参考以下文章
如何获取/获取 Jenkins 管道中设置的环境变量到我们的 maven pom.xml