【问题标题】:How can I get Vim HTML syntax highlighting to colour the whole tag?如何让 Vim HTML 语法高亮显示整个标签?
【发布时间】:2017-01-18 17:54:54
【问题描述】:

作为一个 PhpStorm 用户,我在尝试使用 Vim 时遇到的一件令人失望的事情是它在 HTML 中突出显示语法的方式:

Vim 只给标记名和属性上色,而 用不同的颜色。那有什么意义呢?与我在 PhpStorm 中获得的视图相比,我发现这让人分心:

(忽略不同的配色方案。)我发现使用所有 <> 字符很难阅读代码。我如何修改 Vim 来做到这一点?

我正在为 Vim 使用 monokai 配色方案。

【问题讨论】:

标签: html vim phpstorm syntax-highlighting color-scheme


【解决方案1】:

您不需要修改 HTML 语法本身 - 这一切都可以通过覆盖默认链接来完成。 syntax/html.vim 为各种 HTML 元素定义 语法组,然后(在脚本末尾)链接到某些 高亮组,其外观由您的 colorscheme 决定。如果您建立不同的链接(在您的 ~/.vimrc 中),这将很荣幸。因此,要使整个标签看起来像标签名称,请使用:

highlight link htmlTag htmlTagName
highlight link htmlEndTag htmlTagName

【讨论】:

  • 感谢 Ingo - 我将这些行添加到我的 .vimrc 的底部,但不幸的是,我仍然使用旧样式的突出显示,只有当光标在它们上方时,整个标签的颜色相同。
  • 奇怪。您是否有任何其他插件,例如突出匹配的标签?或者你有'cursorline' 设置吗? SyntaxAttr.vim - Show syntax highlighting attributes of character under cursor 插件可能有助于解决此问题。
  • 谢谢 - 我刚刚在另一台计算机上的 Vim 上尝试过这个,它成功了 - 必须是我另一台计算机上的插件。将此标记为解决方案。
【解决方案2】:

~/.vim/syntax/html.vim 中制作syntax/html.vim 的本地副本(其中第一个文件名是您的系统安装目录)。

尝试更改htmlTaghtmlTagEnd 的高亮组(靠近语法文件的底部)以匹配htmlTagName 的高亮组。我喜欢默认的,所以我只对几个文件进行了实验,它似乎没有破坏任何东西。由于颜色相同,不应再有人字形将其粘在受体锥上。

作为一个如此简单的测试,这可能会在某个地方破坏某些东西,您可能需要花几分钟时间与其他 hilight 组一起获得一致的外观。

【讨论】:

  • 嗯,谢谢 Brian,我尝试将设置“hi def link htmlTag”和“hi def link htmlEndTag”从“Function”和“Identifier”更改为“htmlStatement”,与 htmlTagName 相同 - 这仅修复光标在该标签上时的颜色 - 我想我也需要未选择标签的样式。
  • 我认为我在这个解决方案中看到的行为与我在 Ingo 的建议中看到的相同,即在我的 .vimrc 中添加高亮链接。所以这种方法可能也有效。但我发现 Ingo 的方法更简单,因为我可以在 .vimrc 中完成,所以我会去找他的答案并给这个答案一个赞成票。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-08-16
  • 2015-04-24
  • 2010-12-21
  • 2016-05-07
  • 2010-09-08
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多