2016-12-06 71 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