2013-05-01 17 views
2

有沒有一種方法可以在vim 中突出顯示內置Python函數的內置當它們前面還有1個空格時?此外,有沒有一種模塊化的方式來做到這一點?也就是說,我不想編輯每一個syn keyword pythonBuiltinFunc abs chr ...一行,我只是想能夠說一些類似syn keyword pythonBuiltinFunc onlymatchafter="\s+"的東西?當vim突出顯示python內建的時,如果它們後面沒有跟着一個點

編輯:

下面是一個例子,因爲誰回答我的問題,兩個人似乎沒有明白我在問這是我的不是更多的清除故障。

當我寫了下面的Python代碼

import numpy as np 
x = np.abs(np.random.randn(10, 10)) 

abs得到強調只是因爲Vim基本上只是匹配任何有字abs它不是一個字符串的內部。我怎樣才能讓vim突出顯示Python內置函數,而在它們前面加點的時候不突出顯示它們?

回答

0

:syn keyword的匹配文本只能包含關鍵字字符;儘管可以配置該集(:setlocal iskeyword=...),但在其中包含空格將是愚蠢的。

你有兩個選擇:要麼重新編寫所有關鍵字:syn match(可以包含空格),或使所有關鍵字contained並定義一個:syn region只有空格之後開始。

這兩個都是相當大的干預,基本上意味着你(重新)編寫自己的Python語法。你還沒有告訴我們爲什麼你想要那個...我會說這是個壞主意。

+0

看到我上面的評論。 – 2013-05-01 22:35:50

+1

爲了實現@Ingo的第二個選項,我爲Vim 7.4發佈的'syntax/python.vim'文件寫了一個補丁。不整齊,但似乎爲我工作。你可以在這裏找到它:https://github.com/congma/vim-syntax-python隨意改進它; – 2014-08-28 13:05:26

0

您是否想這樣做是因爲您想提醒自己在Python中使用一致的樣式?

如果是這樣,我想建議您添加the syntastic plugin。與flake8等工具結合使用時,它會自動檢測並突出顯示您希望的任何樣式錯誤(默認爲PEP8樣式違例)以及一般語法錯誤。我使用這個插件很多,並強烈推薦它。

+0

沒有。原因是因爲vim突出顯示了任何與Python內置的名稱相同的函數功能。 – 2013-05-01 22:34:44

相關問題