Похоже, что Pathogen явно не включает каталоги "after", найденные в плагинах, которые вы помещаете в каталог "bundle".Это означает, что плагины, такие как zen-coding и snipMate, не запускают свои процедуры инициализации / очистки / связывания ключей.
Очевидно, что эти плагины отлично работали для других людей в других средах, но для меня в Windows,snipMate не будет работать, потому что последняя команда загрузки фрагмента в каталоге «after» не была получена.
Я исправил это в pathogen.vim, изменив функцию pathogen#runtime_append_all_bundles()
, чтобы явно добавлять все найденные каталоги «after»в каталогах комплекта.
Вот патч для pathogen.vim версии 1.2:
121c121,125
< let list += [dir] + pathogen#glob_directories(dir.sep.name.sep.'*[^~]')
---
> let subdirs = pathogen#glob_directories(dir.sep.name.sep.'*[^~]')
> let list += [dir]
> for subdir in subdirs
> let list += [subdir] + pathogen#glob_directories(subdir.sep.'*after*')
> endfor
БОЛЬШОЕ РЕДАКТИРОВАНИЕ : после обнаружения этот закрытый вопрос на сайте Pathogen github я обнаружил, что основной причиной было не то, что каталоги "after" нужно было добавлять явно, а то, что они не добавлялись из-за проблемы с экранированием обратной косой черты в системах win32 в команде substitute()
.
Вот гораздо более сжатый патч, и на этот раз в унифицированном формате, извините ...
@@ -116,7 +116,8 @@
let list = []
for dir in pathogen#split(&rtp)
if dir =~# '\<after$'
- let list += pathogen#glob_directories(substitute(dir,'after$',name.sep.'*[^~]'.sep.'after','')) + [dir]
+ let replacement = substitute(name.sep.'*[^~]'.sep.'after', '\\', '\\\\', 'g')
+ let list += pathogen#glob_directories(substitute(dir,'after$',replacement,'')) + [dir]
else
let list += [dir] + pathogen#glob_directories(dir.sep.name.sep.'*[^~]')
endif
Репортер проблемы с github сказал, что они отправили Тиму запрос на извлечение, и Тим сказал, что он принял его, но описанного изменения нет в текущей версии кода, поэтому я подумал, что сделаю все возможное, чтобы предоставить свойРешение здесь.
Этот патч избегает любых обратных косых черт в глобусе.Во-первых, не должно быть обратной косой черты ни в одном из элементов пути времени выполнения в системах, отличных от win32, или, если они есть, потому что + shellslash установлен в vim и это экранирование, вероятно, требуется.
Я оставляю старое решение там для справки.