首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vim脚本中,如何判断.vimrc中是否指定了某个设置?

在vim脚本中,如何判断.vimrc中是否指定了某个设置?
EN

Stack Overflow用户
提问于 2011-06-26 03:58:39
回答 1查看 604关注 0票数 1

在vim插件中,我如何判断用户是否已经在其.vimrc文件中设置了变量?

例如,我在.vimrc中有

代码语言:javascript
复制
set shiftwidth=2

然后我加载一个插件,该插件具有

代码语言:javascript
复制
set shiftwidth=3

所以我认为修改插件的方法如下:

代码语言:javascript
复制
if !exists("shiftwidth")
  set shiftwidth=3
endif

但是,当我加载一个新的vim窗口并加载了修改后的插件时,我的选项卡仍然设置为3,而不是2

除非在.vimrc中另有说明,否则如何才能使它只设置shiftwidth=3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-26 04:08:26

这些命令应该显示shiftwidth的设置位置:

代码语言:javascript
复制
:set verbose=15
:set shiftwidth
:set verbose=0

如果您希望以编程方式对该信息执行某些操作,则需要对详细输出执行redirect操作,并根据需要对其进行解析:

代码语言:javascript
复制
:redir => myvariable
:set verbose=15
:set shiftwidth
:set verbose=0
:redir END

myvariable现在将拥有原本会打印到屏幕上的文本。

REVISED 这里是一种我认为你可以在评论中澄清的方法。

在用户的vimrc中添加最后一行,将当前的shiftwidth值保存到一个全局变量中。该值将在加载任何插件之前保存,除非插件在最后一行之前显式地从vimrc中获取。然后,您可以在自己的插件中将shiftwidth重置为此值。

代码语言:javascript
复制
[everything in vimrc comes before this line]
:let g:vimrc_shiftwidth = &shiftwidth

您可以使用类似于write >> [file]命令的命令以编程方式添加此行。您可能会添加一个注释,说明是哪个插件将此命令添加到vimrc中的。此外,我认为这不会捕获正确的值,例如,在用户使用exrc选项并在不同的vimrc中设置shiftwidth的情况下。总而言之,还是不推荐。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6480170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档