【发布时间】:2011-04-20 15:54:11
【问题描述】:
如何设置 vim 的语法高亮以将文件扩展名视为 html 文件?
我使用的是 ez 模板,所以文件的扩展名是 .ezt。但是很多都是普通的html代码。
【问题讨论】:
标签: html syntax-highlighting vim
如何设置 vim 的语法高亮以将文件扩展名视为 html 文件?
我使用的是 ez 模板,所以文件的扩展名是 .ezt。但是很多都是普通的html代码。
【问题讨论】:
标签: html syntax-highlighting vim
:set syntax=html
【讨论】:
:set syntax 将返回当前应用的文件突出显示可能会有所帮助
你也可以把它放到你的 .vimrc 中:
au BufReadPost *.ezt set syntax=html
【讨论】:
.myspecialdotfile。即使理论上没有必要,它也需要在某个地方有一颗星星才能工作。
.vimrc 文件中有这个用于 Dockerfile 的文件,这些文件具有用于不同目的的扩展名。 autocmd BufNewFile,BufRead Dockerfile* set filetype=docker 仅使用 Dockerfile* 可防止语法高亮在使用 vi Dockerfile 时起作用 - 添加反斜杠使其适用于 Dockerfile / Dockerfile.something 和 Dockerfilesomething
看看这个Vim wikia topic。一些有用的提示:
正如其他答案所提到的,您可以使用 vim set 命令来设置语法。 :set syntax=<type> 其中<type> 类似于perl、html、php 等。
还有另一种机制可用于控制语法高亮显示,称为filetype,或简称ft。类似于语法,你给它一个像这样的类型::set filetype=html。其他文件类型有perl、php等。
有时 vim 会“忘记”使用什么语法,尤其是当您将 php 和 html 之类的东西混合在一起时。使用键盘快捷键 Ctrl+L (<C-L>) 让 vim 刷新突出显示。
【讨论】:
要使其自动运行,请将此行添加到您的 ~/.vimrc:
autocmd BufNewFile,BufRead *.ezt set filetype=html
如果您只想对当前文件执行此操作,请键入:
:set filetype=html
你也可以用syntax代替filetype,但是filetype affects more things than syntax(包括语法高亮、缩进规则和插件),所以一般你应该使用filetype,除非你只想影响syntax。
【讨论】:
请注意,:set syntax=xml 可以正确突出显示,但在尝试自动缩进文件时似乎会失败(即运行gg=G)。
当我切换到:set filetype=xml 时,突出显示正常工作,文件缩进正常。
【讨论】:
在 .php 文件(或 html 文件)中,您可以使用 Vim Modeline 强制执行某些命令或设置:
1 /* vim: syntax=javascript
2 *
3 * .submit_norefresh()
~
~
【讨论】:
~/.vimrc 中与语法相关的au ... 设置对于某些文件会被忽略(可能是由于修改了元数据?)。除了将该文件内容复制到一个新文件之外,在该文件的顶部设置一个模式行是可行的。例如,对于 BASH 脚本,在 shebang 之后添加第二行 # vim: syntax=sh(第一行:#!/bin/bash)似乎可以可靠地工作。因为它基本上是一个“评论”,所以我只在我的sbb ("shebang bash") sn-p 中包含这两行。