zen-coding.vim不适合我(病原体)

问题描述:

所以,我刚刚安装了zen-coding.vim插件,扩展没有发生。如果我使用脚本名,插件就在那里,并且:详细地图显示ZenCoding映射。不过,如果我编辑HTML文件(或一组英尺= HTML),然后键入zen-coding.vim不适合我(病原体)

H1#标题

什么也没有发生。我确信我的.vimrc文件已被彻底清理,但我对vim世界有点新鲜,所以我正在努力找出自己弄错了什么。我的vim设置是here。我在Mac OSX上,并且正在使用病原体捆绑我的插件。

任何人有任何建议吗?

谢谢, 格伦

输出的:设定RTP

runtimepath =〜/的.vim〜/的.vim /捆/ IndexedSearch〜/的.vim /束/要旨,〜/ vim的/bundle/jquery,~/.vim/bundle/nerdtree,~/。 vim/bundle/snipmate.vim,〜/ .vim/bundle/textile.vim,〜/ .vim/bundle/vim-align,〜/ .vim/bundle/vim-cucumber,〜/ .vim/bundle/ VIM-逃犯,〜/的.vim /束/ VIM-git的,〜/的.vim /束/ VIM-HAML〜/的.vim /束/ VIM-减价,〜/的.vim /束/ VIM-导轨,〜/ .vim /bundle/vim-repeat,~/.vim/bundle/vim-ruby,~/.vim/bundle/vim-ruby-debugger,~/.vim/bundle/vim-shoulda,~/.vim/ bundle/v im-supertab,〜/ .vim/bundle/vim-surround,〜/ .vim/bundle/vim-tcomment,〜/ .vim/bundle/vim-vividchalk,〜/ .vim/bundle/zencoding- vim,/ Applications/MacVim.app/Contents/Resources/vim/vimfiles,/ Applications/MacVim.app/Contents/Resources/vim/ru ntime,/ Applications/MacVim.app/Contents/Resources/vim/vimfiles/after ,〜/ .vim/bundle/snipmate.vim/after,〜/ .vim/after

+0

是否都加载了zencoding脚本?可能应该加载plugin/zencoding.vim和autoload/zencoding.vim。 – 2011-01-06 17:54:00

+0

没有。只是插件。任何想法为什么自动加载不加载?我弄乱了病原体吗? – Ruprict 2011-01-06 18:50:06

+0

你可以发布':set rtp?'的输出吗? – 2011-01-06 19:47:56

我把它通过把这个在我的.vimrc工作:

let g:user_zen_expandabbr_key = '<c-e>' 
let g:use_zen_complete_tag = 1 

(我用<c-e>而不是默认的,主要是因为这就是我使用禅编码其他编辑用)

PS对我来说,Sparkup并不是一个真正的选择,因为我最喜欢的zen编码功能之一就是Sparkup不支持的“缩写”。

我不得不chmod +x sparkup的支持脚本,使其工作。 Vim会给你一些错误信息吗?

似乎Pathogen没有明确包含您在“捆绑”目录中放置的插件中的“after”目录。这意味着像zen-coding和snipMate这样的插件无法运行它们的初始化/清理/键绑定例程。

显然这些插件对其他环境中的其他人工作正常,但对于Windows中的我,snipMate不会工作,因为“after”目录中的最终片段加载命令未找到。

我在pathogen.vim中通过修改pathogen#runtime_append_all_bundles()函数来明确地附加在bundle目录中找到的所有“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 

BIG编辑:跨this closed issue即将来临的病原GitHub的网站后,我发现,根本原因是没有的“后”,以明确添加必需的目录,但他们没有被由于substitute()命令中win32系统上的反斜杠转义问题而被添加。

这里是一个更简洁的补丁,并在统一格式的这个时候,对不起......

@@ -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的问题的记者说,他们派出添一拉请求,蒂姆说,他接受它,但所描述的变化不在当前版本的代码中,所以我想我会尽我所能在这里提供我的解决方案。

此修补程序可以转义glob中的任何反斜杠。在非win32系统上的任何运行时路径项目中不应该有任何反斜杠,或者如果这是因为在vim中设置了+ shellslash并且可能需要此转义。

我要离开旧的解决方案,以供参考。