1. 程式人生 > >Linux——VIM中程式碼的摺疊和開啟

Linux——VIM中程式碼的摺疊和開啟

文章轉自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/
在檢視程式碼的時候,如果程式碼十分冗長,尤其是c/c++系列的時候,
程式碼結構比較讓人難以理清,主要是各種註釋、括號的匹配問題,
雖然可以用%來檢視匹配的另外一半符號在哪裡,但是如果這一對符號之間的程式碼超過了一頁,甚至好幾頁的話,那麼也是比較難以理解的。
於是可以使用這個vim所提供的摺疊功能來簡化這些分析。
我使用的vim是rh9自帶的版本。

摺疊的方式:

vim 提供 6中摺疊方式

方式 作用
manual 手工定義摺疊
indent 更多的縮排表示更高級別的摺疊
expr 用表示式來定義摺疊
syntax 用語法高亮來定義摺疊
diff 對沒有更改的文字進行摺疊
marker 對文中的標誌摺疊

可用選項 ‘foldmethod’ 來設定摺疊方式:set fdm=*
注意,每一種摺疊方式不相容,即:你不能用expr又用marker方式。
目前我一般使用的都是indent 比較多。
使用時,用:**set fdm=indent 命令來設定成marker摺疊方式。
在.vimrc檔案中新增設定,可以使得每次開啟vi 都啟動摺疊方式。如新增:set fdm=syntax。**

摺疊開啟與摺合

選取了摺疊方式後,我們就可以對某些程式碼實施我們需要的摺疊了。
如果使用了indent方式,vim會自動的對大括號的中間部分進行摺疊,我們可以直接使用這些現成的摺疊成果。
indent 對應的摺疊程式碼有:

方式 功能
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” 時有效。

相關推薦

Linux——VIM程式碼摺疊開啟

文章轉自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/ 在檢視程式碼的時候,如果程式碼十分冗長,尤其是c/c++系列的時候, 程式碼結構比較讓人難以理清,主要是各

vim 程式碼摺疊開啟

程式碼結構比較讓人難以理清,主要是各種註釋、括號的匹配問題,雖然可以用%來檢視匹配的另外一半符號在哪裡,但是如果這一對符號之間的程式碼超過了一頁,甚至好幾頁的話,那麼也是比較難以理解的。於是可以使用這個vim所提供的摺疊功能來簡化這些分析。我使用的vim是rh9自帶的版本。摺疊的方式:vim 提供 6中摺疊方

Linux Vim自動補全Python插件:Pydiction

python 自動補全 vimPydiction 可以是我們使用Tab鍵自動補全Python代碼在Vim,是一款非常不錯的插件。Pydiction不需要安裝,所有沒有任何依賴包問題,Pydiction主要包含三個文件。python_pydiction.vim -- Vim plugin that autoc

linux連sql server 2012 開啟PHP sqlserver擴展

linux sqlserver php連接sql server 2012數據庫http://www.freetds.org/userguide/choosingtdsprotocol.htm下載安裝 ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.2

【轉】對Linux核心程序上下文中斷上下文的理解

轉自:http://www.embedu.org/Column/Column240.htm 核心空間和使用者空間是作業系統理論的基礎之一,即核心功能模組執行在核心空間,而應用程式執行在使用者空間。現代的CPU都具有不同的操作模式,代表不同的級別,不同的級別具有不同的功能,在較低的級別中將禁止某些

linux系統docker服務普通服務對外訪問埠不通的問題

linux系統中docker服務和普通服務對外訪問埠不通的問題   前一段時間,在一個新的centos 7.4 伺服器上執行專案,共有四個專案,因為特殊原因,兩個是通過docker 執行,另外兩個是通過nginx和tomcat 執行。   當執行起來以後,發現docker 執行的那兩

vim E212:無法開啟並寫入檔案 的解決辦法

在編寫配置檔案時,常常忘記切換到root使用者,導致檔案編輯完畢,敲入:wq 退出儲存時,出現 E212:無法開啟並寫入檔案 的錯誤提示。這是由於在該目錄下當前使用者沒有寫許可權導致。 解決辦法如下: 【1】 將檔案儲存到使用者目錄下,再改變所有者,然後移動

關於在vim的查詢替換

1,查詢 在normal模式下按下/即可進入查詢模式,輸入要查詢的字串並按下回車。 Vim會跳轉到第一個匹配。按下n查詢下一個,按下N查詢上一個。 Vim查詢支援正則表示式,例如/vim$匹配行尾的"vim"。 需要查詢特殊字元需要轉義,例如/vim\$匹配"vim$"。 2,大小寫敏感查詢 在查詢

webpack實戰專案程式碼打包優化總結

網上關於webpack的優化的已經很多了,只是都比較零散,結合實戰專案自己做個總結 webpack 優化,實際專案中主要做到了一下幾點: 1、 檔案壓縮(css, js, html, 字型檔案, 圖片檔案) 2、 babel-loader 避免不必要的轉義 3、 babel-轉義結果進行快取

Linux系統安裝python3pip及相關配置

linux中安裝python3 前言 一般linux系統都預設安裝了python2,儘量不要管它,使用python3執行python指令碼就好,因為linux系統費裡有很多程式依賴目前的python2環境,比如ubuntu裡的軟體中心和yum!!!!! 不要動現有的python2

關於在vim的查詢替換(轉載)

轉載出處:https://www.cnblogs.com/huxinga/p/7942194.html   1,查詢 在normal模式下按下/即可進入查詢模式,輸入要查詢的字串並按下回車。 Vim會跳轉到第一個匹配。按下n查詢下一個,按下N查詢上一個。 Vim查詢支援正則

Linux系統KafKa安裝使用方法 java客戶端連線kafka

kafka linux單機安裝1 下載並安裝kafka# tar zxvf kafka_2.12-1.1.0tgz  # mv kafka_2.12-1.1.0 /usr/local/kafka # cd /usr/local/kafka2 啟動服務執行kafka需要使用Zo

Linux命令:rsynccp之間的區別

rsync:只拷貝那些更新的檔案; cp -u:也可以實現類似效果; 兩者都基本可以滿足備份的需求; 只是一般情況下,用rsync做這類備份之類的事情,更多見; 在備份的操作中,拷貝,過期檔案的刪除是經常要做的事情。 拷貝也有本機拷貝,拷貝到別的伺服器等。常用

詳解Linux系統軟連線硬連結的區別與聯絡

Linux 系統中有軟連線和硬連結兩種特殊的“檔案”。 其中軟連線實際上可以看作是Windows中的快捷方式,而硬連結則可以看作類似於一個檔案的 “指標”(也不完全相同) 。 建立方法都很簡單: 1. 軟連線(符號連結) ln -s   source  target  2

VIM的儲存退出

命令 簡單說明 :w 儲存編輯後的檔案內容,但不退出vim編輯器。這個命令的作用是把記憶體緩衝區中的資料寫到啟動vim時指定的檔案中。 :w! 強制寫檔案,即強制覆蓋原有檔案。如果原有檔案的訪問許可權不允許寫入檔案,例如,原有的檔案為只讀檔案,則可使用這個命令強制寫入。但是

Linux 下檔案描述符開啟檔案之間的關係

2014-07-06 wcdj 檔案描述符和開啟的檔案之間似乎是一一對應的關係,但實際可以多個檔案描述符指向同一開啟檔案,這些檔案描述符可能在相同或不同的程序中開啟。核心維護的三個資料結構: (1) 程序級的檔案描述符表 (2) 系統級的開啟檔案表 (3) 檔案系統的i-

vim程式碼摺疊

手動摺疊: zfap 你將會看到該段落被一行高亮的文字所代替。你已經建立了一個摺疊了。|zf|是一個操作符,而|ap|是一個文字物件。你可以將|zf| 操作符跟任何一個移動命令聯用,為所經 之處的文字建立一個摺疊。|zf| 也能在可視模式下使用 說明:ap是用以選擇一個段落。這裡a的用法如下所示:   " "

Linux shell 的陣列關聯陣列

寫在前面的話 我用開始廢柴了,這個又是寫給我自己看的了。 普通陣列 1.陣列的定義 在Linux shell中定義一個普通的陣列很簡單,首先我們先給陣列命名(當然要符合所有的命名規則咯)。定義陣列的一般格式就是: array_name=(element1 eleme

mysql在linux系統的安裝使用

1.首先我們需要提前下載mysql的linux版本,這裡我下載的MySQL-5.5.55-1.linux2.6.i386.rpm-bundle.tar 2.然後我們在linux系統中的root使用者下,cd  /usr/local,新建一個mysql資料夾:mkdir my

linux shell,unlinkrm命令有什麼區別

strace 跑 rm 與 unlink,結果有不同地方. 1. strace rm 1.txt 片段access("1.txt", W_OK)                   = 0 unlinkat(AT_FDCWD, "1.txt", 0)          =