vim摺疊(非常好的功能)

set foldmethod=indent "set default foldmethod
"zi 打開關閉摺疊
"zv 查看此行
zm 關閉摺疊
zM 關閉所有
zr 打開
zR 打開所有
zc 摺疊當前行
zo 打開當前摺疊
zd 刪除摺疊
zD 刪除所有摺疊


1. 摺疊方式
可用選項 'foldmethod' 來設定摺疊方式:set fdm=*****。set foldmethod = ****沒用
有 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" 時有效。

關於vim的代碼摺疊,小弟也是初學,僅做參考。




使用Vim的摺疊功能書寫程序代碼

折行的用處:
2 創建折行進行大綱預覽
2 移動到某處進行編輯
2 使用jzij打開文本進行編輯
2 編輯完畢後再用jzij打開折行進行移動

打開vim的摺疊功能,請在~/.vimrc 中加入:set foldmethod=marker ,使用vim默認的摺疊標籤進行處理。使用方法如下:
1、加摺疊標籤
在normal模式下,從鍵盤輸入zf並回車,您就會看到摺疊在一起的兩行標籤如下:
/*{{{*/
.....這裏輸入您 的程序代碼
/*}}}*/

2、輸入程序代碼後,將代碼摺疊起來使用如下命令(normal模式):
zc 回車

3、打開摺疊的程序有以下幾種方法
a、在摺疊的行上移動光標
b、在normal模式下輸入zo並回車

4、給一段文字加折行(normal 模式)
zfap

5、zr命令可以打開摺疊幾層的內容 zm使用內容摺疊的更多一些(多層摺疊操作時可反覆使用)。

6、嵌套了多層的折行, 也可以用zR命令一次打開所有折行

7、關閉所有的嵌套折行使用zM

8、可以用jznj命令來禁用一個折行. 然後用jzNj還可以恢復它. jzij命令則可以在兩者之間切換.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章