zoukankan      html  css  js  c++  java
  • org-mode(文档编辑)

    org-mode简单介绍

    按照官方的说法,Org is a mode for keeping notes, maintaining TODO lists, and doing project planning with a fast and effective plain-text system,就是说,它可以用来做笔记,管理待办事项,以及做项目计划。当然,作为outline-mode的派生模式,而outline-mode又作为text-mode的派生模式,Org-mode首先是一种基于文档编辑的模式,而本文将介绍它强大的文档编辑能力。

    大纲

    作为outline-mode的派生模式,Org-mode天然支持大纲视图,以大纲的模式去管理文件内容。

    层次

    在多少层就用多少颗*,需要注意的是*要顶格,而且与标题内容之间用空格分开。如:

    * 第一层1
    ** 第二层11
    *** 第三层111
    * 第一层2
    

    操作

    为了能尽快地使用org,这里只介绍最基本的操作,包括后面的功能也都是介绍最基本的(当然也是因为我本人就是个初学者)。

    1. 使用M-Ret来插入一个同层次的标题
    2. 折叠/显示,最少你应该知道可以用Tab来切换当前大纲的状态,或者你还可以知道用S-Tab来切换整个文档的大纲状态。
    3. 所有移动都有一个前缀操作C-c,emacs默认操作中的字符间移动对应同层标题移动,行间移动对应标题移动,同时你还应该知道用C-u来返回上一层标题。

    列表

    作为补充,在同一个子标题下,你可以用"1."来将内容划分的更加详细,将光标移动到"1."上,用Shift加方向左右键可以切换标识符号。

    链接

    对一些符合链接规则的内容,org为自动将其视为链接,包括文件、网页、邮箱等多种链接,为了方便,本文将注脚也看成是一种链接。

    注脚

    从小就喜闻乐见的一种方式是这样:

    [1]
    

    还可以这样:

    [fn:name]
    

    定义了注脚之后可以用C-c C-c在正文位置和注脚位置之间切换,而当注脚还没有定义时,还可以用它来定义。

    内部

    可以用下面方式来定义一个内部链接:

    [[link][description]]
    

    内部链接的跳转方式类似C-s。

    外部

    外部链接通常不用固定格式来定义,直接按相应链接的形式即可。比如:

    http://www.google.com.hk
    file:/path/to/filename
    

    最后,无论是内部还是外部的链接,都可以用”C-c C-o“或者单击鼠标左键来到达链接位置。

    表格

    貌似很多emacs操作视频里都有操作表格的部分,应该说这个功能确实是蛮炫的。

    创建

    1. 你可以通过C-c |的命令来新建一个表格,需要注意的是,当它提示你建立多大的表格时,中间的字符是字母x而不是数学的乘号。
    2. 以|开头(行首),各列项间用|隔开,第一行输完后一个Tab,你就什么都明白了。这种方法创建的表格没有水平分割线,你可以同过C-c -命令来添加。

    移动和调整

    1. 使用Tab移动一个区域或用Ret来移动一整行,在表尾执行该操作会新建一行。
    2. 如果某项内容较多,你可以在空白项内输入<数字>来限制其所在列的长度,超出长度的内容会被隐藏,你可以把鼠标移到该项来查看被隐藏内容。
    3. 在表格任意位置使用C-c C-c来对齐表格

    speedsheet

    表格往往会和一些计算联系在一起,比如一个班级的成绩单往往要在某列输入总分平均分之类的,就像下面这个表,要在第3列输入前两列的平均数。

    |  a |  b | avg |
    |----+----+-----|
    | 83 | 73 |     |
    | 66 | 77 |     |
    | 77 | 99 |     |
    

    那么在第二行的第三列输入=($1+$2)/2,然后按下C-u C-c C-c。

    |  a |  b |  avg |
    |----+----+------|
    | 83 | 73 |   78 |
    | 66 | 77 | 71.5 |
    | 77 | 99 |   88 |
    #+TBLFM: $3=($1+$2)/2
    

    如果只要对某一行求平均数,在=前加:即可。

    标签

    当内容较为复杂时,用大纲(即树状分类)的模式来进行管理往往会比较麻烦,这个时候就往往要用到标签。标签的使用不用大纲那么严肃而呆板,应该说它是一种比较自由而活泼的管理信息的方式。比如说唐僧,以大纲的的方式来管理归类的话,可以定义以下几层标题:

    * 中国
    ** 和尚
    *** 唐僧
    

    以下就以唐僧为例来说明标签的使用。

    定义

    1. 如果说大纲里的标题是一个名字(并不一定是人)的话,那么标签就是这个东西某一方面一个显著的特点,就像一个东西有好多特点一样,一个标题可以拥有多个标签。比如说,我们可以给中国加上两个标签(以:开头和结束,标签之间以:隔开,M-Tab用来对齐)。
      * 中国                 :帅气:勤劳:
      **  和尚
      ***  唐僧
      
    2. 除了手动输入外,也可以在标题上用C-c C-c来定义。
    3. 在Org-mode里,子标题自动继承父标题的标签。比如这样:
      * 中国                :帅气:勤劳:
      ** 和尚                :光头:
      *** 唐僧                   :废话多:
      

      那么唐僧就拥有帅气,勤劳,光头,废话多4个标签。

    预定义

    1. 在文件头部定义,就像这样:
        #+TAGS: { 命令行(c) 图形(g) } 编辑(e)
      

      其中#+顶格,括号内字母代表快捷键,花括号为标签组,只能选一个。

    2. 在配置文件中定义,就像这样:
      (setq org-tag-alist 
        '((:group1 . nil)
          ("命令行" . ?c) ("图形" . ?g) 
        ("编辑" . ?e)))
      

    使用

    建立了标签当然不是为了好玩,而是为了更方便地管理文档内容,可以用C-c 来查找具有某个标签的所有标题。或许有人认为直接找标题会更方便,比如说直接找唐僧,但事实上很多时候你只知道你要找一个帅气,勤劳,光头,废话多的东西,可以是并不知道唐僧是这样的,这种情况下标签的作用就很明显了。

    元数据

    其实之前已经看到过了,还记得表格的speedsheet么,输入计算表达式后在表格后面会出现#+TBLFM: $3=($1+$2)/2,这个就是元数据。

    文档元数据

    一般放在文档开头部分,比如本文使用的:

    #+title: org-mode(文档编辑)
    #+author: hookbrother
    #+email: hookbrother@gmail.com
    #+date: <2013-08-27>
    

    内容元数据

    主要用于一些特殊格式的内容。

    1. 代码(如果没有高亮显示,请安装htmlize插件)
      #+begin_src c :eval no-export  ;;导出时不执行
      #include <stdio.h>
      void main(){
        printf("hello!");
        return;
      }
      #+end_src
      
    2. 例子(单行的以:开头)
          #+begin_example
          多行的
          例子
          #+end_example
      

    导出

    当文档编辑完之后,你可以根据需要使用C-c C-e命令导成其他格式。需要注意的是,如果遇到can't find libary org提示,试试:

    sudo apt-get install emacs24-el
    

    发布

    因为目前为止还没有在github上发表博客的打算,所以这里我用的是open source的插件,可以到这里下载

  • 相关阅读:
    4.定时器
    LSTM分类层的理解
    对机器学习中end-to-end learning(端到端学习)的理解
    对非极大值限制(NMS)的理解
    ROI pooling
    softmax的理解
    长尾理论(long tail )的理解
    对双线性插值的理解
    RPN的理解
    卷积神经网络(CNN)和Faster-RCNN的理解
  • 原文地址:https://www.cnblogs.com/hookbrother/p/3398277.html
Copyright © 2011-2022 走看看