【问题标题】:How do I tell org-mode to disable headings in verbatim text?如何告诉 org-mode 禁用逐字文本中的标题?
【发布时间】:2018-12-27 08:55:08
【问题描述】:

如何使 org 模式不将以星号开头的行解释为标题?我的组织模式文档中有一些逐字文本。有些行以星号开头。 Org 模式将这些行解释为标题。我不想要那个。

这是带有一些上下文的文本:

* 20160721 Headline for July 21, 2016 I created a git repository for rfc-tools. It's in ~/Documents/rfc-tools. Renamed grep-rfc-index.sh to search-rfc-index.sh because it searches. That it uses grep is irrelevant. Wrote a README.md for the project. Here it is: #+BEGIN_SRC text ----- BEGIN QUOTED TEXT ----- This is the README.md for rfc-tools, a collection of programs for processing IETF RFCs. * fetch-rfcs-by-title.sh downloads into the current directory the RFCs whose titles contain the string given on the command line. Uses an rfc-index file in the current directory. Prefers the PDF version of RFCs but will obtain the text version if the PDF is not available. * fetch-sip-rfcs.sh downloads RFCs that contain "Session Initiation" in their titles into the current directory. * search-rfc-index.sh searches an rfc-index file in the current directory for the string given on the command line. The string can contain spaces. * join-titles.awk turns the contents of an rfc-index file into a series of long lines. Each line begins with the RFC number, then a space, then the rest of the entry from the rfc-index. ----- END QUOTED TEXT ----- #+END_SRC

我希望“----- BEGIN QUOTED TEXT -----”和“-- END QUOTED TEXT -----”之间的行是纯文本并从属于标题“20160721” 2016 年 7 月 21 日的标题”。 Org 模式将以星号开头的所有行解释为顶级标题。

顺便说一句,逐字文本是 Markdown。我希望这没关系。

【问题讨论】:

  • 这个问题的一个更好的标题是“如何告诉 org-mode 禁用逐字文本中的标题”?

标签: emacs org-mode


【解决方案1】:

为我工作:

    #+BEGIN_SRC markdown

【讨论】:

  • 为您的答案添加更多细节
  • 这是答案的三分之一。首先,安装并加载 markdown-mode.el。其次,在 markdown 代码的每一行前添加一个空格。现在您可以使用 C-c ' 在文本上调用降价模式。使用另一个 C-c ' 退出降价模式。 markdown 源代码块中的所有内容都针对 org-mode 正确格式化。
  • 空格前置技巧也适用于 #+BEGIN_SRC 文本 ... #+END_SRC
【解决方案2】:

用这样的逗号转义 *,*

可能如果你输入 C-c ' 进入一个特殊的编辑然后退出,org 会为你做。

【讨论】:

  • 这肯定会关闭“*”的特殊含义,但它也会更改我想要逐字包含的文本。
  • 我尝试了 C-c ' 并且 emacs 响应,“这里没有特殊的环境可以编辑”。
【解决方案3】:

尝试将您的文本包装在各种特殊的块标签中。例如,您可以尝试将文本放在这些标签中:

#+BEGIN_SRC text

...

#+END_SRC 

这是我的 Emacs 上格式化结果的屏幕截图:

如果这不能满足您的需求,您可以尝试:

 #+BEGIN_EXAMPLE

 ...

 #+END_EXAMPLE

这将在没有标记的情况下以等宽字体呈现标签内的所有内容。

如果这也不起作用,您可以尝试here 列出的其他类型的标签之一。

【讨论】:

  • 我都试过了。 BEGIN_SRC、BEGIN_EXAMPLE、BEGIN_QUOTE 和 BEGIN_VERSE 都不会关闭我引用的文本中前导星号的特殊性质。
  • 抱歉没用。这很奇怪。这可能是与您的.emacs 中其他一些与组织相关的设置的交互。当您使用 -Q 选项启动 Emacs 时,您可能会尝试查看它是否有效。查看我的屏幕截图,了解它对我的作用。
  • 在标题“20160721 2016 年 7 月 21 日标题”上按 TAB 会发生什么?当我按照上面的描述进行操作时,org-mode 会隐藏该行和“* fetch-rfcs-by-title.sh 将 RFC 下载到当前目录”之间的文本。我想通过“#+END_SRC”隐藏所有文字
  • 换句话说,org-mode 将“* fetch-rfcs-by-title.sh 下载到当前目录的 RFC”作为标题。如果我在该行按 TAB,org-mode 会隐藏所有以星号开头的行,“* fetch-sip-rfcs.sh 下载包含“会话启动”的 RFC”
  • 是的,直到你提到它,我才意识到这一点,但我得到了同样的行为。到目前为止,我发现的唯一方法是确保这些项目符号的缩进比您的标题更深,但它们仍然表现“特殊”,它们只是嵌套在另一个标题下。
【解决方案4】:

我认为答案是“你不能那样做”。我找到了一种使用抽屉解决问题的方法。 org-mode manual 解释说,抽屉是放置您不想一直看到的文本的地方。

StackExchange 用户有一个关于 getting a custom org drawer to open/close。似乎对于旧版本的 org-mode,您必须告诉 org-mode 您的抽屉名称。例如。如果你有一个名为“COMMANDS”的抽屉

:COMMANDS:
ls
cat
grep
:END:

您必须使用 +DRAWERS 关键字告诉 org-mode 抽屉的名称:

#+DRAWERS COMMAND

并重新启动组织模式。

【讨论】:

  • 虽然这可行,但更好的答案是在混淆 org-mode 的文本的每一行前添加一个空格,然后用 #+BEGIN_SRC text ... #+END_SRC 围绕文本。就我而言,对于降价文本,我使用了 #+BEGIN_SRC markdown ... #+END_SRC。一旦你在每一行都有前导空格,org-mode 就不会混淆你的文本,你可以用 C-c ' 编辑它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多