现在我正在清理我的.vimrc文件,以确保它在大多数系统上都是兼容的。
在我的状态行中,我使用了另一个插件设置的函数,即this plugin引入的GitBranchInfoString()函数。
我想要做的是检查是否设置了这个函数,然后才将它添加到状态线中。它会在它自己的行中,所以我只需要检查它。
完成此任务的最简单方法是什么?
谢谢你的帮助!
编辑:
我有以下几点:
if exists('*GitBranchInfoString')
let &stl.='%{GitBranchInfoString()}'
endif发布于 2012-12-05 03:25:00
使用
if exists("*GitBranchInfoString")
" do stuff here
endif发布于 2018-01-10 08:11:58
作为另一种选择,您也可以使用regexp来确定手头的插件是否在runtimepath中
if &rtp =~ 'plugin-name'
...
endif这样做的好处是,它适用于在autoload目录中只有vimscript代码的插件,而在最初解析.vimrc时无法检测到vimscript代码,因为自动加载代码片段是在函数调用时加载的。
发布于 2015-05-26 02:59:03
当前选择的答案对我不起作用(使用Vim 7.4 / Ubuntu)。我相信那是因为:
在加载任何插件之前,将获取
.vimrc
正如@ZyX在评论中指出的那样。
我更喜欢的方法是使用检查插件文件是否存在。我发现这比在外部文件中编写一个单独的函数更干净。
if !empty(glob("path/to/plugin.vim"))
echo "File exists."
endifhttps://stackoverflow.com/questions/13710364
复制相似问题