我想知道如何设置vim来为新的html5元素(即“canvas”和“video”)着色,就像它与现有的“script”,“body “元素(或其他语言中的保留字,如python的”def“)等等。当前版本来自通常用于终端仿真器的MacPorts。如何将Vim更新为颜色代码新的html元素
回答
html.vim
是Vim咨询确定哪些标签将被着色的语法文件。这个位置取决于您安装的Vim。在这个语法文件中,您会看到许多如下所示的行:
" new html 4.0 tags
syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
这些行定义了语法关键字。在这种情况下,他们专门定义HTML标签名称。第一行告诉Vim颜色abbr
,acronym
,bdo
,button
,col
和label
标签。你可以告诉Vim颜色附加标签的语法如下:
" new html 5 tags
syn keyword htmlTagName contained video canvas
现在,Vim将颜色video
和canvas
标签和你添加任何额外的关键字。
但是,如果您更新内置的html.vim
,它将在您下次更新Vim时被覆盖,因此最佳做法是将您的规则附加到这些内置的规则。为此,请在.vim
文件夹中创建文件夹路径after/syntax
,并在其中放置html.vim
。
以下@ user240515提到的这个gist中有大量的HTML 5元素和参数。将这些内容粘贴到新创建的html.vim
中。
咨询:help html.vim
了解更多信息。
感谢这个问题,并感谢您接受的答案!这是新标签的完整列表添加对HTML 5,因为它们是在写作的时候定义:
" new html 5 tags
syn keyword htmlTagName contained article aside audio canvas command datalist
syn keyword htmlTagName contained details embed figcaption figure footer header
syn keyword htmlTagName contained hgroup keygen mark meter nav output progress
syn keyword htmlTagName contained rp rt ruby section source summary time video
我只是要试试这个:
http://github.com/othree/html5.vim
似乎相当完整。
编辑:我没有看到任何关于缩进。 :(
EDIT [2012年12月23日]:我做的:)但也许就是后来补充说:https://github.com/othree/html5.vim/tree/master/indent
压痕可以使用类似于由michaelmichael用于扩展html.vim
语法文件中描述的方法来支持。如果您的~/.vim/indent
中没有html.vim
,则可以使用here的内容创建它。内~/.vim/indent/html.vim
,你会看到一个函数调用集组装,看起来像下面的HTML元素的名称列表:
" [-- <ELEMENT ? - - ...> --]
call <SID>HtmlIndentPush('a')
call <SID>HtmlIndentPush('abbr')
call <SID>HtmlIndentPush('acronym')
call <SID>HtmlIndentPush('address')
" ...and many more...
这些行定义将触发基本标签缩进标记。使用任何您希望触发缩进的HTML5标记扩展此列表。我添加了下面这个列表的末尾:
" New HTML 5 elements
call<SID>HtmlIndentPush('table')
call<SID>HtmlIndentPush('article')
call<SID>HtmlIndentPush('aside')
call<SID>HtmlIndentPush('audio')
call<SID>HtmlIndentPush('canvas')
call<SID>HtmlIndentPush('command')
call<SID>HtmlIndentPush('datalist')
call<SID>HtmlIndentPush('details')
call<SID>HtmlIndentPush('embed')
call<SID>HtmlIndentPush('figcaption')
call<SID>HtmlIndentPush('figure')
call<SID>HtmlIndentPush('footer')
call<SID>HtmlIndentPush('header')
call<SID>HtmlIndentPush('hgroup')
call<SID>HtmlIndentPush('keygen')
call<SID>HtmlIndentPush('mark')
call<SID>HtmlIndentPush('meter')
call<SID>HtmlIndentPush('nav')
call<SID>HtmlIndentPush('output')
call<SID>HtmlIndentPush('progress')
call<SID>HtmlIndentPush('rp')
call<SID>HtmlIndentPush('rt')
call<SID>HtmlIndentPush('ruby')
call<SID>HtmlIndentPush('section')
call<SID>HtmlIndentPush('source')
call<SID>HtmlIndentPush('summary')
call<SID>HtmlIndentPush('time')
call<SID>HtmlIndentPush('video')
缩进现在来对上面列出的HTML5标签触发。
根据上面的建议,我添加了一个html5缩进文件到othree/html5.vim的分支。
的syntax/html.vim
文件附带vim(8.0)是非常过时。保持语法高亮更新的好方法是使用一个维护良好的插件,例如vim-polygot,它保持更新。这是html.vim syntax支持,canvas
,video
, section
和main
(其他答案不支持),仅举几例。
- 1. 如何将我的UIButton背景颜色更新为特定的颜色代码0xff64b5f6
- 2. 如何更改所选代码的颜色(Vim方案)?
- 3. 将RGBA颜色转换为HTML颜色代码
- 4. Javascript - 如何更新元素内部html?
- 5. 如何将字符串转换为html颜色代码散列?
- 6. 如何更新HTML代码到MySQL场
- 7. 更新后更改窗体背景颜色的VBA代码
- 8. 更新model3d元素的颜色的有效方法
- 9. 如何动态更新SeekBar的颜色?
- 10. 如何更改Vim中的Python颜色?
- 11. 将我的html元素设为不同的背景颜色。
- 12. 如何更新JSON元素
- 13. 如何临时更改添加到DOM的新元素的背景颜色?
- 14. C#/ WPF - DataGrid - 超时后更新元素颜色
- 15. 将类更改为元素不会更改背景颜色
- 16. 代码更新颜色,但不是实际的文本?
- 17. 如何使用颜色选择器作为HTML输入元素
- 18. 在使用Javascript更改HTML元素后,如何刷新HTML元素的样式?
- 19. 在phpBB颜色代码中重新启用行情颜色代码
- 20. 如何更改VIM强调颜色
- 21. 更新颜色选择器面板中的新颜色
- 22. 如何将HTML代码更改为JavaScript?
- 23. 将HTML HEX颜色或RGB元组转换为X11颜色
- 24. 不能更新元素的HTML
- 25. 将MDI父级颜色表单重新更改为白色
- 26. 如何将RGB转换为HTML颜色?
- 27. VIM:如何在不使用NonText颜色元素的情况下更改“突破突出显示”颜色
- 28. HTML元素刷新
- 29. jQuery更新html元素文本而不影响HTML子元素
- 30. 将C#代码列表导出为带有颜色语法的HTML代码
谢谢mikemike – unmounted 2010-07-13 23:16:54
@michaelmichael谢谢,但对我来说不起作用,我在他的回答中加入了@johan说的几句话,但我没有在'