Вопрос

Я использую Vim и патоген некоторое время все работало нормально, но недавно у меня начали возникать проблемы с порядком загрузки в моей конфигурации ftplugin.

Конкретная проблема, с которой я сталкиваюсь прямо сейчас, заключается в том, что python-режим переопределяет мои настройки ftplugin.У меня есть ~/.vim/ftplugin/python.vim который содержит следующую строку:

setlocal textwidth=119

python-mode поставляется со своим собственным файлом ftplugin, который также устанавливает textwidth, в ~/.vim/bundle/python-mode/ftplugin/python/pymode.vim.

Проблема в том, что Vim сейчас загружает файл ftplugin в python-режиме после мой файл ftplugin, так что в конечном итоге я получаю его textwidth=79. Недавно мне пришлось переустановить MacPorts, и я думаю, что, должно быть, что-то изменилось в стандартной конфигурации.

Я пробовал различные трюки, включающие отключение определения типа файла / плагина перед вызовом pathogen, в различные Другое ответы, но ни один из них не помогает.

Благодаря использованию verbose set textwidth? и некоторые echomsg отлаживая, я знаю, что вызываются оба файла ftplugin, и что они вызываются в неправильном (для моих нужд) порядке.

Есть ли какой-нибудь способ заставить Vim / pathogen вызывать мои файлы ftplugin после файлов плагинов?

Я даже пытался поместить свои настройки в ~/.vim/after/plugin/pymode.vim, но это загружается сразу после того, как pathogen устанавливает плагин, поэтому он все еще запускается до ftplugin файлы, которые загружаются только после того, как я редактирую файл Python.

Это было полезно?

Решение

Оказывается, возможно, это никогда не работало так, как я думал.Я не знал, что Vim также поддерживает ~/.vim/after/ftplugin, так что я смог переместить свои переопределения в ~/.vim/after/ftplugin/python.vim и получите поведение, которого я ожидал.Мне не хочется отвечать на свои собственные вопросы по SO, но, надеюсь, это поможет кому-то другому.

Другие советы

Обычный Vim загружает скрипты плагина в алфавитный порядок.Это из :help load-plugins

... all directories in the 'runtimepath' option will be
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.

Таким образом, вы можете установить порядок загрузки плагинов, переименовав <filetype>_plugin.vim Для <filetype>/35plugin.vim.35 - это ваш желаемый порядок загрузки.Я думаю, что это должно работать и с Pathogen, переименовав каталоги плагинов внутри bundle, но я еще не тестировал это.

Я все еще ищу более общий ответ на эту проблему с порядком загрузки

Насколько я знаю, на самом деле вы не можете сделать это с помощью Патогена.С NeoBundle это действительно просто.Патоген действительно минимален, он не обеспечивает вам большой гибкости - он делает только одно, и делает это хорошо.Если вы ищете возможность конфигурирования, я думаю, вы используете не тот инструмент.

Редактировать:Не совсем уверен насчет ftplugins, но пакеты в целом загружаются так, как вы их указываете (с помощью Vundle / NeoBundle).Поэтому я понимаю, что это, возможно, не самый релевантный из ответов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top