如何检查&;somesettingname在vim脚本中返回真值或布尔值?

如何检查&;somesettingname在vim脚本中返回真值或布尔值?,vim,Vim,我知道如何检查vimrc中是否存在设置 但我也遇到了一个问题:如果我在vimrc中设置了类似于tabstop=1,那么&tabstop将返回1。如果我在vimrc中设置了编号,编号也返回1。那么,我怎么知道它在vim脚本中返回的是数值还是布尔值呢 下面是我问这个问题的原因:我正在编写一个vimscript,将modeline添加到基于vimrc的文件中。我让modeline=“modeoption=&modeoptions”,当我将expandtab放入modeoptions时,我得到了类似于/

我知道如何检查vimrc中是否存在设置

但我也遇到了一个问题:如果我在vimrc中设置了类似于
tabstop=1
,那么
&tabstop
将返回1。如果我在vimrc中设置了
编号
编号
也返回1。那么,我怎么知道它在vim脚本中返回的是数值还是布尔值呢


下面是我问这个问题的原因:我正在编写一个vimscript,将modeline添加到基于vimrc的文件中。我让
modeline=“modeoption=&modeoptions”
,当我将expandtab放入modeoptions时,我得到了类似于
/*vim:expandtab=1:shiftwidth=4:tabstop=4:smarttab=1:///code>的结果是正确的:都是布尔值(
number
/
nonnumber
)和整数选项(例如
tabstop
)生成一个带有
&optionname
语法的数字。Vimscript没有专用的布尔类型;true/false由非0/0表示


因此,您必须对插件中的选项类型进行硬编码,以便将正确的格式插入模型行。您可以从
:help options.txt
检索所有选项。您的观察是正确的:布尔(
数字
/
非数字
)和整数选项(例如
tabstop
)使用
&optionname
语法生成一个数字。Vimscript没有专用的布尔类型;true/false由not 0/0表示

因此,您必须对插件中的选项类型进行硬编码,以便将正确的格式插入modeline。您可以从
:help options.txt
检索所有选项