emacs - 代码折叠

来源:百度文库 编辑:神马文学网 时间:2024/05/01 03:16:46
Contents [HideShow]
1 outline-mode
1.1 概念
1.2 快捷键
2 folding
3 ouline-minor-mode
4 org-mode中的代码折叠
5 hs-minor-mode

TOPoutline-mode

首先,在*scratch* buffer中键入下面一段文字:

     * Food
This is the body,
which says something about the topic of food.

** Delicious Food
This is the body of the second-level header.

** Distasteful Food
This could have
a body too, with
several lines.

*** Dormitory Food

* Shelter
Another first-level topic with its header line.

然后将该buffer的模式转为outline-mode:

(defun myfunc ())

import java.util.*

public static void main(String test){
try{
}
}

下面我们来实验一些操作,但在这个之前需要解释一些概念:

TOP概念

大纲模式将buffer中的行区别为:

  1. 正文(Body):除标题行外的其他行
  2. 标题(Heading):以一个或者若干星号加一个空格开始的行

注意: 可以定制变量outline-regexp来识别标题行

标题和正文行的组合:

  1. 记录(Entry): 标题和其下所有的正文行组成一个记录或者条目
  2. 子树(Subtree): 标题和其下的所有子标题以及它们的正文行组成一棵子树

注意:
1. 记录的直接正文只能在记录的开始部份
2. 如果记录的正文或者正文和所有子树被隐藏,则该标题行的末尾会出现省略号(...)
3. 如果记录仅仅子树被隐藏,那么在记录正文后面会出现省略号(...), 如果该记录没有正文,则效果同上

TOP快捷键

outline-mode使用如下快捷键和命令:

移动命令:

Key Binding Function Comments C-c C-n outline-next-visible-heading move by visible headings C-c C-p outline-previous-visible-heading
C-c C-f outline-forward-same-level similar but skip subheadings C-c C-b outline-backward-same-level
C-c C-u outline-up-heading move from subheading to heading

全局隐藏:

Key Binding Function Comments C-c C-t hide-body make all text invisible (not headings). Recursively, Body C-c C-a show-body make everything in buffer visible. Recursively, Body C-c C-q hide-sublevels make only the first N levels of headers visible.(C-u, M-(number) to pass the level n, Recursively, Heading C-c C-o hide-other show current entry, and all level parent headings, hide

位置相关的隐藏

(如果是在标题行,则指当前标题,否则是指正文行所属的直接上级标题, 影响局限于该标题下的子树)

Key Binding Function Comments C-c C-d hide-subtree Recursively, Subtree(Body, Heading) C-c C-s show-subtree Recursively, Subtree(Body, Heading) C-c TAB show-children Direct, Heading C-c C-k show-branches Recursively, Heading C-c C-l hide-leaves Recursively, Body C-c C-c hide-entry Direct, Body C-c C-e show-entry Direct, Body

The remaining commands are used when point is on a heading line.They apply to some of the body or subheadings of that heading.C-c C-d hide-subtree make body and subheadings invisible.C-c C-s show-subtree make body and subheadings visible.C-c TAB show-children make direct subheadings visible.

No effect on body, or subheadings 2 or more levels down.With arg N, affects subheadings N levels down.C-c C-c make immediately following body invisible.C-c C-e make it visible.C-c C-l make body under heading and under its subheadings invisible.The subheadings remain visible.C-c C-k make all subheadings at all levels visible.

TOPfolding

TOPouline-minor-mode

TOPorg-mode中的代码折叠

TOPhs-minor-mode

test col1 col2 text text2