美文网首页Emacsemacs每天写1000字
使用Org Mode在简书写作

使用Org Mode在简书写作

作者: 麦满屯 | 来源:发表于2015-03-12 17:02 被阅读7419次

    为什么选择Org Mode

    Org Mode是Emacs的一套语法规则。OrgMode的官方网站 是这样介绍自己的:

    Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.

    和Markdown的语法规则比较,Orgmode的语法规则更加严密,由于统一的开发团队维护,OrgMode采用了统一的语法规则,没有发展出不同“Flavor”的方言语法。因此与Markdown来比,具有更好的语法一致性。

    和Python社区中著名的ReStructuredText语法定义相比,Org mode的语法更简单轻便,具有更好的易用性。

    当然,更重要的是在Emacs中Org Mode不单单是一套基于文本格式的文档编写规范,还可以轻松的变身成为事务管理工具、项目管理工具、编程工具(文学编程——Literate programming)、高大上的研究报告编写工具(支持公式、表格、图表),甚至可以替代部分Excel的功能而成为财务计算工具。

    可以说,使用OrgMode进行写作,学习成本付出之后是有更多的回报的——性价比更高。有多少朋友就是因为OrgMode而投入到了Emacs的阵营之中啊(嗯,必须承认,我也是因为这个才离开了Vim,投入到Emacs之中的)。

    Org Mode 基本语法和使用

    使用Org Mode进行写作,所需要的使用到的语法规则非常简单,根据我的体会记录如下:

    标题

    Org Mode提供了多级标题定义的能力。具体如下:

    * 这是一级标题
    ** 这是二级标题
    *** 这是三级标题
    **** 这是四级标题
    ......
    

    根据顶行使用的“*”的数量,几级标题使用几个“*”即定义了当前的标题是几级标题。

    在Emacs中可以使用快捷键加速标题的设置

    • TAB :在标题上按下<TAB>键,可以折叠或展开,确定是否显示该标题下的所以内容(含子标题)
    • Alt - Enter : 快速建立同级标题(不用自己数星星啦)
    • Alt - 方向键(左右):快速提升或降低标题级别。该标题下的相关正文同步调整缩进
    • Alt - 方向键(上下):调整标题在文档中的位置。可连同子标题一起调整位置

    引用

    在Org Mode中引用文字非常简单,按如下方式写即可:

    #+BEGIN_QUOTE
    引用的文字
    #+END_QUOTE
    

    超链接

    Org Mode的超级链接定义如下:

    形式1:  [[http://url][描述]]
    形式2:  [[http://url]]
    

    Org Mode支持多种不同的互联网协议,具体的协议列表可以看Org Mode的手册

    图片

    本质上来说,图片也是一种超级链接。所以它的书写方式和链接很像:

    #+CAPTION: This is the caption for the next figure link 
    #+NAME:   fig:SED-HR4049
    [[link_to_image.jpg]]
    

    表格

    Org Mode的表格功能异常强大。对于写作来说,仅仅使用到了表格的快速编制的功能。要知道,在文本格式下,目前我还没有看到那个软件可以相Emacs + Org Mode 这样方便快捷的。

    • 创建表格,
      1. 输入下属内容:

        | This | is | My | First | table |
        |-
        
      2. 按下<TAB>,Emacs 自动为你创建好了表格:

        | This | is | My | First | table |
        |------+----+----+-------+-------|
        |      |    |    |       |       |
        
    • 编辑表格:
      使用<TAB>键,可以在各个格子之中灵活跳转。在到达行尾之后继续按下<tab>会创建新的行供继续输入

    说明 : 遗憾的是目前OrgMode在输出为Markdown是貌似对表格的支持不对,生成了一堆HTML代码。咋办?

    列表

    在非顶行的情况下,*、+、-、可以成为非编号列表的标记:

    * 列表项1
        + 子列表项
    * 列表项2
        1. 子列表项
    * 列表项3
    

    使用数字,则可以成为带编号的列表:

    1. 列表项1
       * 子列表项
    2. 列表项2
    

    在Emacs中使用列表项后的快捷键:

    • Alt - 方向键(左右):调整列表项的缩进
    • Alt - Enter: 在现有列表项下创建新的列表,非编号的自动创建非编号项,带编号的自动创建新的编号项并自动调整相关编号号码。

    特殊格式

    • 加粗:

      *加粗*
      
    • 下划线:

      _下划线_
      
    • 删除线

      _下划线_
      
    • 斜体

      /斜体/
      
    • 下标

      H_2O  :水的分子式
      
    • 上标

      E=mc^2
      
    • 行内代码(等宽字)

      =#include <stdio.h>= 或者 ~#include <stdio.h>~
      

    输出Org Mode到Markdown

    Org Mode完成写作之后,可以非常方便的将文档转换成其他格式,例如Markdown。看截图:

    Org Mode的文档转换Org Mode的文档转换

    从上面的截图可以看到,Org Mode可以支持输出到iCalendar/HTML/LaTex/Markdown/Plain Text等多种格式。实际上,Org Mode还可以支持更多的文档输出格式,这里就不一一介绍了。

    默认情况下,Org Mode没有打开Markdown文档的转换功能,需要将下面的小代码放到Emacs 的启动配置文件中:

    (setq org-export-backends (quote (ascii html icalendar latex md)))
    

    能输入到Markdown,那么不就可以方便的将文档发布到 简书 了?

    在每一篇文章前加入下面的控制代码, 能更好的符合 简书 的Markdown语法规范

    #+OPTIONS: toc:nil
    

    哈哈,鱼与熊掌可以兼得啊!

    哦,One More Thing,发动文档转化的快捷键是按顺序按下的组合键(Ctrl-c Ctrl-e)。:)

    相关文章

      网友评论

      • 田园牧歌w:也可以安装pandoc来实现org mode至markdown的转换。本人就是文档用org mode来存储,并推送至git仓库,导出一份markdown用于发布
        YAOHE:github的readme支持org mode了,不用再转成mardown了。

        https://github.com/stephen0921/gen_wave
        麦满屯:@田园牧歌w 不错,不错,pandoc也是神器:smile:
      • 余岁记:在使用org 逐渐摸索中,很好,很强大。
      • Lei_1917:删除线的表示还是

        _下划线_

        应该是 +删除线+

      • district10:我觉得讲了 BEGIN_SRC 却不讲用 <sTAB 可以补全,是不对的。 :unamused:
      • 3jx1zz:(eval-after-load "org"
        '(require 'ox-md nil t))
        也能输出markdown
      • 麦满屯:@manue1 看看我写的文章靠近结尾的部分,里面提到了激活MD转换选项的方法。:)

      • b6d222ec627c:然我的的没卵子用 找不到转Md的选项啊? 求解
      • f31c1c101b94:@麦满屯 对org-mode和emacs我也用了好几年了,我现在用的就是24.4, 以前还折腾24.5,可能是我org-mode的稀奇古怪的设置用的有点多的缘故把,不过我还是不建议org-mode来导出markdown,直接弄成html丢到静态博客就好..
      • 麦满屯:@f31c1c101b94 从我的使用感觉来说,还不错:这篇文章就是使用org mode 转换过来的。唯一不满意的是对表格的转换支持不好。对于图片链接的支持有点小瑕疵,不过还能接受。

        PS:我用的是Emacs 24.4自带的org mode 。看看是不是由于org mode版本的问题带来的不满意?
      • f31c1c101b94:确实可以转换,可是转换效果并不好,经常出现格式错误
      • gBvqoG: @麦满屯 好。一定要尝试下。
      • 麦满屯:@大象 Emacs 配合Org Mode提供的文档书写功能非常强大,有机会试试呗。(尤其在自适应调整表格宽度方面,可以说是一绝)。PS:要想体会英文状态下的表格自适应调整功能,一个好的中英文字体配置是必须的。要不表格的书写体验会大大折扣(不过还是比其他工具做的好)。
      • gBvqoG: @麦满屯 哈哈,楼主写的不错。赞美。
      • 麦满屯:@大象 哈哈,Emacs会在烈火中永生!
      • gBvqoG:烧死哪些Emacs党…… 哈哈 )

      本文标题:使用Org Mode在简书写作

      本文链接:https://www.haomeiwen.com/subject/kidbxttx.html