Vim 配色方案 PHP $_POST 变量分类为语句

Vim color scheme PHP $_POST variable categorized as statement

我正在为 PHP 编辑 Vim 配色方案。为什么 $_POST$_SESSION 等变量被归类为语句?例如,它们使用与 if 语句相同的颜色。其他变量将具有不同的颜色。此外,美元符号被归类为声明。

如何分别更改它们的颜色?

您需要找出哪个语法组导致突出显示。 :syn list 显示所有活动组,但安装 SyntaxAttr.vim - Show syntax highlighting attributes of character under cursor 插件后更容易。

对我来说,这导致以下映射 (Vim 8.0.55):

"if":   phpConditional -> Conditional links to Statement
"$":    phpVarSelector -> Operator links to Statement
"POST": phpIntVar -> Identifier

一般来说,colorschemes 定义了一组基本的样式,例如 ConstantIdentifierStatement。然后,(仍然是通用的)变体被定义:String is-a kind of Constant。语法插件然后 link 到其中之一。您可以在脚本底部的 :hi def link 命令中看到 $VIMRUNTIME/syntax/php.vim 中的 PHP。

这为用户提供了几种配置突出显示的方法:如果您没有将 String 视为一种 Constant,您可以重新定义 link,或者使用一种新的自定义样式,它将适用于各种语法。如果您只想调整某个语言元素(如 phpIntVar),您可以更改 link,它仅适用于 PHP 和该元素。所有这些都可以在您的 ~/.vimrc!

中完成