📄 usr_28.cnx
字号:
*usr_28.txt* For Vim version 6.3。 最近更新:2004年6月 VIM 用户手册 - Bram Moolenaar 著 (译者: Chimin Yen http://vimcdoc.sf.net ) 折叠结构化的文本可以分为许多节。而一节之内可以再分小节。折叠允许你将一节显示为一行,并为那一节提供一个综述。本章将解释各种实现折叠的方法。|28.1| 什么是折叠?|28.2| 手动折叠|28.3| 对折叠的操作|28.4| 存储和恢复折叠|28.5| 依缩进折叠|28.6| 依标记折叠|28.7| 依语法折叠|28.8| 依表达式折叠|28.9| 折叠未被改动的行|28.10| 使用哪种折叠办法呢? 下一章: |usr_29.txt| 在代码间移动 前一章: |usr_27.txt| 查找命令及模式 目录: |usr_toc.txt|==============================================================================*28.1* 什么是折叠?折叠用于把缓冲内某一范围内的文本行显示为屏幕上的一行。就像一张纸,要它短些,可以把它折叠起来: +------------------------+ | 行 1 | | 行 2 | | 行 3 | |_______________________ | \ \ \________________________\ / 被折叠的行 / /________________________/ | 行 12 | | 行 13 | | 行 14 | +------------------------+那些文本仍然在缓冲内而没有改变。受到折叠影响的只是文本行显示的方式。折叠的好处是,通过把多行的一节折叠成带有折叠提示的一行,会使你更好地了解对文本的宏观结构。==============================================================================*28.2* 手动折叠试一试: 把光标置于某一段落内,并键入: > zfap你将会看到该段落被一行加亮的文本所代替。你已经创建了一个折叠了。 |zf| 是个操作符,而 |ap| 是一个文本对象。你可以将 |zf| 操作符跟任何一个移动命令联用,为所经之处的文本创建一个折叠。 |zf| 也能在可视模式下使用。若要再阅读那些文本,可以键入以下命令以打开该折叠: > zo你还可以用以下命令再关闭该折叠: > zc所有的折叠命令都以 'z' 开头。展开你的想像力,这个字母看起来就像一张折叠起来的纸的侧面。而 "z" 后面可用的字母,由于采用了帮助记忆方法选择,很容易记得住: zf F-old creation (创建折叠) zo O-pen a fold (打开折叠) zc C-lose a fold (关闭折叠)折叠可以嵌套: 一个含有折叠的文本区可以被再次折叠。例如,你可以折叠本节内每一段落,然后折叠本章内所有的节。试试看。你将注意到,打开全章的折叠,会将节的折叠还原得跟以前一样,有些打开,而有些关闭。假定你已经创建了若干折叠,而现在需要阅览全部文本。你可以移到每个折叠处,并键入 "zo"。若要做得更快,可以用这个命令: > zr这将减少 (R-educe) 折叠。相反的操作是: > zm这将折叠更多 (M-ore)。你 可以重复 "zr" 和 "zm" 来打开和关闭若干层嵌套的折叠。如果你有一个嵌套了好几层深的折叠,你可以用这个命令把它们全部打开: > zR这将减少折叠直至一个也不剩。而用下面这个命令你可以关闭所有的折叠: > zM这将增加折叠,直至所有的折叠都关闭了。你可以用 |zn| 命令快速禁止折叠功能。然后 |zN| 恢复原来的折叠。|zi| 切换于两者之间。以下步骤是一种实用的操作方法:- 创建折叠,以获取你的文件的总揽- 移动到你要操作的地方- 执行 |zi| 以便一边看着文本,一边编辑- 再执行 |zi| 以便移动到另一处在参考手册中有更多关于手动折叠的内容: |fold-manual|==============================================================================*28.3* 对折叠的操作当一些折叠关闭时,移动命令,如 "j" 和 "k" 会轻松的移过折叠,就像它是个简单的空行一样。这允许你快速移过折叠了的文本。你可以向对待单行一样复制,删除和粘贴折叠。当你要改动某个程序里的函数的先后次序时,这是很实用的。首先,为 'foldmethod' 选择一个正确的折叠方法,以保证每个折叠包含了整个函数 (或稍缺一点儿)。然后,用 "dd" 命令删除该函数,移动光标,并用 "p"命令粘贴。如果函数中某些行在折叠之上,或之下,你可以利用可视模式下的选择方法:- 把光标置于被移文本的首行- 击 "V" 键开始可视模式- 把光标置于被移文本的末行- 击 "d" 键删除被选中的行。- 把光标移到新位置,并击 "p" 键把文本粘贴在那儿。有时候,查看或记住一个折叠在哪儿,挺不容易的。更别说用 |zo| 命令来打开了。要查看那些已定义的折叠: > :set foldcolumn=4这个命令将在窗口左边显示一小栏来标识各个折叠。一个 "+" 表示某个关闭的折叠。一个 "-" 表示每个打开的折叠的开头,而 "|" 则表示该折叠内其余的行。你可以在折叠栏内用鼠标点击 "+" ,以打开一个折叠。点击 "-" ,或在它之下的某个 "|" ,将关闭一个打开的折叠。打开所有光标行上的折叠用 |zO|。关闭所有光标行上的折叠用 |zC|。删除一个光标行上的折叠用 |zd|。删除所有光标行上的折叠用 |zD|。当你进入插入模式后,光标行上的折叠永远不会关闭。那是要让你看见你打的什么字!当光标前后跳转至折叠,或在折叠上左右移动时,折叠就会自动打开。例如,零命令 "0" 打开光标下的折叠 (假设 'foldopen' 包含 "hor",即默认设置)。'foldopen' 选项可以修改,为指定的某一类命令打开折叠。如果你要光标遇到折叠,折叠就打开,那么可以这么做: > :set foldopen=all警告: 你将因此无法移到一个关闭的折叠上。你也许只想临时用一用这个命令,然后把它设回默认值: > :set foldopen&你可以在移开折叠时自动关闭折叠: > :set foldclose=all这个命令将重新把折叠水平 'foldlevel' 作用到所有的不含光标的折叠。你必须自己试试看你会不会喜欢这各设置。用 |zm| 折叠更多的层次,并用 |zr| 折叠更少的层次(减少折叠的层次)。折叠是限于本地窗口的。这允许你为同一缓冲打开两个窗口,一个带折叠,而另一个不带折叠。或者,一个让所有的折叠关闭,而另一个则让所有的折叠打开。==============================================================================*28.4* 存储和恢复折叠当你放弃一个文件时 (开始编辑另一个),其折叠状态就丢失了。如果你稍后再回来编辑同一文件,那么,所有手动打开和关闭的折叠,全都恢复到它们的默认状态了。如果折叠是用手动方式创建的,则所有的折叠都消失了! 为了保存折叠,可以用 |:mkview| 命令: > :mkview这将储存那些影响文件视的设定及其它内容。你可以利用 'viewoptions' 选项修改储存的范围。当你稍后回到同一文件时,你可以重新载入这个视: > :loadview你可以为一个文件储存多至十个视。例如,把当前设置储存为第三个视,并载入第二个视: > :mkview 3 :loadview 2Note 当你插入或删除一些文本行时,视可能变得无效。还得检查 'viewdir' 选项,它指定视图文件储存在哪儿。你可能时不时需要删除旧的视文件。==============================================================================*28.5* 依缩进折叠
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -