2

我使用 Vim 编辑带有嵌入宏的 HTML,其中的宏用双尖括号括起来,例如“<>”。Vim 的标准 HTML 高亮显示将第二个 "<" 和 ">" 视为错误,并将它们高亮显示。我怎样才能防止这种情况?我很乐意教 $VIMHOME/syntax/html.vim 双尖括号是可以的,或者只是禁用错误突出显示,但我不确定如何做任何一个。(“highlight clear htmlTagError”无效。事实上,“highlight clear”在 HTML 缓冲区中无效。)

4

2 回答 2

3

如果您想在宏中引入完整的语法突出显示,最简单的方法是从 ( 之类的语法文件开始htmldjango$VIMRUNTIME/syntax/htmldjango.vim然后使用html.vimdjango.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它会出现在相同的位置。但希望您会认为单独突出显示比仅删除错误更好。)

于 2012-05-21T22:49:36.517 回答
1

以下是在 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
  1. 编写一个包含您要使用的命令的 Vim 脚本。例如,要更改 C 语法的颜色: highlight cComment ctermfg=Green guifg=Green

  2. 将该文件写入“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

于 2012-05-21T22:29:19.007 回答