防止组织模式吞入文件本地变量


12

有时使用注释(例如,必须在文件末尾)定义文件局部变量会很方便。

# Local Variables:
# fill-column: 80
# End:

但是,在组织模式缓冲区中,此注释被认为位于最后一个标题的“内部”。例如,在下面的缓冲区中,每当子树C或隐藏时,注释将被B隐藏。

* A
* B
** C

# Local Variables:
# fill-column: 80
# End:

我真的不介意这种隐藏。
真正的问题是,每当我将C子树移动到其他位置时,注释就会随身携带。 举例来说,如果我叫org-refileC,或者如果我移动它周围的org-metaup(和喜欢),该意见与树一起移动,然后他们显然将停止工作。

有没有办法告诉org-mode你停止这样做?

Answers:


11

基于对组织语法的文档的快速浏览,我认为没有内置的方法可以执行此操作。

一种可能的解决方法是添加一个顶级标题,例如

* File-local variables

在局部变量部分上方,并用标记:noexport:。当然,仅当您计划导出父文档时才需要标记。


如果您想研究实现自定义解决方案,那么查看如何org-mode使用org-list-empty-line-terminates-plain-lists变量可能会有所帮助。顾名思义,当将此变量设置为非nil值时,一个空行足以结束纯列表,因此可能有可能为子树获得类似的效果。


1
我一直在* The End(或;;;* The End类似)放在我的大纲模式缓冲区的末尾。很高兴了解:noexport:组织模式。
吉尔斯(Gilles)'SO-停止作恶'2014年

7
* COMMENT Local Variables也对我有用。
rvf0068 2014年

我建议使用COMMENT@ rvf0068建议的。这样,整个标题及其内容就被视为真实评论。
Quarky

8

我在Org文件的末尾保留了一个顶级标题* Configuration

我确保它被标记 :NOEXPORT:ARCHIVE:

这样,它就不会导出(感谢:noexport:标签),并且在全局循环时(感谢:ARCHIVE:标签)也不会显示内容。

我也把各种组织关系的配置选项(#+TITLE:#+AUTHOR#+OPTIONS等)这个标题下,使他们除非我想编辑它们不占用视觉空间。


5

我无意中避免了这个问题,因为我经常在文档中使用一些脚注。这样做C-c C-x f会插入一个脚注,并会* Footnotes在缓冲区的末尾自动创建部分。

这是一个特殊的缓冲区,并且永远不会通过org-mode导出为一个节。因此,您无需在层次结构中四处移动此部分。

即使您不使用脚注,* Footnotes在结尾处保留一个空白部分也不会造成损害,因为它永远不会导出为一个部分。

这是我会做的:

  • C-c C-x f
  • 给脚注一些文本,例如“这是一个虚拟脚注”。
  • [fn:1]从主区域(而不是“脚注”部分)删除自动创建的参考。

我建议这样做,因为我不确定org-mode是否在“脚注”部分中检测到有效脚注描述的存在,以将其视为特殊部分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.