Почему Pathogen "волшебным образом" решает проблемы выделения синтаксиса Vim?

У меня есть эти 3 строки в моем .vimrc,

" keeping pathogen only for its 'syntax on' bug workaround
Bundle "tpope/vim-pathogen"
execute pathogen#infect()

Должно быть, я удалил и снова добавил эти 3 строки примерно дюжину раз. Я пользуюсь последней версией Vim, но, по некоторым причинам, некоторая подсветка синтаксиса работает неправильно.

На MacOS, Go Подсветка синтаксиса не работает, в то время как в Arch Linux это работает. Но на Арке, coffeescript не выделено По какой-то причине, выполняя pathogen#infect() решает все проблемы на обеих платформах.

Это похоже на черную магию для меня, поэтому мне интересно, почему это так. Есть ли лучший способ решить эту проблему?

Ответ: Я заглянул в свой vimrc и обнаружил ошибку. У меня была эта строка

filetype plugin indent on

before Пучок, где он должен был быть after Связки.

1 ответ

Решение

По умолчанию Vim не просматривает каталоги.vim/bundle при запуске. Так что это означает, что ваш "ftdetect" не будет загружен.

Pathogen просматривает каждый каталог и загружает их.

Если вы хотите убедиться сами, запустите Vim дважды, один раз с, а второй без pathogen:infect()и введите :scriptnames после загрузки. Вы увидите список загруженных скриптов.

Вы даже можете сделать :redir записать вывод в файл перед вызовом :scriptnames чтобы получить точную разницу загруженных скриптов.

Другие вопросы по тегам