我在Emacs中使用Org-mode来处理我的所有技术文档。我想用Emacs来准备Stack Overflow的问题。是否有Emacs模式,甚至更好的是Org-mode的扩展来处理Stack Overflow格式?理想情况下,它应该包括Stack Overflow问题/注释缓冲区中使用的markdown语法支持的所有格式选项。
答案 0 :(得分:141)
As mentioned您可以使用markdown-mode。要将markdown-mode与Stack Overflow集成,您可以使用Firefox插件It's All Text,它允许您使用外部编辑器编辑textareas。以下是设置方法:
安装markdown-mode。如果您使用Debian或Ubuntu,可以通过发布
来安装它sudo apt-get install emacs-goodies-el
或者如果你使用的是emacs 24(或者在emacs 23上有package.el)和Marmalade或Melpa,你可以使用
进行安装M-x package-install RET markdown-mode
将以下内容添加到.emacs中以启用Stack Overflow和Stack Exchange textareas的markdown-mode:
;; 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))
按下textarea右下角的蓝色编辑按钮,通过emacs进行编辑。蓝色编辑按钮显示在以下屏幕截图中:
在下面的屏幕截图中是一个Emacs缓冲区,在markdown-mode编辑这篇文章:
在Emacs中完成编辑后,保存缓冲区以将其发送到Firefox。
如果您希望其他域使用此功能,则需要更改上面的正则表达式。以下内容识别Stack Exchange,Stack Overflow,Ask Ubuntu和Super User:
;; 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))
要在组织模式下使用markdow-mode,您可以使用its feature for working with source code。有了它,您可以在组织模式缓冲区中包含可以通过降价模式编辑的降价块。您可以按如下方式使用它:
在组织模式缓冲区中,在换行符上输入<s
并按 Tab 。这将导致
#+begin_src
#+end_src
在markdown
后输入#+begin_src
,以便
#+begin_src markdown
#+end_src
当在源块内(#+begin_src markdown
和#+end_src
之间)时,按 Cc'以使用降价模式编辑源块。
以降价模式编辑源块。
按 C-c'返回组织模式缓冲区并插入编辑。这可能类似于以下屏幕截图所示:
答案 1 :(得分:13)
有降价模式:http://jblevins.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=HEAD
确保将contrib/lisp/
目录添加到load-path
。
然后(require 'org-export)
和(require 'org-md)
。
M-x org-md-export-to-markdown RET
将导出为降价。
答案 2 :(得分:4)
@ N.N的答案也适用于Chrome,详情也有这些变化。
Chrome的扩展名为Edit with Emacs,与其所有文字类似。安装后,您可以从扩展选项页面找到更多说明。
有一个带有选项的emacs自定义组edit-server
,最重要的是,每个网站的主要模式更改配置与@N.N的答案不同:
(add-to-list 'edit-server-url-major-mode-alist
'("^stackoverflow" . markdown-mode))
此外,要使编辑服务器在终端emacs中工作,我必须禁用edit-server-new-frame
选项。
答案 3 :(得分:0)
这不是对我使用的解决方案的测试的答案 该 Edit with Emacs铬 插件和Emacs Edit Server 配置为使用markdown-mode 对于Stackoverflow(以及我使用的其他Stackexchange站点)。所有我必须做的事情 安装了扩展和 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)))
请注意,在上面的设置中,我使用 org-mode 来表示gmail消息。仍然需要 在这里做一点工作,但只需要一点努力就可以起草 你的gmail消息使用org-mode然后使用 org-mime 从中生成html 您的组织结构文本。你可以使用markdown和markh来降低HTML 转换。
答案 4 :(得分:0)
Pandoc支持读取组织模式的子集并可以输出降价。
换句话说,你可以继续以org-mode编写,包括写/斜体/ /,然后导出到markdown。 从emacs中你可以通过选择区域转换为markdown,点击C-u M-S- \并输入pandoc -r org -t markdown,得到如下输出:
In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.
或者,您可以保存文件并在命令行进行转换。