2009-07-06 172 views
2

我用textmate與Ruby代碼工作了一年多。最近我轉向使用mvim。當我打開mvim中的一些文件時,我得到空白塊。 Look at this picture感受它。如何擺脫vim中的空白塊

關於如何擺脫它們的任何想法?

感謝

+0

那張照片是JavaScript的!可能不需要Ruby標記... – cdleary 2009-07-06 14:21:43

+0

我應該提出了紅寶石代碼。當我打開一個紅寶石文件時,我也得到了類似的空白塊。 – Roger 2009-07-08 13:12:49

回答

9

其他人已經解釋說,這可能是搜索突出顯示的空格或製表符,或者更可能是突出顯示設計來顯示混合縮進(在python中特別有用)。我個人覺得這非常有用。

無論如何,有一些選項來解決你的高亮取決於原因:

清潔線空間的末尾(由亂提到的),使用類似:

:%s/ \+// 

也許最有用的一個:整理一下Tab鍵:

如果您使用空格縮進:

:set expandtab 
:retab 

如果您使用的標籤:

:set noexpandtab 
:retab! 

如果您使用縮進製表符和空格別處:

:set expandtab 
:retab 
:set noexpandtab 
:execute '%[email protected]^\(\{'.&ts.'}\)\[email protected]\=repeat("\t", len(submatch(0))/'.&ts.')@' 

我必須映射到命令的最後一行稱爲:RetabIndents。所有這些假設您的tabstop設置是正確的(它應根據您的圖片設置爲set ts=2)。我個人還建議保留shiftwidth等於tabstop,所以set ts=2 sw=2

可能也能夠通過一個簡單的gg=G(自動縮進整個文件)脫身。但是,這在某些語言中不起作用(特別是python,因爲任何編輯器都無法知道哪些行應該縮進到哪個級別)。

要關閉搜索爲基礎的暫時突出:

:noh 

或永久(把這個在.vimrc裏):

:set nohlsearch 

或者一個快捷鍵,當你使用它,不要爲不再需要它:

:nnoremap <ESC> :noh<CR><ESC> 

要關閉縮進突出顯示,您必須確定哪個highli ghting組被使用了,這有點複雜,並且可能最容易讀取.vimrc,但是如果您確實想要搜索它,請將光標移至其中一個突出顯示的字符並輸入(取自here):

:echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR> 

然後,您可以通過在.vim/.vimrc/_vimrc/vimfiles配置中搜索命令行上報告的名稱並註釋掉任何相關內容來清除高亮顯示組。

欲瞭解更多信息

:help :s 
:help 'expandtab' 
:help :retab 
:help :execute 
:help 'tabstop' 

:help :noh 
:help 'hlsearch' 
2

它看起來像你可能有一個存儲搜索模式,在該行的開頭突顯空間:/^ +和你的高亮顏色爲淺灰色。

要擺脫它,請嘗試搜索別的:/asdf<ENTER>

:%s/ *$// 
1

如果你想擺脫上線的末端掛空間(他們總是惹惱了地獄了我,說實話),這個命令會從給定的文件帶他們像多餘空白的高亮(見例如線214)

有什麼在你.vimrc沿線的..

highlight RedundantSpaces ctermbg=grey guibg=grey 
match  RedundantSpaces /\s\+$\| \+\ze\t/ 

..try commentin克服它,看看這是否修復了問題

我猜它是突出顯示縮進的原因是vim被配置爲期望製表符,沒有空格(反之亦然) - 再次確保你的.vimrc設置正確(比如說,使用軟標籤)

+0

只要拋出一個替代方案(儘管它不保存任何字符),也可以使用:%s/\ + $ //。 '\ +'是「一個或多個」,其中「*」是「零個或多個」。 – DrAl 2009-07-06 14:57:50

3

它的長相:

0

正如Seth所說,這些都是空格。本質上,mvim通過將它們着色爲灰色而不是黑色來顯示放置在文件中的空間。個人而言,我認爲這是一項功能,您可以使用此突出顯示方案來確定可能存在空格的位置,並且可以使用它來使您的代碼更加整潔。

您可以通過調整突出顯示選項來消除它。