日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vim 折叠的用法

發布時間:2024/10/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim 折叠的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折疊方式

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

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

有6種方法來選定折疊:
1?? ?manual????????? 手工定義折疊??????? ?
2?? ?indent?????????? 更多的縮進表示更高級別的折疊??????? ?
3?? ?expr????????????? 用表達式來定義折疊??????? ?
4?? ?syntax?????????? 用語法高亮來定義折疊??????? ?
5?? ?diff??????????????? 對沒有更改的文本進行折疊??????? ?
6?? ?marker?????????? 對文中的標志折疊

注意,每一種折疊方式不兼容,如不能既用expr又用marker方式,我主要輪流使用indent和marker方式進行折疊。

使用時,用 set fdm=marker 命令來設置成marker折疊方式(fdm是foldmethod的縮寫)。
要使每次打開vim時折疊都生效,則在.vimrc文件中添加設置,如添加:set fdm=syntax,就像添加其它的初始化設置一樣。

2. 折疊命令

選取了折疊方式后,我們就可以對某些代碼實施我們需要的折疊了,由于我使用indent和marker稍微多一些,故以它們的使用為例:如果使用了indent方式,vim會自動的對大括號的中間部分進行折疊,我們可以直接使用這些現成的折疊成果。

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

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

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

01?? ?zf????? 創建折疊,比如在marker方式下:???????????????? ?
02?? ????????? zf56G,創建從當前行起到56行的代碼折疊;???????????????? ?
03?? ????????? 10zf或10zf+或zf10↓,創建從當前行起到后10行的代碼折疊。???????????????? ?
04?? ????????? 10zf-或zf10↑,創建從當前行起到之前10行的代碼折疊。???????????????? ?
05?? ????????? 在括號處zf%,創建從當前行起到對應的匹配的括號上去((),{},[],<>等)。
06?? ?
07?? ?zd????? 刪除 (delete) 在光標下的折疊。
08?? ????????? 僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
09?? ?
10?? ?zD???? 循環刪除 (Delete) 光標下的折疊,即嵌套刪除折疊。
11?? ????????? 僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
12?? ?
13?? ?zE????? 除去 (Eliminate) 窗口里“所有”的折疊。
14?? ????????? 僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。



?http://yyq123.blogspot.com/2011/09/vim-fold.html

?

當我們查看很長的文本時(比如程序代碼),可以使用:set foldenable命令來啟動折疊。首先將內容按照其結構折疊起來,查看文件的大綱,然后再針對待定的行展開折疊,顯示文本的詳細內容。

Vim將折疊等同于行來對待——你可以使用j或k命令,移動跳過包含多行的整個折疊;也可以使用y或d命令,復制或刪除某個折疊。

通常在折疊處向左或向右移動光標,或者進入插入模式,都將會自動打開折疊。我們也可以使用以下命令定義快捷鍵,使用空格鍵關閉當前打開的折疊,或者打開當前關閉的折疊。

:nnoremap <space> za

按照折疊所依據的規則,可以分為Manual(手工折疊)、Indent(縮進折疊)、Marker(標記折疊)和Syntax(語法折疊)等幾種。

Manual Fold

使用以下命令,啟用手工折疊。

:set foldmethod=manual

在可視化模式下,使用以下命令,將折疊選中的文本:

zf

通過組合使用移動命令,可以折疊指定的行。例如:使用zf70j命令,將折疊光標之后的70行;使用5zF命令,將當前行及隨后4行折疊起來;使用zf7G命令,將當前行至全文第7行折疊起來。

我們也可以使用以下命令,折疊括號(比如()、[]、{}、><等)包圍的區域:

zfa(

Vim并不會自動記憶手工折疊。但你可以使用以下命令,來保存當前的折疊狀態:

:mkview

在下次打開文檔時,使用以下命令,來載入記憶的折疊信息:

:loadview

可以使用以下命令,查看關于手工折疊的幫助信息:

:help fold-manual

Indent Fold

使用以下命令,啟用縮進折疊。所有文本將按照(選項shiftwidth 定義的)縮進層次自動折疊。

:set foldmethod=indent

使用zm命令,可以手動折疊縮進;而利用zr命令,則可以打開折疊的縮進。

使用以下命令,將可以根據指定的級別折疊縮進:

:set foldlevel=1

可以使用以下命令,查看關于縮進折疊的幫助信息:

:help fold-indent

Syntax Fold

使用以下命令,啟用語法折疊。所有文本將按照語法結構自動折疊。

:set foldmethod=syntax

可以使用以下命令,查看關于語法折疊的幫助信息:

:help fold-syntax

Marker Fold

使用以下命令,啟用標記折疊。所有文本將按照特定標記(默認為{{{和}}})自動折疊。

:set foldmethod=marker

我們可以利用標記折疊,在文本中同時體現結構和內容,并且能夠快速跳轉到文件的不同部分。

可以使用以下命令,查看關于標記折疊的幫助信息:

:help fold-marker

折疊選項

使用:set foldcolumn=W命令(W是一個0-12的整數),將在屏幕左側顯示一個折疊標識列,分別用“-”和“+”而表示打開和關閉的折疊。

使用以下命令,可以查看關于折疊的幫助信息:

:help folding

命令小結
zc關閉當前打開的折疊
zo打開當前的折疊
zm關閉所有折疊
zM關閉所有折疊及其嵌套的折疊
zr打開所有折疊
zR打開所有折疊及其嵌套的折疊
zd刪除當前折疊
zE刪除所有折疊
zj移動至下一個折疊
zk移動至上一個折疊
zn禁用折疊
zN啟用折疊
?

?

?

轉載于:https://www.cnblogs.com/xuxm2007/archive/2011/11/10/2244418.html

總結

以上是生活随笔為你收集整理的vim 折叠的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。