Вы можете заключить этот блок в условное выражение, которое использует функцию 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.