在VIM下,摺疊文本一般情況下我是使用Visual模式選中一些文本,然後用zf命令把他摺疊出來,但是經常使用visual模式,感覺不是很方便,不過經常使用感覺不是很方便,找到協助時.發現可以使用命令模式:開始行號,結束行號folder命令就可以摺疊了,
同樣多行縮排可以使用:110,120>來將110行到120行縮排
複製:110,120 yank 複製到預設寄存器
或者:110,120 yank x 複製到x寄存器
1. 摺疊方式
可用選項 'foldmethod' 來設定摺疊方式:set fdm=*****。
有 6 種方法來選定摺疊:
manual 手工定義摺疊
indent 更多的縮排表示更進階別的摺疊
expr 用運算式來定義摺疊
syntax 用文法高亮來定義摺疊
diff 對沒有更改的文本進行摺疊
marker 對文中的標誌摺疊
注意,每一種摺疊方式不相容,如不能即用expr又用marker方式,我主要輪流使用indent和marker方式進行摺疊。
使用時,用:set fdm=marker 命令來設定成marker摺疊方式(fdm是foldmethod的縮寫)。
要使每次開啟vim時摺疊都生效,則在.vimrc檔案中添加設定,如添加:set fdm=syntax,就像添加其它的初始化設定一樣。
2. 摺疊命令
選取了摺疊方式後,我們就可以對某些代碼實施我們需要的摺疊了,由於我使用indent和marker稍微多一些,故以它們的使用為例:
如果使用了indent方式,vim會自動的對大括弧的中間部分進行摺疊,我們可以直接使用這些現成的摺疊成果。
在可摺疊處(大括弧中間):
zc 摺疊
zC 對所在範圍內所有嵌套的摺疊點進行摺疊
zo 展開摺疊
zO 對所在範圍內所有嵌套的摺疊點展開
[z 到當前開啟的摺疊的開始處。
]z 到當前開啟的摺疊的末尾處。
zj 向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。
zk 向上移動到前一摺疊的結束處。關閉的摺疊也被計入。
當使用marker方式時,需要用標計來標識代碼的摺疊,系統預設是{{{和}}},最好不要改動之:)
我們可以使用下面的命令來建立和刪除摺疊:
zf 建立摺疊,比如在marker方式下:
zf56G,建立從當前行起到56行的程式碼摺疊功能;
10zf或10zf+或zf10↓,建立從當前行起到後10行的程式碼摺疊功能。
10zf-或zf10↑,建立從當前行起到之前10行的程式碼摺疊功能。
在括弧處zf%,建立從當前行起到對應的匹配的括弧上去((),{},[],<>等)。
zd 刪除 (delete) 在游標下的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
zD 迴圈刪除 (Delete) 游標下的摺疊,即嵌套刪除摺疊。
僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
zE 除去 (Eliminate) 視窗裡“所有”的摺疊。
僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。