Vim中.ejs文件的语法高亮显示
使vim突出显示ejs(http://embeddedjs.com/)文件的最佳方法是什么? 是否有可能为一般的文件设置html突出显示,并在JavaScript中突出显示<%%>中的部分? 感谢你的帮助!
学分去@inkedmn只是想指出,HTML绑定工作方式更好,因此把这个在你的〜/ .vimrc文件:
au BufNewFile,BufRead *.ejs set filetype=html 这是我今天鞭打的东西(对eruby脚本做了一些修改)。 它需要安装vim-javascript插件。
我将这个语法文件直接下载到〜/ .vim / syntax中的效果最好
如果你想让它们像常规的.js文件一样突出显示,你可以把它添加到你的.vimrc文件中:
 au BufNewFile,BufRead *.ejs set filetype=js 
不是100%肯定这就是你以后 – 希望它有帮助。
 对于在适当的地方使用javascript和html语法的解决scheme(不依赖于任何第三方javascript插件),需要一个ftdetect文件,该文件在带有.ejs扩展名的文件加载到ejs语法文件时运行autocmd 。 
如果你不关心它是如何工作的,我已经把一个软件包放在了一起,你可以从这里获取github。 如果使用Vundle只需将其添加到您的.vimrc中:
 Bundle 'nikvdp/ejs-syntax' 
 要自己做,请在~/.vim文件夹中创build两个文件: 
  ftdetect文件: ~/.vim/ftdetect/ejs.vim : 
 autocmd BufNewFile,BufRead *.ejs set filetype=ejs autocmd BufNewFile,BufRead *._ejs set filetype=ejs function! s:DetectEjs() if getline(1) =~ '^#!.*\<ejs\>' set filetype=ejs endif endfunction autocmd BufNewFile,BufRead * call s:DetectEjs() 
 和一个语法文件(来自user456584的答案): ~/.vim/syntax/ejs.vim 
 runtime! syntax/html.vim unlet b:current_syntax " Include Java syntax syn include @ejsJavaScript syntax/javascript.vim syn region ejsScriptlet matchgroup=ejsTag start=/<%/ keepend end=/%>/ contains=@ejsJavaScript syn region ejsExpr matchgroup=ejsTag start=/<%=/ keepend end=/%>/ contains=@ejsJavaScript " Redefine htmlTag so that it can contain jspExpr syn clear htmlTag syn region htmlTag start=+<[^/%]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,ejsExpr,javaScript " syn keyword ejsPrint contained print syn match javaScriptType /\<\zsvars\ze\./ syn match javaScriptSpecial /\<\zsexports\ze\./ syn match javaScriptFunction /\<\zsprint\ze(/ syn match javaScriptFunction /\<\zsinclude\ze(/ syn match javaScriptFunction /\<\zsincludeObject\ze(/ syn match javaScriptFunction /\<\zsfetch\ze(/ syn match javaScriptFunction /\<\zsfetchObject\ze(/ command -nargs=+ HiLink hi def link <args> HiLink ejsTag htmlTag delcommand HiLink let b:current_syntax = "ejs" 
尝试这个
 cd /usr/share/vim/vim74/syntax #maybe vim64 or other cp html.vim ejs.vim vim ejs.vim 
 你可以编辑html.vim但我build议你不要…然后find 
 syn region javaScript start=+<script\_[^>]*>+ keepend end=+</script>+me=s-1` contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc 
和写
  syn region ejsScript start=+<%+ keepend end=+%>+ contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc 
在那条线下。
找
  HtmlHiLink javaScript Special 
加
  HtmlHiLink ejsScript Special 
在它下面
 把这一行添加到你的~/.vimrc 
 au BufNewFile,BufRead *.ejs set filetype=ejs 
现在你的ejs代码看起来像js代码…或者你只是想看起来像别的东西?
replase
  HtmlHiLink ejsScript Special 
通过(例如)
  hi def ejsScript term=bold cterm=bold gui=bold 
其实在这个例子中,两条线可以一起住…
它使你的代码可爱〜
你可以阅读这个来帮助你使用你的vim语法