Snipmate + Pathogen + Git - пользовательские фрагменты не работают в Windows

1066
Tuxmentat

Вот моя установка:

  1. Мой каталог .vim находится под контролем исходного кода с помощью git
  2. Я использую Pathogen для управления своими плагинами
  3. Мой плагин 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/и ВИМ будет использовать оба файла.

В 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 

Не самое элегантное решение, но оно работает. Дайте мне знать, если вы найдете лучший способ сделать это.

1

1 ответ на вопрос

0
Tuxmentat

I have answered my own question. I managed to work around this problem by explicitly telling snipmate which directories to use:

 if has('win32') let g:snippets_dir="c:/Users/me/.vim/bundle/snipmate/snippets/, c:/Users/me/.vim/bundle/snipmate-custom/snippets" endif