2015-11-26 54 views
0

我是VIM的新手,我仍然在學習它。我想在大多數IDE中實現類似的功能,以使VIM用某種顏色(例如紅色)突出顯示我的錯誤。VIM編碼錯誤強調合成

我發現合成,因爲大家都推薦它。我安裝它,它工作「正常」我猜,但我沒有看到任何錯誤突出顯示,既不強調。我有「默認設置」的東西,在我的.vimrc:

set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 

let g:syntastic_always_populate_loc_list = 1 
let g:syntastic_auto_loc_list = 1 
let g:syntastic_check_on_open = 0 
let g:syntastic_check_on_wq = 0 

,我也加入

let g:syntastic_enable_signs=1 

仍然沒有亮點,在錯誤無下劃線。我平時如果有使用Python,所以這是我想看到什麼:

class some_calass(self) 
    self.somevar = 0 

並以higligh /強調「階級」行,因爲我忘了「:」結尾。

如果我使用

:SyntasticCheck 

我得到一個新的分割選項卡中相應的誤差正常Syntastic窗口,和一個「標尺」,在左側彈出與紅色的「>>」標記錯誤,但我想避免它們兩個,這就是爲什麼我關掉了

let g:syntastic_check_on_open = 0 

選項。我只會一直喜歡關於錯誤的高亮/下劃線功能。

感謝您的幫助!

回答

3

錯誤發生在class行的末尾,並且synthetic會在右括號之後突出顯示單個字符。如果你想整行突出顯示,你可以做這樣的事情:

highlight link SyntasticErrorLine error 
highlight link SyntasticWarningLine todo 

Syntastic不關心你的文件的內容,只有外部跳棋做。並非所有這些檢查器都會返回足夠的信息進行合成,以有意義的方式突出顯示錯誤,甚至在他們這樣做時,合成器也不知道如何解析所有可能相關的信息。大多數情況下,合成只會突出顯示上面的單個字符,或者根本沒有。如果你願意,你可以使符號(也就是在水槽邊緣的東西)突出顯示它們被放置的線條,這是一個Vim特徵,但是這並不能使關於錯誤的信息比合成的更精確它。

請參閱:h syntastic-error-signs:h syntastic-highlighting瞭解您可以調整的細節。

+0

非常感謝!據我所見,這個問題可能與外部檢查器有關。我已經安裝了flake8。你能建議任何可能工作的外部Python檢查器嗎?我沒有看到任何突出顯示順便說一句,即使我寫了一些謊言「asdasdasdkj」,這應該不會被接受在Python文件中我猜:) –

+0

@GáborErdős你似乎不明白我上面寫的。所有檢查工作,這是你的期望是不現實的。上面的「高亮鏈接」技巧是你能做的最好的。 – lcd047