96

我在 Emacs 中使用 Org-mode 来处理我所有的技术文档。我想使用 Emacs 来准备 Stack Overflow 的问题。有没有一个 Emacs 模式,或者更好的是,一个 Org-mode 的扩展来处理 Stack Overflow 格式?理想情况下,它应该包括 Stack Overflow 问题/评论缓冲区中使用的 markdown 语法支持的所有格式选项。

4

5 回答 5

144

将 Emacs 与堆栈溢出集成

如前所述,您可以使用markdown-mode。要将 markdown-mode 与 Stack Overflow 集成,您可以使用 Firefox 插件It's All Text,它允许您使用外部编辑器编辑文本区域。以下是如何设置它:

  1. 安装降价模式。如果您使用 Debian 或 Ubuntu,您可以通过发出

    sudo apt-get install emacs-goodies-el
    

    或者,如果您使用的是 emacs 24(或在 emacs 23 上有package.el )和MarmaladeMelpa,您可以使用

    M-x package-install RET markdown-mode
    
  2. 安装It's All Text

  3. 将 It's All Text 的首选项设置为使用 Emacs。您可以将其设置为可执行文件(例如 /usr/bin/emacs)或emacsclient
  4. 将以下内容添加到您的 .emacs 以启用 Stack Overflow 和 Stack Exchange 文本区域的降价模式:

    ;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
    (add-to-list 'auto-mode-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))
    

    或者,如果as-external-alist已定义——如果M-x describe-variable RET as-external-alist没有失败——它可能会覆盖你的auto-mode-alist. 它的格式略有不同(它是对列表而不是 cons 单元格列表),因此可以使用:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
    
  5. 按 textarea 右下方的蓝色编辑按钮以通过 emacs 对其进行编辑。蓝色的编辑按钮显示在以下屏幕截图中:

    此文本区域右下方蓝色编辑按钮的屏幕截图

    在下面的屏幕截图中是一个在 Markdown 模式下编辑这篇文章的 Emacs 缓冲区:

    Markdown 模式下的 Emacs 缓冲区的屏幕截图编辑这篇文章

  6. 在 Emacs 中完成编辑后,保存缓冲区以将其发送到 Firefox。

如果您希望其他域具有此功能,则需要更改上面的正则表达式。以下识别 Stack Exchange、Stack Overflow、Ask Ubuntu 和超级用户:

;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
(add-to-list 'auto-mode-alist '("\\(stack\\(exchange\\|overflow\\)\\|superuser\\|askubuntu\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

在 Org-mode 中使用 markdown-mode

要将 markdow-mode 与 Org-mode 一起使用,您可以使用其功能来处理源代码。有了它,您可以在 Org-mode 缓冲区中包含 markdown 块,您可以通过 markdown-mode 对其进行编辑。您可以按如下方式使用它:

  1. 在 Org 模式缓冲区中输入<s换行符并按Tab。这将导致

    #+begin_src 
    
    #+end_src
    
  2. 输入markdown之后#+begin_src,这样你就有了

    #+begin_src markdown
    
    #+end_src
    
  3. 在源块内(在#+begin_src markdown和之间#+end_src)按下C-c '以使用降价模式编辑源块。

  4. 在降价模式下编辑源代码块。

  5. C-c '返回 Org 模式缓冲区并插入编辑。这可能类似于以下屏幕截图所示:

    一个组织模式缓冲区为这篇文章编辑一段降价代码

于 2012-04-30T15:49:02.480 回答
14

有降价模式: http: //jblev​​ins.org/projects/markdown-mode/

有关一些自定义,请参阅http://emacswiki.org/emacs/MarkdownMode

这里有一个用于新导出引擎的降价后端:http: //orgmode.org/w/ ?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb=头

确保将contrib/lisp/目录添加到您的load-path.

然后(require 'org-export)(require 'org-md)

M-x org-md-export-to-markdown RET将导出到降价。

于 2012-04-30T13:05:03.303 回答
4

@NN 的答案也适用于 Chrome,这些更改在细节上有所变化。

Chrome 有Edit with Emacs扩展,类似于 It's all text。安装后,您将在扩展选项页面中找到更多说明。

有一个edit-server带有选项的 emacs 自定义组,最重要的是,每个站点的主要模式更改的配置与@NN 的答案不同:

(add-to-list 'edit-server-url-major-mode-alist
             '("^stackoverflow" . markdown-mode))

此外,为了使编辑服务器在终端 emacs 中工作,我必须禁用该edit-server-new-frame选项。

于 2013-09-12T10:38:40.047 回答
1

Pandoc支持读取 org-mode 的子集,并且可以输出 markdown。

也就是说,你可以继续用org-mode写,包括写斜体/like this/,然后导出到markdown。在 emacs 中,您可以通过选择区域、点击 Cu MS-\ 并输入 pandoc -r org -t markdown 来转换为 markdown,得到如下输出:

In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.

或者,您可以保存文件并在命令行中进行转换。

于 2017-06-01T13:16:43.013 回答
0

使用 Chrome 也很容易

与使用 Emacs chrome 插件编辑和配置为 对 Stackoverflow(以及我使用的其他 Stackexchange 站点) 使用markdown-mode的 Emacs Edit Server对我的解决方案进行测试相比,这不是一个答案 。安装扩展程序和MELPA软件包后我所要做的一切都已设置

(setq edit-server-url-major-mode-alist
             '(("mail.google.com" . org-mode)
               ("stackoverflow\\.com" . markdown-mode)
               (".*\\.stackexchange\\.com" . markdown-mode)
               ("github\\.com" . markdown-mode)))

Gmail 邮件支持

请注意,在上述设置中,我将org-mode用于 gmail 消息。仍然需要在这里做一些工作,但可以通过一点努力,使用 org-mode 起草您的 gmail 消息,然后使用org-mime从您的 org 结构化文本生成 html。您可以只使用降价和降价到 html 的转换。

于 2017-02-26T04:43:23.193 回答