我使用 Vim 编辑带有嵌入宏的 HTML,其中的宏用双尖括号括起来,例如“<>”。Vim 的标准 HTML 高亮显示将第二个 "<" 和 ">" 视为错误,并将它们高亮显示。我怎样才能防止这种情况?我很乐意教 $VIMHOME/syntax/html.vim 双尖括号是可以的,或者只是禁用错误突出显示,但我不确定如何做任何一个。(“highlight clear htmlTagError”无效。事实上,“highlight clear”在 HTML 缓冲区中无效。)
2 回答
如果您想在宏中引入完整的语法突出显示,最简单的方法是从 ( 之类的语法文件开始htmldjango
,$VIMRUNTIME/syntax/htmldjango.vim
然后使用html.vim
和django.vim
来自同一目录);{{ ... }}
其中,除其他外,还有特殊含义。您希望它是一样的,但要使用<<
并>>
作为您的分隔符。
要<< ... >>
特别突出显示,您需要这样的语法行:
syntax region mylangMacro start="<<" end=">>" containedin=ALLBUT,mylangMacro
然后你可以用以下方式突出显示它:
highlight default link mylangMacro Macro
这既可以进入~/.vim/after/syntax/html.vim
也可以htmldjango
以新语法荧光笔的方式完成(这将是我的首选方法;然后您可以使 HTML 文件使用这个带有 autocmd 的新语法文件)。
(您也可以删除错误突出显示,syntax clear htmlTagError
它会出现在相同的位置。但希望您会认为单独突出显示比仅删除错误更好。)
以下是在 Vim 中编辑现有语法高亮的说明:
http://vimdoc.sourceforge.net/htmldoc/syntax.html#mysyntaxfile-add
Unix/Linux 的 vim 运行时路径:
$HOME/.vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
$HOME/.vim/after
在你的 vim 运行时路径中创建一个名为“after/syntax”的目录。
适用于 Unix/Linux 的命令:
mkdir ~/.vim/after
mkdir ~/.vim/after/syntax
编写一个包含您要使用的命令的 Vim 脚本。例如,要更改 C 语法的颜色: highlight cComment ctermfg=Green guifg=Green
将该文件写入“after/syntax”目录中。使用语法名称,并添加“.vim”。对于我们的 C 语法: :w ~/.vim/after/syntax/c.vim
而已。下次编辑 C 文件时,注释颜色会有所不同。你甚至不必重新启动 Vim。
如果您有多个文件,则可以使用文件类型作为目录名称。将使用该目录下的所有“*.vim”文件,例如:~/.vim/after/syntax/c/one.vim ~/.vim/after/syntax/c/two.vim
或者,您可以采用更简单的方法并在 Nano 命令行编辑器中使用语法高亮,您可以使用正则表达式轻松定义自己的语法:
http://how-to.wikia.com/wiki/How_to_use_syntax_highlighting_with_the_GNU_nano_text_editor