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语法