Vim 摺疊篇


建立時間: 2024年4月8日 08:33
更新時間: 2024年4月17日 08:56

說明

本篇將記錄有關 Vim 摺疊操作相關的內容。

設定選項

foldenable
fen

布林型 (預設開啟)
區域於視窗
{僅當編譯時加入 +folding 特性才有效}

如果關閉,所有的摺疊都被打開。此選項用於在文字顯示的完全打開摺疊和保留摺疊之間 (包括手動開啟或關閉的摺疊) 快速切換。


foldlevel
fdl

數值型 (預設: 0)
區域於視窗
{僅當編譯時加入 +folding 特性才有效}

設定摺疊等級: 高於此等級的摺疊會被關閉。

設定此選項為零關閉所有的摺疊。更高的數字關閉更少的摺疊。


foldmethod
fdm

字串 (預設: “manual”)
區域於視窗
{僅當編譯時加入 +folding 特性才有效}

目前視窗使用的摺疊方式。可能的值是:

關鍵字 方法 說明
fold-manual manual 手動建立摺疊。
fold-indent indent 相同縮進距離的行構成摺疊。
fold-expr expr foldexpr 給出每行的摺疊等級。
fold-marker marker 標誌用於指定摺疊。
fold-syntax syntax 語法高亮項目指定摺疊。
fold-diff diff 沒有改變的文字構成摺疊。

普通命令

zA

當處在一關閉的摺疊上時,循環地打開摺疊。

當處在一打開的摺疊上時,循環地關閉摺疊且設定 foldenable


zC

循環關閉 (Close) 在遊標下的所有摺疊。不在遊標下的摺疊不改變。

在可視模式下,關閉所有的在選取區域的摺疊,包括被部分選取的。

foldenable 被設定。


zD

循環刪除 (Delete) 遊標下的摺疊。在可視模式下所選區域 (部分) 涵蓋的摺疊和巢狀的摺疊都被刪除。

僅當 foldmethod 設為 manualmarker 時有效。


zE

除去 (Eliminate) 視窗裡所有的摺疊。

僅當 foldmethod 設為 manualmarker 時有效。


[count]zF

[count] 行建立摺疊。其餘同 zf


zM

關閉所有摺疊: foldlevel 設為 0。

foldenable 被設定。


zN

正常摺疊 (normal): 設定 foldenable。所有的摺疊都展現它們之前的樣子。


zO

循環打開 (Open) 遊標下的摺疊。不在遊標下的摺疊不改變。

在可視模式下,打開所有的在選取區域裡的摺疊,包括被部分選取的。


zR

打開所有的摺疊。 foldlevel 設為最高等級。


[count]za

當遊標位於一關閉的摺疊上時,打開之。當摺疊巢狀時,你可能需要使用 za 數次。當給定計數時,打開相應數量的被關閉的摺疊。

當遊標位於一打開的摺疊上時,關閉之且設定 foldenable。這僅關閉一級摺疊,因為再次使用 za 將再次打開摺疊。當給定計數時,關閉相應數量的摺疊 (這不同於重複 za 許多次)。


[count]zc

關閉 (close) 在遊標下的摺疊。當給定計數時,相應深度的摺疊被關閉。在可視模式下,所選區域裡的所有行的摺疊被關閉一級。foldenable 被設定。


zd

刪除 (delete) 在遊標下的摺疊。當遊標在被摺疊的行上,該摺疊被刪除。巢狀的摺疊上移一級。在可視模式下所選區域 (部分) 涵蓋的一層摺疊被刪除。

僅當 foldmethod 設為 manualmarker 時有效。

小心: 這很容易比你想像地要刪得多,手動摺疊不能撤銷。


zf{motion}
{Visual}zf

建立摺疊運算子。

僅當 foldmethod 設為 manualmarker 時有效。

manual 方式,新建的摺疊會關閉。同時 foldenable 會被設定。


zi

翻轉 foldenable 的值。


[count]zm

摺起更多 (more): foldlevelv:count1。如果 foldlevel 已經為 0,則不會被減少。

foldenable 被設定。

備註

上述為官方文件說明,但我測試後發現功能與 v:count1 描述不匹配,比較像常用的 [count],預設值是1。


zn

不摺疊 (none): 重置 foldenable。所有的摺疊被打開。


[count]zo

打開 (open) 在遊標下的摺疊。當給定計數時,相應深度的摺疊被打開。在可視模式下,所選區域的所有行的摺疊被打開一級。


[count]zr

減少 (reduce) 摺疊: foldlevelv:count1

備註

上述為官方文件說明,但我測試後發現功能與 v:count1 描述不匹配,比較像常用的 [count],預設值是1。

移動

[count]zj

向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。

當給定計數,重複此指令 [count] 次。

此命令可在 operator 後使用。


[count]zk

向上移動到前一摺疊的結束處。關閉的摺疊也被計入。

當給定計數,重複此指令 [count] 次。

此命令可在 operator 後使用。

觀看次數: 186
摺疊fold
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!