如何在emacs org-mode中折叠特定级别以下的所有块?

8

我经常需要查看某个特定级别(实际上是更深层次)的信息。有没有一种方法可以展开块到某个特定级别,并隐藏其余部分?例如:

* name
Joe
** home number
111-111-1111
*** hobby
fishing
*** likes
books
** work number
222-222-2222

如果第三级及以下块很少使用,则我希望将它们折叠如下:

* name
Joe
** home number
111-11-1111
*** hobby...
*** likes...
** work number
222-22-2222

1
也许那些不经常使用或不想被看到的项目应该列为抽屉中的属性? - cm2
1
这很接近我想要的,但是:(1)使用起来有点冗长,(2)它不遵循块层次结构和行为(因此无法折叠/展开到某个级别)。最后,(3)折叠抽屉只显示为:PROPERTIES:。这不好,它没有给出任何关于里面内容的指示。一眼看不出“爱好”存储在那里。 - user443854
块和节是不同的实体。这里有一个关于的答案:https://emacs.stackexchange.com/q/30504/13477 - Flint
2个回答

12

这里有一个名为hide-sublevels的功能。具体需要使用的层级数通常取决于主模式(major mode),我通常使用C-1 M-x hide-sublevels(也称为C-1 C-c C-q),但对于某些主模式,我会使用更深层次的层级。


1
仅在较小程度上有用时,可以使用"hide-sublevels"将块折叠起来,同时隐藏较低级别的块和更高级别块内容。例如,在上面的例子中,执行"C-3 M-x hide-sublevels"后,电话号码将不可见。 - user443854

3
如果您将光标放在缓冲区的开头,简单的<TAB>将循环显示整个子树的可见性。
或者,使用前缀参数调用它将设置全局子树可见性为该参数指定的深度(C-u <TAB>)。例如; C-u 3 <TAB>将显示树的前三级并隐藏其余所有内容。
另请参阅http://orgmode.org/manual/Visibility-cycling.html#Visibility-cycling

1
我确实费心阅读了手册。但这并不起作用。你能试一下我给出的例子吗?更正:我的意思是它不能做我想做的事情(请参见我的问题)。 - user443854

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接