5
當我在Vim中查看包含詳細註釋的長代碼文件時,我希望能夠加載具有註釋摺疊但其他所有內容展開的文件。當前摺疊配置我有我的.vimrc
是:當在Vim中打開文件時僅摺疊註釋
set foldmethod=syntax
set nofoldenable
這樣,當我要開始做褶皺,我就可以開始執行z
命令。但是有沒有辦法只摺疊(塊)評論?
當我在Vim中查看包含詳細註釋的長代碼文件時,我希望能夠加載具有註釋摺疊但其他所有內容展開的文件。當前摺疊配置我有我的.vimrc
是:當在Vim中打開文件時僅摺疊註釋
set foldmethod=syntax
set nofoldenable
這樣,當我要開始做褶皺,我就可以開始執行z
命令。但是有沒有辦法只摺疊(塊)評論?
您可以執行全局命令關閉所有的塊註釋褶皺:
:g/^\/\*/foldc
這將體現在與/*
(公共塊註釋指示符)開頭的行執行:help foldclose
。請注意在這種情況下/
和*
需要轉義。如果使用不同的分隔符(例如:g#^/\*#foldc
),則不需要轉義/
。如果你想自動發生這種情況,你可以將它添加到自動命令中。例如:
set fdm=syntax fen
augroup closeCommentFolds
au!
au FileType javascript %foldo | g/^\/\*/foldc
au FileType ruby %foldo | g/^=begin/foldc
augroup end
注意,在這些例子中的正則表達式的^
字符指定的/*
和比賽是在該行的開頭。如果你想匹配,如果行的開頭和匹配之間有空格,則使用^\s*
而不是^
。 %foldo
將打開所有摺疊,以便設置foldenable
,但它不會摺疊所有內容(只是在本例中爲註釋)。
這是一個偉大的ansewr。我學到了很多。但是,它並沒有開箱即用。我必須做......設置fen | %foldopen | %g ^/\ * @調用SilentFold()',其中'SilentFold'是我定義的函數,用於抑制使用'/*...*/'樣式的行的摺疊錯誤,即使它不是塊註釋(是的,我反對,但我沒有寫代碼)並使用'普通zc'。此外,如果您發現我所做的改進了帖子,請隨時從中抽取。 (它太冗長了,我也很想知道爲什麼。)+1謝謝! – 2012-08-15 19:07:02
其實我的回答也很奇怪......它是將不是評論的東西,即「{...}」塊摺疊起來。 – 2012-08-15 19:11:47
@Kazark好吧,對於混亂感到抱歉。我相信我的更新答案現在可以正常工作。讓我知道。 – Conner 2012-08-15 19:47:57