首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VimL:检查函数是否存在

VimL:检查函数是否存在
EN

Stack Overflow用户
提问于 2012-12-05 03:23:32
回答 3查看 10.7K关注 0票数 27

现在我正在清理我的.vimrc文件,以确保它在大多数系统上都是兼容的。

在我的状态行中,我使用了另一个插件设置的函数,即this plugin引入的GitBranchInfoString()函数。

我想要做的是检查是否设置了这个函数,然后才将它添加到状态线中。它会在它自己的行中,所以我只需要检查它。

完成此任务的最简单方法是什么?

谢谢你的帮助!

编辑:

我有以下几点:

代码语言:javascript
复制
if exists('*GitBranchInfoString')
    let &stl.='%{GitBranchInfoString()}'
endif
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 03:25:00

使用

代码语言:javascript
复制
if exists("*GitBranchInfoString")
    " do stuff here
endif
票数 39
EN

Stack Overflow用户

发布于 2018-01-10 08:11:58

作为另一种选择,您也可以使用regexp来确定手头的插件是否在runtimepath

代码语言:javascript
复制
if &rtp =~ 'plugin-name'
    ...
endif

这样做的好处是,它适用于在autoload目录中只有vimscript代码的插件,而在最初解析.vimrc时无法检测到vimscript代码,因为自动加载代码片段是在函数调用时加载的。

票数 7
EN

Stack Overflow用户

发布于 2015-05-26 02:59:03

当前选择的答案对我不起作用(使用Vim 7.4 / Ubuntu)。我相信那是因为:

在加载任何插件之前,将获取

.vimrc

正如@ZyX在评论中指出的那样。

我更喜欢的方法是使用检查插件文件是否存在。我发现这比在外部文件中编写一个单独的函数更干净。

代码语言:javascript
复制
if !empty(glob("path/to/plugin.vim"))
   echo "File exists."
endif
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13710364

复制
相关文章

相似问题

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