如何使vim高亮ejs(http://embeddedjs.com/)文件? 是否可以为该文件设置HTML高亮,并为<% %>内部的JavaScript部分设置高亮? 感谢你的帮助!
如何使vim高亮ejs(http://embeddedjs.com/)文件? 是否可以为该文件设置HTML高亮,并为<% %>内部的JavaScript部分设置高亮? 感谢你的帮助!
感谢 @inkedmn,我想指出的是HTML绑定工作效果更好,因此请将以下内容放入您的~/.vimrc文件中:
au BufNewFile,BufRead *.ejs set filetype=html
今天我做了一些修改(eruby脚本),制作了一些东西。 它需要安装vim-javascript插件。
如果你想使用适当的javascript和html语法(而不依赖于任何第三方javascript插件)来解决问题,那么你需要一个ftdetect文件,在加载具有.ejs扩展名的文件时运行autocmd
,并结合一个ejs语法文件。
如果你不关心它是如何工作的,我已经在github上准备了一个软件包here。如果使用Vundle,只需将以下内容添加到您的 .vimrc 文件中:
Bundle 'nikvdp/ejs-syntax'
~/.vim
文件夹中创建两个文件:~/.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"
如果您希望将它们像常规的.js文件一样突出显示,可以在您的.vimrc文件中添加以下内容:
au BufNewFile,BufRead *.ejs set filetype=js
我不完全确定你需要的是什么,但希望这能有所帮助。
cd /usr/share/vim/vim74/syntax #maybe vim64 or other
cp html.vim ejs.vim
vim ejs.vim
你可以直接编辑html.vim
,但我建议你不要这样做... 然后找到
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代码了... 或者你只是想让它看起来像其他东西?
替换
HtmlHiLink ejsScript Special
通过(例如)
hi def ejsScript term=bold cterm=bold gui=bold
实际上,在这个例子中,这两行可以共存...
它使你的代码可爱~
你可以阅读this来帮助你使用vim-syntax
~/.vimrc
中添加了Bundle 'briancollins/vim-jst'
。 - Jason Swett*.ejs
的正确文件关联应该是au BufRead,BufNewFile *.ejs setf javascript.jsx
。 - thom_nic