2012-05-18 75 views
4

崇高(文本編輯器)可以顯示一行空白的開始,因爲一個特殊的字符,如「--->」Can Vim能否將BOL空白顯示爲特殊字符?

function foo() { 
--->if (true) { 
--->--->alert(true); 
--->} 
} 

這在某些情況下有益的。所以我想讓Vim做同樣的事情。我試過:set list,但是這個選項只顯示TAB,因爲^I,它不顯示空白。有沒有什麼辦法可以像Sublime那樣做?

+0

您是否試過':set invlist'? – alex

+0

@alex'invlist'與'list'完全相同:顯示'EOL'&'TAB',它不顯示空格。 –

+0

我使用'set listchars = trail:?,nbsp:?'顯示?當有一個不間斷的空間時,以及?當有一個尾隨的時候。這不能回答你的問題,但它可能有用。 ;) –

回答

2

您可以突出顯示BOL空白區域,這不會像您要求的那樣插入特殊字符,但它至少可以通過爲其指定特定顏色來突出顯示。

:highlight BOLWhitespace guibg=red ctermbg=red 
:match BOLWhitespace /^\s\+/ 

第一行會創建一個名爲BOLWhitespace高亮組,並給它的顏色紅色(可能要使用一些更微妙的)。第二行將在行首開始時爲所有空白區域激活此突出顯示。

也許這是一個可接受的妥協?

+0

是的,我知道Vim可以突出顯示BOLWhitespace,插件縮進指南可以使用突出顯示進行更多操作。但是我想顯示一些特殊字符,比如'set list' –

0

可以使用隱藏功能有效地模擬此類箭頭。

function! EnableIndentArrows() 
    exe 'syntax match NonText ''\%(^\%(\{'.&sw.'}\)*'. 
    \ ' \{0,'.(&sw-2).'}\)\@<= '' transparent conceal cchar=┈' 
    exe 'syntax match NonText ''\%(^\%(\{'.&sw.'}\)*'. 
    \ ' \{'.(&sw-1).'}\)\@<= '' transparent conceal cchar=>' 
    set conceallevel=2 concealcursor=nc 
endfunction