如何在 vim 上顯示身分等級而不是製表符標記?

如何在 vim 上顯示身分等級而不是製表符標記?

我的.vimrc顯示垂直線,這樣我就可以輕鬆地追蹤識別塊,就像幾乎每個文字編輯器/IDE 一樣。

if(x == 1){
|   if( y == 1){
|   |   y();
|   }
}

有什麼辦法可以讓它更有用並顯示身份等級嗎?我不會將其誤認為是實際程式碼,因為我已經使用了極低對比度的顏色。

if(x == 1){
1   if( y == 1){
1   2   y();
1   }
}

這對於我在工作中必須重構的一些瘋狂方法中找到我的嵌套級別非常有幫助。我目前的解決方法包括設定一個水平窗口,這樣當區塊開始變得瘋狂時我可以離開頂部窗口,而我可以在底部窗口導航以更改程式碼。

PS:我已經有彩虹括號插件了。但那些已經不再有幫助了。

答案1

我沒有足夠的代表來評論您的問題,因此我將發布一個答案,如果我能找到更好的答案,我會更新它。這是我的「答案」:

這不完全是您所要求的,但是您嘗試過“:set list”嗎? (“:set nolist”可停用)。如果它們是硬製表符(真正的製表符,例如^I),則每個製表符都會顯示^I。這樣,您就可以直觀地查看和計算任何給定行的選項卡數量。這就是為什麼我說這不完全是您正在尋找的內容,例如您在問題中提供/建議的格式。

另外,FWIW,我也習慣在處理不太複雜的程式碼(例如數百個 LOC,最多幾個檔案)時使用。一旦我開始處理具有數千到數百萬個 LOC 和數百個文件的項目,我就開始使用括號對齊(在我看來,與您所追求的想法有點相同)。當您還習慣在 vim 中的括號之間切換時,這確實很有幫助。我還使用水平視窗分割,因為有些程式碼有時太長(要求其自己的功能等)。
if(statement){
// code here...
}


if ( (complexStatement) )
{
// code here...
}

%

華泰

答案2

好吧,它並沒有完全達到您想要的效果,因為這是不可能的。但你可以用我的動態標誌用於顯示裝訂線列中的縮排等級的插件。設定:let g:Signs_IndentationLevel=1並運行:Signs

請參閱幫助:h DynamicSigns.txt以了解您可以用它做什麼。

相關內容