我.vimrc
通过做使用病原体
execute pathogen#infect()
但是,如果我设置了一台新计算机并且没有安装病原体
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
然后,每次我去编辑文件时,我都会收到一条有关病原体不起作用的消息(然后我可以编辑该文件)。
我希望我的 .vimrc 调用execute pathogen#infect
依赖于~/.vim/autoload
实际存在的。
在 shell 脚本中我会做类似的事情
if test -f ~/.vim/autoload
execute pathogen#infect()
fi
但当然这给出了未定义的方法测试。 .vimrc
使用不同的语法,例如having"
而不是#
注释和条件,我不知道正确的格式是什么。
我会使用什么格式的文件.vimrc
?
答案1
filereadable()
或者isdirectory()
将是比后者更好的选择findfile()
- 后者在一组目录中搜索。顺便说一句,findfile()
在我的系统上什么也不返回(空字符串)~/.vim
然而,isdirectory()
无法处理~/
,但fnamemodify()
可以救援。
if isdirectory(fnamemodify('~/.vim/autoload', ':p'))
execute pathogen#infect()
endif
isdirectory($HOME.'/.vim/autoload')
也可以这样。
答案2
这有效:
if findfile("~/.vim/autoload")
execute pathogen#infect()
endif