用于Stack Overflow标记的Emacs模式
我在Emacs中使用组织模式来处理我所有的技术文档。 我想使用Emacs来准备我有堆栈溢出的问题。 有没有一个Emacs模式,甚至更好的扩展组织模式来处理堆栈溢出格式? 理想情况下,它应该包含Stack Overflow问题/注释缓冲区中使用的markdown语法支持的所有格式选项。
整合Emacs和堆栈溢出
如上所述,您可以使用降价模式 。 要将Markdown模式与Stack Overflow结合起来,您可以使用Firefox插件It's All Text ,它允许您使用外部编辑器编辑textareas。 这里是如何设置它:
-
安装降价模式 。 如果你使用Debian或Ubuntu,你可以通过发行来安装
sudo apt-get install emacs-goodies-el
或者如果你在emacs 24上(或者在emacs 23上有package.el )和Marmalade或者Melpa,你可以安装它
Mx package-install RET markdown-mode
-
安装它的所有文本 。
- 设置它的所有文本的首选项使用Emacs。 您可以将其设置为可执行文件(例如/ usr / bin / emacs)或emacsclient 。
-
将以下内容添加到您的.emacs中,为Stack Overflow和Stack Exchange textareas启用降价模式:
;; 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
被定义,如果Mx describe-variable RET as-external-alist
没有失败,它可能会覆盖你的auto-mode-alist
。 它有一个稍微不同的格式(这是一个对的列表,而不是一个单元格的列表),所以这将工作:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
-
按下textarea右下angular的蓝色编辑button,通过emacs编辑它。 蓝色编辑button显示在以下屏幕截图中:
在下面的截图中是Markdown模式下的Emacs缓冲区编辑这篇文章:
-
在Emacs中完成编辑后,将缓冲区保存到Firefox。
如果你想为其他域的这个function,你需要改变上面的正则expression式。 以下认识到堆栈交换,堆栈溢出,请求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))
在组织模式下使用降价模式
要在组织模式下使用标记模式,可以使用其function来处理源代码 。 有了它,您可以在组织模式缓冲区中包含降价块,您可以通过降价模式进行编辑。 你可以使用它如下:
-
在组织模式缓冲区中input换行符时,按Tab键 。 这将导致
#+begin_src #+end_src
-
在
#+begin_src
之后inputmarkdown
,以便拥有#+begin_src markdown #+end_src
-
在源代码块内(在
#+begin_src markdown
和#+end_src
),按Cc'以降价模式编辑源代码块。 -
以降价模式编辑源代码块。
-
按Cc'返回组织模式缓冲区并插入编辑。 这可以看起来像下面的截图所示:
有降价模式: 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=头
确保将contrib/lisp/
目录添加到load-path
。
然后(require 'org-export)
和(require 'org-md)
。
Mx org-md-export-to-markdown RET
将导出为降价。
@NN的答案也适用于Chrome也有这些变化的细节。
Chrome浏览器使用Emacs扩展编辑,与所有文本类似。 安装完成后,您可以从扩展选项页面find更多说明。
有一个带有选项的emacs自定义组edit-server
,最重要的是每个站点的主要模式更改configuration不同于@ NN的答案:
(add-to-list 'edit-server-url-major-mode-alist '("^stackoverflow" . markdown-mode))
此外,为了编辑服务器在terminalemacs工作,我不得不禁用edit-server-new-frame
选项。
用Chrome也很容易
这不是一个答案,而是使用Edit with Emacs chrome插件和Emacs Edit Serverconfiguration为使用降价模式(用于Stackoverflow)(以及我使用的其他Stackexchange站点)的解决scheme。 我在安装扩展和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消息支持
请注意,在上述设置中,我正在使用组织模式来发送Gmail邮件。 仍然需要在这里做一些工作,但是可以通过一些努力,使用org-mode来编写您的gmail消息,然后使用org-mime从您的org结构化文本中生成html。 你可以使用降价和一个降价到HTML转换。
Pandoc支持读取组织模式的子集,并可以输出降价。
换句话说,您可以继续使用组织模式编写,包括使用/写斜体,然后导出为降价。 从emacs中,你可以通过select区域来转换为降价,打击Cu MS- \,然后inputpandoc -r org -t降价,得到如下输出:
In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.
或者,您可以保存该文件并将其转换为命令行。