我是vim的新手用戶,我一直無法在互聯網上找到如何摺疊功能,我已經想出瞭如何摺疊C中的參數列表與zfa}和zfa)。但我不知道如何摺疊評論部分。我怎麼做?崩潰的評論和vim/gvim中的所有功能
第二個問題但相關,有沒有辦法同時摺疊文件中的所有函數/參數列表/註釋?
我是vim的新手用戶,我一直無法在互聯網上找到如何摺疊功能,我已經想出瞭如何摺疊C中的參數列表與zfa}和zfa)。但我不知道如何摺疊評論部分。我怎麼做?崩潰的評論和vim/gvim中的所有功能
第二個問題但相關,有沒有辦法同時摺疊文件中的所有函數/參數列表/註釋?
您所指的功能稱爲「摺疊」(請參閱:help usr_28
)。 zf命令用於手動創建摺疊,僅在foldmethod
選項設置爲「標記」或「手動」時才使用。在您給出的示例中,您正在創建由a}
和a)
文本對象指定的區域的摺疊(請參閱:help usr_4.8
)。
對於C,您可以setlocal foldmethod=syntax
,摺疊區域將由語法規則自動確定。這隻能通過將設置置於~/.vim/ftplugin/c.vim
或將以下autocmd放置在~/.vimrc
中來完成。
autocmd FileType c setlocal foldmethod=syntax
N.B.這兩者都要求啓用文件類型檢測(filetype on
),並且ftplugin解決方案要求啓用文件類型插件(filetype plugin on
)。後者是前者的超集,因此您不需要~/.vimrc
中的兩個命令。
作爲用於打開/關閉所有的摺疊在當前的緩衝區,這些都是Ž- [R分別中號命令和ž。
假設您已經設置了摺疊區域的方式,請將foldlevel
設置爲所需的級別。
添加以下設置到〜/ .gvimrc裏:
"folding settings
set foldmethod=indent "fold based on indent
set foldnestmax=10 "deepest fold is 10 levels
set nofoldenable "dont fold by default
set foldlevel=1 "this is just what i use
然後您可以切換與ZA摺疊。您可以用zM摺疊所有內容,並用zR展開所有內容。 zm和zr可以用來使這些摺疊恰到好處。如果您遇到困難,請務必記住「help:folding」中的全能幫助文件。
需要一件事。語法工作很好,但不讓我定義zfa),以便我可以摺疊參數列表。我有一些非常長的列表,我不需要看看它們是什麼,它會自動崩潰,但它不會讓我在語法模式下做到這一點,並且我有太多的函數可以使定義模式可用。 – 2009-11-16 20:17:48
不幸的是,您不能同時使用多個foldmethods,手動摺疊創建僅適用於標記/手動方法。您可以將syntax/c.vim從系統範圍的目錄複製到〜/ .vim/syntax/c.vim,並將「fold」關鍵字添加到cParen語法定義的末尾。不利的一面是,無論何時創建新的主要Vim發行版,您都需要這樣做,這樣您就不會丟失任何上游進行的更改。它還要求您將開頭「{」放在單獨的行中,否則其摺疊將覆蓋參數列表摺疊。 – jamessan 2009-11-16 20:28:56