2011-05-12 71 views
6

我注意到摺疊文字可以顯示有用的信息。他們通常顯示類似更改摺疊文字

+-- 5 lines: <div id="header-inner">--------------------------------------------

是否有可能改變這些行的文本?我注意到foldexpr有可能完成重新設計褶皺。
例如
+ <div id="header-inner"> : "possible comment from line above" : row 27 : length 5

謝謝

+1

:幫助foldtext應該讓你開始 – 2011-05-12 19:38:44

回答

10

有幾件事情,我不從你的問題理解,比如它使用foldmethod你正在使用,或什麼的「行」的數字表示,但這裏有一個自定義應該大致做摺疊文本的功能,你想要什麼:

function! MyFoldText() 
    let nl = v:foldend - v:foldstart + 1 
    let comment = substitute(getline(v:foldstart),"^ *","",1) 
    let linetext = substitute(getline(v:foldstart+1),"^ *","",1) 
    let txt = '+ ' . linetext . ' : "' . comment . '" : length ' . nl 
    return txt 
endfunction 
set foldtext=MyFoldText() 

說明:

  1. 找到行數被包含在摺疊中。
  2. 從第一個摺疊行之前的行中獲取「註釋」(並刪除前導空格)。
  3. 從摺疊的第一行獲取文本(並刪除前導空格)。
  4. 將上述信息以適當的格式組裝到返回的foldtext中。

希望這會有所幫助。它應該很容易根據您的需求量身定製。

+0

謝謝。我發現vim非常強大:-)我正在使用foldmethod = expr,但是您的解決方案適用於每種摺疊方法?行應參考摺疊開始的行號。我將嘗試v:lnum – xralf 2011-05-13 08:11:46

+1

v:lnum不起作用,但v:foldstart顯示正確的行號。只有一點細節,即字符串的結尾(------------------------------------- -------)不可能刪除。 – xralf 2011-05-13 08:22:21

+1

是的,foldtext適用於每種摺疊方法(如果我正在從正確的行讀取'comment',我只是不是,但如果它工作,那就沒有問題了!)。你可以通過'set fillchars = fold:\'(注意尾部空格)去除尾部----。 – 2011-05-13 08:42:55

0

您還可以檢查Steve Losh’s bitbucket repo page about vim的摺疊配置。

它有非常美麗的外觀,這也是非常有組織的!

要看看它是什麼樣子,你可能會在這youtuebe video ckeck它。

+0

不錯的視頻!我想我已經找到了一種新的方式來組織我的Incresing大vimrc文件。 – 2017-03-14 06:52:26