2016-12-06 72 views
1

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

如何分别更改这些颜色?

enter image description here

+1

@garfbradaz我发布了一张图片,因为问题是关于语法高亮。 – Z0q

+0

我真诚的道歉,你做到了 - 我的坏,不理我! – garfbradaz

回答

2

你需要找出哪些语法组会导致高亮。 :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是一种Constant。语法插件然后链接到其中的一个。您可以在脚本底部的$VIMRUNTIME/syntax/php.vim:hi def link命令中看到PHP。

这为用户提供了几种配置突出显示的方法:如果您没有看到String作为Constant的一种,则可以重新定义该链接或使用新的自定义样式进行覆盖,并且它将应用于各种语法。如果您只是想调整某个语言元素(如phpIntVar),则可以更改该链接,并且该链接仅适用于PHP和该元素。所有这些都可以在您的~/.vimrc中完成!

+0

感谢您提供广泛的信息。 var选择器似乎工作,但int var不会更改'$ _POST'的颜色。有任何想法吗? – Z0q

+0

我找到了。它被称为:phpSuperGlobal。 – Z0q