2

我在这里得到如何检查 vimrc 中是否存在设置Vimscript: use vim settings as variables / How to check if specific guioption is set or not

但我也有一个问题:如果我tabstop=1在 vimrc 中设置了类似的东西,那么&tabstop将返回 1。如果我set number在 vimrc 中有,&number也返回 1。那么,我怎么知道它返回一个数字值或只是 vim 脚本中的一个布尔值?

这就是我问这个问题的原因:我正在编写一个 vimscript 来将模式行添加到基于 vimrc 的文件中。我让modeline="modeoption=&modeoptions",当我将 expandtab 放入 modeoptions 时,我得到了类似的东西/*vim:expandtab=1:shiftwidth=4:tabstop=4:smarttab=1:*/

4

1 回答 1

5

您的观察是正确的:布尔 ( number/ nonumber) 和整数选项 (eg tabstop) 都会产生一个具有&optionname语法的数字。Vimscript 没有专用的布尔类型。true / false 由非 0 / 0 表示。

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

于 2013-09-12T06:38:34.580 回答