VIM設置代碼折疊


今天看了一下別人寫的程序的源代碼,發現是用vim寫的,代碼中有趣是用vim來折疊代碼,一開始我以為是用插件的,后來上網查了查,得出以下使用方面的技巧。

1. 折疊方式

可用選項來設定折疊方式:

可在Vim 配置文件中設置 set fdm=XXX
可直接在文件中使用注釋調用vim命令 /* vim: set fdm=XXX: */

有6種方法來選定折疊:

1
2
3
4
5
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會自動的對大括號的中間部分進行折疊,我們可以直接使用這些現成的折疊成果。

在可折疊處(大括號中間):

1
2
3
4
5
6
7
8
zc      折疊
zC     對所在范圍內所有嵌套的折疊點進行折疊
zo      展開折疊
zO     對所在范圍內所有嵌套的折疊點展開
[z       到當前打開的折疊的開始處。
]z       到當前打開的折疊的末尾處。
zj       向下移動。到達下一個折疊的開始處。關閉的折疊也被計入。
zk      向上移動到前一折疊的結束處。關閉的折疊也被計入。

當使用marker方式時,需要用標計來標識代碼的折疊,系統默認是{{{和}}},最好不要改動

我們可以使用下面的命令來創建和刪除折疊:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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" 時有效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM