Вы можете заключить этот блок в условие, которое использует exists()
функцию, чтобы проверить, известна ли vim переменная, команда или функция, определенная плагином.
Вот пара битов, которые у меня есть в файлах в ~ / .vim:
" after/plugin/speeddating.vim
if exists(':SpeedDatingFormat')
SpeedDatingFormat %-d %B %Y
endif
" ftplugin/ruby.vim
if exists('g:loaded_surround') && !exists('b:surround_'.char2nr(':'))
let b:surround_{char2nr(':')} = ":\r"
endif
Обратите внимание, что приведенные выше биты находятся в файлах, которые оцениваются после обычных плагинов, здесь ftplugin и файл в after/plugin
каталоге.
Другой вариант - использовать блоки try / catch, хотя для этого требуется как минимум vim 7.0:
if v:version >= 700
try
runtime bundle/pathogen/autoload/pathogen.vim
call pathogen#infect()
catch
endtry
endif
Если что-то в try
разделе этого блока выходит из строя, оно переходит к
catch
разделу. Поскольку catch
раздел пуст, он просто продолжит работу с остальной частью файла инициализации после endtry
оператора.
Поскольку это загрузка кода вручную, а не использование уже загруженного плагина, это можно сделать в самом файле .vimrc.
~/.vimrc
, как вы , поэтому вы не сможете протестировать эффекты плагина в вашем,~/.vimrc
если вы не протестируете на наличие файла плагина или не отложите тест до тех пор, пока плагины не будут загружены автокомандой, такой как VimEnter.