我想在.vimrc中检查病原体是否存在,如果有,请打电话给pathogen#infect。
显然,这样做是可行的:
call pathogen#infect()所以我确信病原体已经安装好了。
但这并不会感染病原体:
if exists("*pathogen#infect")
call pathogen#infect()
endif这一点也不是:
if exists("g:loaded_pathogen")
call pathogen#infect()
endif我遗漏了什么?
发布于 2013-09-02 15:52:55
您的检查不工作,因为自动加载机制。您可以通过显式地获取它来强制自动加载:
runtime! autoload/pathogen.vim
if exists("*pathogen#infect")
call pathogen#infect()
endif但最终,当病原体未安装时,您可能只想避免.vimrc中的错误。为此,只需使用:silent!沉默任何由此产生的错误即可。
silent! call pathogen#infect()唯一的缺点是任何病原体插件错误都会被抑制。
发布于 2014-01-11 23:26:02
这是我解决问题的办法:)
if filereadable(expand("~/.vim/autoload/pathogen.vim"))
runtime! autoload/pathogen.vim
if exists("g:loaded_pathogen")
execute pathogen#infect()
endif
endifhttps://stackoverflow.com/questions/18576651
复制相似问题