获取Vim中设置的当前值


274

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

:set tabstop

不传递任何参数,Vim会告诉我当前值。这对许多设置都很好,但是对于正确或错误的设置都没有好处。例如,如果我想找出的当前值expandtab,则运行:

:set expandtab

实际上将启用expandtab。我只想了解它是否已启用。

我想要的是这样的:

:echo &l:expandtab

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

Answers:


378

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

:set expandtab?

15
请注意,该set <...>?语法将适用于作为选项的“设置”,而不适用于作为变量的 “设置” 。因此,例如,要找出当前语法突出显示模式是什么(编码在变量中,而不是选项中),您需要执行echo b:current_syntax
2014年

16
如果你也想看看这里的选项是从,使用设置verbose。对于此示例,:verbose set expandtab
mkobit

1
如何查看诸如的当前设置值behave?我曾尝试behave?set behave?。不幸的是,它们不起作用。
jdhao

38

或者,该&符号可以用来表示“选项”-例如

let x = &expandtab
echo &expandtab

还有获取列表元素值的选项吗?(例如listchars的空间)
816-8055 '16

我相信listchars是一个普通的字符串,而不是List,尽管我猜您可以做类似的事情split(&listchars, ',')
cdyson37 '16

9

如果您不记得要检查的功能,

您可以使用检查所有设置

:set all

并且所有设置都会列出。


4

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

:highlight

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

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


这是行不通的。我想检查一下是否autowrite打开。:set autowrite?做这份工作。
Atcold

@Atcold:这确实适用于某些设置,只有这种类型的查询才适用。
gmarmstrong '18年

@gmarmstrong:我看到答案已经用这样的注释进行了编辑。
Atcold
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.