我在Ubuntu12.04上的~/.vim/ custom文件夹中有一个.js javascript语法文件,但当我在vim中打开一个vim文件时,它使用的是系统语法:
输出:scriptname
1: /usr/share/vim/vimrc
2: /usr/share/vim/vim73/debian.vim
3: /usr/share/vim/vim73/syntax/syntax.vim
4: /usr/share/vim/vim73/syntax/synload.vim
5: /usr/share/vim/vim73/syntax/syncolor.vim
6: ~/.vim/filetype.vim
7: /usr/share/vim/vim73/filetype.vim
8: /usr/share/vim/vim73/plugin/getscriptPlugin.vim
9: /usr/share/vim/vim73/plugin/gzip.vim
10: /usr/share/vim/vim73/plugin/matchparen.vim
11: /usr/share/vim/vim73/plugin/netrwPlugin.vim
12: /usr/share/vim/vim73/plugin/rrhelper.vim
13: /usr/share/vim/vim73/plugin/spellfile.vim
14: /usr/share/vim/vim73/plugin/tarPlugin.vim
15: /usr/share/vim/vim73/plugin/tohtml.vim
16: /usr/share/vim/vim73/plugin/vimballPlugin.vim
17: /usr/share/vim/vim73/plugin/zipPlugin.vim
18: ~/.vim/syntax/javascript.vim
19: /usr/share/vim/vim73/syntax/javascript.vim如何将我的自定义语法应用于*.js文件?
发布于 2013-05-22 11:51:13
您已将语法文件放置在适当的位置,即~/.vim/syntax/javascript.vim。系统语法文件显示其来源的原因。但是,文件中的前几行检查是否有其他语法文件。由于已经设置了当前语法,因此系统语法文件将退出而不执行任何操作。
因此,首先是定制的源(并且应用了所有的突出显示)。那么这个系统就是一个来源。这就是为什么您可以在:scriptnames的输出中看到这两者的原因
因此,要让vim应用自定义语法规则,您不需要做任何事情,因为所有文件都在正确的位置。
发布于 2013-05-22 11:56:30
在我的.../vim73/syntax/javascript.vim中,我在开头看到了以下代码:
if !exists("main_syntax")
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
let main_syntax = 'javascript'
endif最后:
let b:current_syntax = "javascript"
if main_syntax == 'javascript'
unlet main_syntax
endif我建议在自定义语法文件的末尾添加let b:current_syntax = "javascript"。实际上,我检查了exists("b:current_syntax")目录中许多文件中语法,所以您可能也应该在开头添加一个检查:
if exists("b:current_syntax")
finish
endifhttps://stackoverflow.com/questions/16683149
复制相似问题