用Emacs编辑Markdown

Emacs默认并没有Markdown模式。网络的智慧是无穷的,果然,我找到了Emacs Markdown Mode。接下来便是本文的主题,我只是一个蹩脚的翻译。

安装

markdown-mode.el放到Emacs的load-path中,并在.emacs配置文件中添加如下内容,以支持后缀名为.markdown.md的文件:

1
2
3
4
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.markdown\\'". markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'". markdown-mode))

至此,大功告成。效果如下:

效果图

使用

现在用Emacs写博文真是一种享受。会Emacs的人会发现,下面提到的快捷键大多和Emacs的基础快捷键相关,我只列出常用的:

在Emacs中预览效果 C-c C-c

使用该功能的前提是系统中有将Markdown文本转化为HTML的Markdown 命令。配置方法请看这里

  1. C-c C-c m转化为HTML,在另一个buffer中预览HTML文件,个人觉得没太大意义
  2. C-c C-c p转化为HTML,在浏览器中预览
  3. C-c C-c e转化为HTML,保存为文件
  4. C-c C-c v转化为HTML,保存为文件,并在浏览器中预览

插入超链接 C-c C-a

C-c C-a l插入[]()形式的链接,C-c C-a L插入[LinkText][Label]形式的链接。在这种形式下,如果光标附近有文字或是Active Region,会自动被选择当作LinkText。后一种形式会提示你在Minibuffer中输入LinkTextLinkLabel和可选的LinkTitle

插入图片 C-a C-i

C-c C-i iC-c C-i I,两者的区别和超链接的类似。

插入样式 C-a C-s

  1. C-c C-s e插入斜体字(e表示emphasis)
  2. C-c C-s s插入粗体字(s表示strong)
  3. C-c C-s c插入代码框

插入标题 C-c C-t

  1. 我最常用的C-c C-t n,n从1-6,表示各级标题。比如C-c C-t 3得到### Heading ###
  2. C-c C-t h根据前面的标题自动选择标题级别。C-c C-t H类似,区别在于它尝试得到带下划线的标题

一些快捷键

  1. C-c -插入水平线
  2. C-c C-o如果该点是一个链接(Hyperlink),就会在浏览器中打开它的URL,如果该点是维基百科链接(wikilink),就会在另一个buffer中打开
  3. C-c C-j如果该点所在的位置是一个Hyperlink,按下此快捷键就会在Link TextLink URL之间跳转。同样也适用于脚注(footnote)等其它类似目标
  4. C-c C--C-c C-=升级(Promotion)和降级(Demotion)。例如,在### ###附近按下C-c C--会使它变成## ##,按下C-c C-=会使它变成#### ####。前者让Heading升级,后者让Heading降级
  5. C-c C-k将该点的目标kill掉,并将其内容送到kill ring中,适用于以下目标:inline code, headings, horizonal rules, links, images, email address等
  6. C-c C-n,C-c C-p,C-c C-f,C-c C-b,C-c C-u在Heading之间移动
  7. M-{,M-},C-M-a,C-M-e,C-M-h快速跳转,和Emacs基础快捷键操作一样