2013-10-30 52 views
4

操作系统:CentOS 5.7Vim和gVim文件类型检测

我想让两个gVim/Vim都有语法高亮显示新文件类型。到目前为止,我做了:

  • 创建语法文件在~/.vim/ftdetect/foo.vim
  • 使用Vim可以自动检测新文件类型并启用语法高亮显示。 $ vim myfile.foo
  • 但gVim没有语法高亮显示。

我试图在~/.gvimrc加入这一行:

au BufRead,BufNewFile *.foo set filetype=foo 

但它看起来像gVim的未加载~/.vim/ftdetect/foo.vim可言。我应该如何配置gVim?

  • foo.vim移动到~/.vim/syntax/对于Vim/gVim都不起作用。他们无法自动检测~/.vim/syntax文件夹。
  • 下面是脚本名列表(+号表示gVim加载的额外文件),gVim加载foo.vim,但不确定如何找出覆盖foo.vim设置的内容。由于在gVim中使用:set syntax=foo也不起作用。
  • :au BufRead,BufNewFile *.foo对于vim/gVim都没有显示检测规则。所以Vim只是神奇的作品...
  • 这是syntax rule。在规则文件中检查版本是否会导致gVim无法识别* .foo文件?

[VIM:输出scriptnames]

1: /etc/vimrc 
    2: /usr/share/vim/vim70/syntax/syntax.vim 
    3: /usr/share/vim/vim70/syntax/synload.vim 
    4: /usr/share/vim/vim70/syntax/syncolor.vim 
    5: /usr/share/vim/vim70/filetype.vim 
    6: /home/myusername/.vim/ftdetect/foo.vim 
    7: /home/myusername/.vimrc 
    8: /usr/share/vim/vim70/plugin/getscript.vim 
    9: /usr/share/vim/vim70/plugin/gzip.vim 
10: /usr/share/vim/vim70/plugin/matchparen.vim 
11: /usr/share/vim/vim70/plugin/netrwPlugin.vim 
12: /usr/share/vim/vim70/plugin/rrhelper.vim 
13: /usr/share/vim/vim70/plugin/spellfile.vim 
14: /usr/share/vim/vim70/plugin/tarPlugin.vim 
15: /usr/share/vim/vim70/plugin/tohtml.vim 
16: /usr/share/vim/vim70/plugin/vimballPlugin.vim 
17: /usr/share/vim/vim70/plugin/zipPlugin.vim 
18: /usr/share/vim/vim70/scripts.vim 

[GVIM:输出scriptnames]

1: /etc/vimrc 
    2: /usr/share/vim/vim70/syntax/syntax.vim 
    3: /usr/share/vim/vim70/syntax/synload.vim 
    4: /usr/share/vim/vim70/syntax/syncolor.vim 
    5: /usr/share/vim/vim70/filetype.vim 
    6: /home/myusername/.vim/ftdetect/foo.vim 
+ 7: /usr/share/vim/vim70/menu.vim 
+ 8: /usr/share/vim/vim70/autoload/paste.vim 
    9: /home/myusername/.vimrc 
10: /usr/share/vim/vim70/plugin/getscript.vim 
11: /usr/share/vim/vim70/plugin/gzip.vim 
12: /usr/share/vim/vim70/plugin/matchparen.vim 
13: /usr/share/vim/vim70/plugin/netrwPlugin.vim 
14: /usr/share/vim/vim70/plugin/rrhelper.vim 
15: /usr/share/vim/vim70/plugin/spellfile.vim 
16: /usr/share/vim/vim70/plugin/tarPlugin.vim 
17: /usr/share/vim/vim70/plugin/tohtml.vim 
18: /usr/share/vim/vim70/plugin/vimballPlugin.vim 
19: /usr/share/vim/vim70/plugin/zipPlugin.vim 
+ 20: /home/myusername/.gvimrc 
+ 21: /usr/share/vim/vim70/colors/torte.vim 
22: /usr/share/vim/vim70/scripts.vim 
+0

把它放到'〜/ .vim/syntax /' – keltar

+0

请将您的语法文件添加到问题中。 – keltar

+0

添加语法文件! – Stan

回答

3

什么被载入应该是Vim的和gVim的(相同的,除非你做疯狂的事情像操纵'runtimepath'在你的.gvimrc);你可以用:scriptnames检查你的语法检测脚本是否被加载(然后,也是实际的syntax/foo.vim语法脚本)。

此外,:au BufRead,BufNewFile *.foo应列出您的检测规则。

(其他)语法突出显示在gVim中有效吗?如果没有,那么你在那里有一个普遍的问题。

+0

其他语法突出显示适用于GVIM。 – Stan