2011-04-04 27 views
19

有沒有辦法告訴Vim不要突出一個單詞一次?例如,在「密碼是abc123」中,我不想將abc123添加到單詞表中,但仍然不喜歡它周圍的大紅色矩形。忽略Vim中的一個「拼寫錯誤」

說明:我正在查找一個命令,使拼寫檢查器忽略當前單詞(或最後一個拼寫錯誤)。

+0

良好的密碼和拼寫錯誤共享一個不舒服的共同點:它們都不是在字典中找到。也許你可以爲這個工具提供語法高亮顯示? ':help spell-syntax' http://vimdoc.sourceforge.net/htmldoc/spell.html#spell-syntax – Boldewyn 2011-04-04 10:05:51

+0

@Boldewyn:這是一個很好的主意,可以解決部分問題。我仍然希望能夠擁有例如儘管如此,外文名稱和縮寫仍然以流暢的文字顯示。 – Tim 2011-04-04 10:29:00

回答

23

當你的光標定位在爲拼寫錯誤,你可以按zg它添加到您的單詞表被突出一個字。 Vim允許您一次加載多個單詞表,這樣就可以擁有(例如)全局單詞列表和特定於項目的單詞列表。

默認情況下,當您運行zg時,它會將當前字添加到它在當前編碼的運行時路徑中找到的第一個spellfile。在我的情況下,當我使用UTF-8編碼時,結果是~/.vim/spell/en.utf-8.add。嘗試運行以下命令:

:setlocal spellfile+=~/.vim/spell/en.utf-8.add 
:setlocal spellfile+=oneoff.utf-8.add 

這將設置你讓zg(或1zg)將當前單詞到默認spellfile。但運行2zg會將當前單詞添加到名爲oneoff.utf-8.add的文件中,該文件與您正在處理的文件位於同一目錄中。如果文件不存在,Vim會嘗試爲你創建它。

當您將來再次打開該文件時,您將不得不運行相同的兩個命令來使Vim檢查oneoff.utf-8.add拼寫文件。不幸的是,Vim不允許你在modeline中設置spellfile選項,所以如果你想在文件打開時自動運行這些命令,你必須找到其他方法。 This question包含一些關於如何進行的想法。

+0

這似乎是一個似是而非的解決方法。謝謝! – Tim 2011-04-05 09:36:14

29

沒有字存儲在某個地方,很難忽略它(不說是不可能的)。

但是,如果您希望忽略單詞一次,這只是暫時的,您可以使用zG命令將其添加到內部列表中。

               *zG* 
zG    Like "zg" but add the word to the internal word list 
       |internal-wordlist|. 


               *internal-wordlist* 
The internal word list is used for all buffers where 'spell' is set. It is 
not stored, it is lost when you exit Vim. It is also cleared when 'encoding' 
is set.