2009-10-22 51 views
0

我正在使用mvim。我在我的vimrc中有以下幾行。mvim突出顯示長文本的作品零星

"highlight text that goes over 80 columns 
highlight OverLength ctermbg=red ctermfg=white guibg=#592929 
match OverLength /\%81v.*/ 

有時在我的項目中,我看到突出顯示的額外字符,有時候我沒有。我的意思是一旦vim顯示額外的字符,那麼它將繼續顯示額外的字符。但是,如果我離開vim並啓動vim實例,它可能不會突出顯示額外的字符。爲了解決這個問題,我輸入

match OverLength /\%81v.*/ 

我對它爲什麼會發生困惑。有沒有可能是一些插件搞亂這些設置?

回答

2

插件可能會通過設置自己的match來撤消它。也有可能你正在創建一個新窗口。 match是每個窗口(不是每個緩衝區,也不是全局的),因此它僅適用於執行match命令時處於活動狀態的窗口。

你可以嘗試創建一個自動命令來設置匹配的新窗口:

au! WinEnter match OverLength /\%81v.*/ 

請注意,這不是第一個窗口上執行。

+0

你是對的當我在現有的窗口中創建一個新的標籤,然後我沒有得到的亮點。我沒有注意到,直到你指出。讓我試試你的建議。 – Roger 2009-10-23 01:37:44

+0

我把你的代碼放入vimrc文件中,像這樣。 「即越過80列 亮點超長ctermbg =紅色ctermfg使用=白guibg高亮文本=#592929 比賽超長/\%81v.*/ 」 http://stackoverflow.com/questions/1608385/mvim-highlighting -long-text-works-sporadically au! WinEnter匹配OverLength /\%81v.*/ 我仍然有同樣的問題。當我創建一個新選項卡時,我看不到亮點。我正在使用mac。我看到WinEnter,並認爲可能是解決方案將只在Windows上工作。 – Roger 2009-10-23 01:41:00

+0

啊,是的,你需要使用TabEnter的標籤。 – 2009-10-23 05:18:34

0

嗯,當在MacVim 7.3(快照56)中使用新標籤時,我遇到了同樣的問題。當打開一個新窗口時突出顯示工作,但是當我打開一個新的Tab時,它不再工作。所以我增加了以下自動命令到我的.vimrc文件:

autocmd BufWinEnter,BufRead * match OverLength /\%81v.\+/ 

現在工作對我來說,在任何新窗口或標籤和緩衝。

我希望這會有所幫助!

+0

發現另一個網站處理這個問題。看起來作者發現了一個很好的解決方案,它可以在製表符中工作,(v)也可以拆分並添加鄰近突出顯示。 鏈接:https://wincent.com/blog/highlighting-overlength-lines-in-vim – mikewink 2011-01-24 20:49:13