我想在vim中自定義python的語法突出顯示。我想突出顯示關鍵字self
,但只有在後面跟着.
。這裏是我想出了代碼:Vim語法突出顯示:使用正則表達式突出顯示`self` python關鍵字
syn match pythonBoolean "\(\Wself\)\%(\.\)"
不幸的是,.
也強調,雖然我使用非捕獲組\%(\.\)
。
有什麼想法?
我想在vim中自定義python的語法突出顯示。我想突出顯示關鍵字self
,但只有在後面跟着.
。這裏是我想出了代碼:Vim語法突出顯示:使用正則表達式突出顯示`self` python關鍵字
syn match pythonBoolean "\(\Wself\)\%(\.\)"
不幸的是,.
也強調,雖然我使用非捕獲組\%(\.\)
。
有什麼想法?
您需要使用環視:
:syn match pythonBoolean "\(\W\|^\)\zsself\ze\."
或
:syn match pythonBoolean "\(\W\|^\)\@<=self\(\.\)\@="
工作就像一個魅力!謝謝。 – BiBi
如何使用lookbehinds and lookaheads?對於任何非文字字符[^a-zA-Z0-9_]
共同的正則表達式的語法之前和之後.
自我的occurence一個有效的正則表達式是:(?<=\W)(self)(?=\.)
Vim的正則表達式來看看this answer,而且,如果你需要更多的幫助,檢查this page出。
作爲替代回顧後和前瞻,往往VIM放緩:
syn match pythonBoolean "\<self\ze\."
或者,如果您想突出顯示所有對象:
syn match pythonBoolean "\<\w\+\ze\."
@腦膜的答案建立在,我已將此添加到我的.vimrc
:
augroup PythonCustomization
" highlight python self, when followed by a comma, a period or a parenth
:autocmd FileType python syn match pythonStatement "\(\W\|^\)\@<=self\([\.,)]\)\@="
augroup END
注1:那除了什麼運問,它也將在self
其次是突出逗號或右括號。
注2:不使用pythonBoolean
,採用pythonStatement
(個人喜好)這突出self
。您可以使用其他高亮組(運行:syn
與python文件打開,看看有什麼可用)
有你的嘗試\ v在開始激活非常神奇 – Destrif
我試過了,它並沒有改變一件事。根據我的理解,'\ v'允許避免轉義括號等特殊字符。 – BiBi
但是'self'並不是python中的關鍵字。 – aragaer