使用组织模式折叠/展开.emacs文件的部分

使用组织模式折叠/展开.emacs文件的部分,emacs,elisp,org-mode,Emacs,Elisp,Org Mode,我最近学习了emacs组织模式的基础知识,忍不住想象将折叠/扩展概念应用于源文件的某些部分。我希望能够将.emacs文件划分为子部分,并在加载时仅显示标题,有点类似于以下内容: ; ERC config... ; DIRED config... ; MISC config... 当然,一旦展开,其中的每一行都将是多行代码的标题,如下所示: ; ERC config (defun start-irc () (interactive) (erc-tls :server "irc.fre

我最近学习了emacs组织模式的基础知识,忍不住想象将折叠/扩展概念应用于源文件的某些部分。我希望能够将.emacs文件划分为子部分,并在加载时仅显示标题,有点类似于以下内容:

; ERC config...

; DIRED config...

; MISC config...
当然,一旦展开,其中的每一行都将是多行代码的标题,如下所示:

; ERC config
(defun start-irc ()
  (interactive)
  (erc-tls :server "irc.freenode.net" :port 6697 :nick "foo"))

; DIRED config...

; MISC config...
那么这可能吗?我如何使用emacs 24.2实现这样的功能


谢谢

就像
组织模式
一样好,它确实需要一些结构,我不相信可以在
.emacs
文件中以您想要的方式维护这些结构

工作正常的是
折叠模式
。在上查看相关信息,但基本上您所做的是围绕要折叠的代码块设置注释,如下所示:

;;{{{ some folder of some kind

(a few lines)
(of lisp)
(this "code" is just filler)

;;}}}


;;{{{ a different folder

(some more elisp code)

;;}}}
当它被折叠时,它看起来像:

;;{{{ some folder of some kind...

;;{{{ a different folder...
使您能够准确地实现这一点(即在组织模式下管理init文件)。具体见:

就我自己而言,我在init文件中使用了
大纲次要模式
,用于模糊相似的目的。各种内容被视为大纲标题,但您可以将
outline regexp
设置为文件局部变量以限制该行为,然后使用
outline toggle children
(您可以绑定到某个方便的键)切换打开和关闭内容。“切换”命令可在节中的任何位置工作,而不仅仅是在标题上

我用
;;开始默认情况下要折叠的标题*并以以下内容结束我的初始文件:

;;;局部变量:
;;; 大纲regexp:“;;”
;;; 评估:(progn(大纲次要模式1)(while(向前搜索“^;;;;\\\*”nil t)(大纲切换子项)))
;;; 完:
在您的实例中,您可以使用:

;;;局部变量:
;;; 大纲regexp:;”
;;; 评估:(程序(轮廓次要模式1)(隐藏主体))
;;; 完:

实际上与Trey的建议非常相似,尽管我希望通过折叠可以轻松地嵌套我没有考虑的部分(没有必要这么做)。我觉得大纲方法使文件看起来稍微干净一些,如果这对你来说很重要的话。

你也可以看看新的包,它与大纲次要模式一起工作,使它看起来更像组织模式。在(e)中,lisp文件将分号序列解释为标题,因此所有遵循注释标准约定的现有代码都可以折叠,而无需任何更改。许多组织模式,如键绑定(如折叠/展开标题的选项卡等)也可以工作。

这正是我想要的。进口部分有点棘手,但我知道了。