Патоген, игнорирующий скрипты ftplugin
Я пытаюсь использовать Pathogen
управлять плагинами Vim. У меня была пара скриптов, которые я сделал в .vim/ftplugins
,
Я установил Pathogen, но теперь ни один из скриптов в ftplugins не запускается.
Я пытался добавить каталог внутри .vim/bundle
со сценариями, но это не сработало (это было .vim/bundle/local/ftplugin/python.vim
)
Есть идеи, как заставить Pathogen загружать скрипты в каталог ftplugin?
Первые строки моего .vimrc
:
set nocompatible
syntax on
filetype plugin indent on
"execute pathogen#infect()
Работает только с закомментированной строкой.
я бегу gvim
из приглашения Bash с именем файла в качестве первого параметра, например:
$ gvim some/path/somefile.py
Я ожидаю увидеть файл с моей предопределенной схемой цветов для файлов Python, определенной в ~/.vim/ftplugin/python.vim, и всеми другими настройками, определенными в этом сценарии.
Каталог ~/.vim/bundle пуст.
Патоген находится в ~/.vim/autoload и там больше ничего нет.
$ ls ~/.vim/ftplugin/
css.vim html.vim javascript.vim python_pep8.vim python_pyflakes.vim python.vim rst.vim xml.vim
$ ls ~/.vim
autoload bundle colors doc ftdetect ftplugin plugins ScrollColor.vim spell syntax
3 ответа
Это была проблема с определением типа файла, это проблема с патогеном.
Обходной путь в моем случае был прост, используйте это, чтобы включить Pathogen:
set nocompatible
"execute pathogen#infect() " breaks filetype detection
call pathogen#runtime_append_all_bundles()
filetype plugin indent on
syntax on
Чтобы выяснить это, я удалил каталог ~/.vim и начал с чистого. Добавление вещей по одному и проверка результатов. Я понял, что это не обнаруживает правильный тип файла (когда я открыл пустой файл, обнаружение было в порядке, но это было не при открытии существующего файла).
Выкладываю мой комментарий сюда:
Хотите знать, работает ли он, если поставить :filetype
а также :syntax
звонки после :execute
? официальный README
предлагаем сделать именно это во втором разделе: первый :execute
второй :syntax
, в третьих :filetype
, Примечание: НЕ отключайте тип файла до :execute
как предложил @Eduan, просто не включайте его, пока :execute
называется:
set nocompatible
execute pathogen#infect()
syntax on
filetype plugin indent on
И, кстати, никогда не используйте*map
,
Я думаю, что я вижу вашу проблему, помещая это в ответ вместо комментария ради ясности примера кода.
Попробуй это:
" Set the filetype stuff to off, required for Pathogen
filetype off
filetype plugin indent off
execute pathogen#infect()
" You can now turn it on again
filetype on
filetype plugin indent on
Вместо вашей текущей настройки.