Вот моя установка:
- Мой каталог .vim находится под контролем исходного кода с помощью git
- Я использую Pathogen для управления своими плагинами
- Мой плагин SnipMate - это подмодуль git в
.vim/bundle/snipmate
Это означает, что я не могу действительно редактировать фрагменты в .vim/bundle/snipmate/snippets
потому что они не отслеживаются. Я обнаружил, что могу определить свои собственные пользовательские фрагменты в .vim/snippets
или создать новый каталог .vim/bundle/snipmate-custom/snippets/
и определить их там.
Это прекрасно работает на Linux. Например, у меня может быть оригинальный файл html.snippets
в .vim/bundle/snipmate/snippets
а мой собственный html.snippets
в .vim/snippets/
и vim будет использовать оба файла.
В Windows я заметил, что создание другого каталога сниппетов (либо в .vim/snippets/
либо в .vim/bundle/snipmate-custom/snippets/
нарушает плагин). Завершение вкладки больше не работает - оно игнорирует как исходные фрагменты, которые пришли с плагином, так и те, что в новом репозитории.
Есть идеи, почему это происходит?
Я использую Vista, и моя конфигурация vim находится в %USERPROFILE%\.vim
. У меня есть папка vimfiles, которая связана с этим каталогом с помощью:
mklink /d vimfiles .vim
Каждый другой плагин работает. Shipmate отлично работает при условии, что .vim/snippets
не существует. Вышеуказанная настройка отлично работает на Ubuntu и Mac. Есть идеи, почему он ломается на Windows?
РЕДАКТИРОВАТЬ
Я мог бы ответить на свой вопрос. Мне удалось обойти эту проблему, явно указав snipmate, какие каталоги использовать:
if has('win32')
let g:snippets_dir="c:/Users/me/.vim/bundle/snipmate/snippets/,
c:/Users/me/.vim/bundle/snipmate-custom/snippets"
endif
Не самое элегантное решение, но оно работает. Дайте мне знать, если вы найдете лучший способ сделать это.