如何强制vim将文件语法高亮显示为html?


120

如何设置vim的语法突出显示以将文件扩展名视为html文件?

我正在使用ez模板,因此文件的扩展名为.ezt。但是很多都是普通的html代码。

Answers:


109

您也可以将其放入.vimrc中:

au BufReadPost *.ezt set syntax=html

E216:没有这样的组或事件:BufLoad * .ezt设置了语法= html ...我在做什么错?
Karthick

2
以我的经验,如果您提供一个精确的文件名,则这种方法将失败.myspecialdotfile。即使理论上没有必要,它也需要在其中某个地方工作的星星。
SeldomNeedy

我在.vimrcDockerfile的文件中包含此文件,该文件具有用于不同用途的扩展名。autocmd BufNewFile,BufRead Dockerfile * set filetype = docker刚使用Dockerfile*可防止在使用时突出显示语法vi Dockerfile-添加反斜杠使其适用于Dockerfile/ Dockerfile.somethingDockerfilesomething
Android Control


26

看一下这个Vim wikia主题。一些有用的提示:

  • 如其他答案所述,您可以使用vim set命令设置语法。:set syntax=<type>这里<type>是一样的东西perlhtmlphp,等。

  • 还有另一种可用于控制语法突出显示的机制,称为filetypeft简称。与语法类似,您可以给它提供这样的类型::set filetype=html。其它文件类型是perlphp

  • 有时vim会“忘记”要使用的语法,特别是如果您将php和html之类的东西混合在一起的话。使用键盘快捷键Ctrl+ L<C-L>)获取vim以刷新突出显示。


最佳答案!+!
J.艾伦

17

请注意,该选项可以:set syntax=xml正确突出显示,但在尝试自动缩进文件(即运行gg=G)时似乎失败。

当我切换到时:set filetype=xml,突出显示正常,文件缩进正确。


14

在.php文件(或html文件)中,您可以使用Vim Modeline强制执行某些命令或设置:

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~

2
您的意思是Modeline
Shammel Lee'May

有时某些文件会忽略au ...我中与语法相关的设置~/.vimrc(可能是由于修改了元数据?)。除了将文件内容复制到新文件之外,在该文件的顶部设置Modeline是可行的。例如,对于BASH脚本,# vim: syntax=sh在shebang(第一行:)之后#!/bin/bash似乎可以可靠地添加第二行。由于基本上是“注释”,因此我只在sbb“ shebang bash”代码段中同时包含了这两行。
维多利亚·斯图尔特

13

要使其自动,请将此行添加到您的~/.vimrc

autocmd BufNewFile,BufRead *.ezt set filetype=html

如果只想对当前文件执行此操作,请键入:

:set filetype=html

您也可以syntax代替filetype,但filetype会影响更多的事情syntax(包括语法突出显示,缩进规则和插件),因此通常应该使用,filetype除非您只想影响syntax

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.