用于Stack Overflow标记的Emacs模式

我在Emacs中使用组织模式来处理我所有的技术文档。 我想使用Emacs来准备我有堆栈溢出的问题。 有没有一个Emacs模式,甚至更好的扩展组织模式来处理堆栈溢出格式? 理想情况下,它应该包含Stack Overflow问题/注释缓冲区中使用的markdown语法支持的所有格式选项。

整合Emacs和堆栈溢出

如上所述,您可以使用降价模式 。 要将Markdown模式与Stack Overflow结合起来,您可以使用Firefox插件It's All Text ,它允许您使用外部编辑器编辑textareas。 这里是如何设置它:

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

    sudo apt-get install emacs-goodies-el 

    或者如果你在emacs 24上(或者在emacs 23上有package.el )和Marmalade或者Melpa,你可以安装它

     Mx package-install RET markdown-mode 
  2. 安装它的所有文本 。

  3. 设置它的所有文本的首选项使用Emacs。 您可以将其设置为可执行文件(例如/ usr / bin / emacs)或emacsclient 。
  4. 将以下内容添加到您的.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)) 
  5. 按下textarea右下angular的蓝色编辑button,通过emacs编辑它。 蓝色编辑button显示在以下屏幕截图中:

    这个textarea右下角的蓝色编辑按钮的屏幕截图

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

    在Markdown模式下编辑Emacs缓存的屏幕截图

  6. 在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来处理源代码 。 有了它,您可以在组织模式缓冲区中包含降价块,您可以通过降价模式进行编辑。 你可以使用它如下:

  1. 在组织模式缓冲区中input换行符时,按Tab键 。 这将导致

     #+begin_src #+end_src 
  2. #+begin_src之后inputmarkdown ,以便拥有

     #+begin_src markdown #+end_src 
  3. 在源代码块内(在#+begin_src markdown#+end_src ),按Cc'以降价模式编辑源代码块。

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

  5. Cc'返回组织模式缓冲区并插入编辑。 这可以看起来像下面的截图所示:

    一个组织模式的缓冲区编辑这个职位的降价代码块

有降价模式: 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)

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. 

或者,您可以保存该文件并将其转换为命令行。