• Emacs org-mode 2 文档结构


    Emacs org-mode 2 文档结构

    1 文档结构

     

    1.1 章节/标题

     

    1.1.1 编写规则

    org-mode用一个字符 * 标识章节,一个 * 代表一级标题,两个 * 代表两级标题,以此类推。最多6颗星,也就是最多6级。

    书写格式如下:

    * 一级标题
    ** 二级标题
    * 另一个一级标题
    ** 另一个二级标题
    *** 三级标题
    

    注意, * 后有空格。不同的级别显示的颜色不一样。

    1.1.2 标题的展开与折叠

    标题与正文在当前buffer中显示样式,分为四个级别:overview,content,showall,showeverything。

    overview
    只显示一级标题
    content
    展开所有层级标题,但是不显示正文内容。
    showall
    展开所有子标题及正文内容。
    showeverything
    显示所有内容
    1. 手动展开与折叠

      在官方的表述中, 标题的展开与折叠称为 visible circling. 看名字可以理解为循环,如下:

      通过tab(org-cycle) 键实现如下循环: ,-> FOLDED -> CHILDREN -> SUBTREE –. '------------------------------–—'

      或者通过S-tab(org-global-cycle) 实现如下循环: ,-> OVERVIEW -> CONTENTS -> SHOW ALL –. '---------------------------------–—'

      通过类似的一些快捷键,我们可以控制当前buffer 页面显示哪些内容,比如只显示一级标题,显示二级标题。 下面是常用快捷键:

      Table 1: 标题展开、折叠快捷键
      Key函数说明
      TAB (org-cycle) 作用于当前标题,当前标题–> 下一级子标题 –> 当前标题所有内容
      S-TAB (org-global-cycle) 作用于全局标题,三级循环: 一级标题 -> 所有级别标题 -> 显示所有内容
      c-u TAB   同上
      c-uu TAB (org-set-startup-visibility 返回文档打开时的展示级别(初始展示级别)
      c-uuu TAB (outline-show-all 展开所有内容
      c-cr (org-reveal) 显示当前条目、下面的标题和上面的层次结构, 主要用于Sparse Trees 和Agenda
      c-ck (outline-show-branches) 显示当前标题的所有子标题
      c-c TAB (outline-show-children) 显示当前标题的所有下一级标题
      c-cx b (org-tree-to-indirect-buffer) 将当前标题的内容在另外一个buffer 中打开
      c-cx v (org-copy-visible) 将当前标题及内容复制N份,N 在minibuffer中输入
    2. 初始化标题显示

      默认情况下,打开一个org文件,各级标题的展示级别为overview. 我们可以在每个org文档头部分通过"#+STARTUP" 来设置显示哪些内容。如:

      #+STARTUP: overview
      #+STARTUP: content
      #+STARTUP: showall
      #+STARTUP: showeverything
      

    1.2 基本操作

    有一些快捷键可以帮我们快速的操作章节,比如展开、折叠、跳转章节、生成同级标题、调整标题级别等

    Table 2: org-mode 光标操作
    KEY函数说明
    光标移动    
    C-c C-n (org-next-visible-heading) 光标移动到下一个标题
    C-c C-p (org-previous-visible-heading) 光标移动到上一个标题
    C-c C-f (org-forward-heading-same-level) 光标移动到下一个同级标题
    C-c C-b (org-backward-heading-same-level) 光标移动到上一个同级标题
    C-c C-u (outline-up-heading) 光标移动到父级标题
    C-c C-j (org-goto) 进入一下子功能,有如下操作:
    Table 3: org-mode 标题操作
    KEY函数说明
    标题结构调整
    M-RET (org-meta-return) 生成同级标题,或者排充标号
    C-RET (org-insert-heading-respect-content) 在当前标题及内容正文生成同级标题
    M-S-RET (org-insert-todo-heading) 功能同M-RET,标题前自动添加TODO字样
    C-S-RET (org-insert-todo-heading-respect-content) 功能同C-RET,标题前自动添加TODO字样
    M-LEFT (org-do-promote) 标题降级,比如2级标题(**)变为3极标题(***)
    M-RIGHT (org-do-demote) 标题升级,比如2级标题(**)升级为1级标题(*)
    M-S-LEFT (org-promote-subtree) 当前标题及其子标题,同步降级
    M-S-RIGHT (org-demote-subtree) 当前标题及其子标题,同步升级
    M-UP (org-move-subtree-up) 当前标题及其内容,与上一个同级标题互换位置
    M-DOWN (org-move-subtree-down) 当前标题及其内容,与下一个同级标题互换位置
    C-c @ (org-mark-subtree) 标记当前标题及其子内容
    C-c C-x C-w (org-cut-subtree) 剪切当前标题及内容
    C-c C-x M-w (org-copy-subtree) 复制当前标题及内容
    C-c C-x C-y (org-paste-subtree) 粘贴剪切或者复制的标题及内容
    C-y (org-yank) 粘贴
    C-c C-x c (org-clone-subtree-with-time-shift) 紧邻当前章节下方复制N次当前章节。N在mini-buffer中提供
    C-c C-w (org-refile) 移动当前标题及内容至其他一级标题下。
    C-c ^ (org-sort) 标题排序,会提供几种排序方法,比如按照时间、字母、数字等
    C-x n s (org-narrow-to-subtree) 当前buffer 中只显示此标题内容,隐藏其他标题内容。
    C-x n b (org-narrow-toblock) 当前buffer 只显示当前block 内容,不显示其他内容。
        block 指的是#+begin_example .. #+end_example 之类
    C-x n w (widen) 取消 C-x n s 与 C-x n b 的特性。
    C-c * (org-toggle-heading) 当前行在标题与非标题之间切换。但是切换为标题时, 不能保证
        原标题级别

    1.3 列表

    列表是文本中一个比较常用的元素,可以列出各种待完成的事项等。 列表分为有序和无序两种,有序列表以1.或 1)开头,无序列表以+或-开头 后面,同样,后面要跟一个空格。 我们输入一个无序列表:

    - 根1
       - 支1
       - 支2
    - 根2
       - 支1
       - 支2
    

    org-mode提供了一种很独特的功能,可以加入checkboxes (实际就是加入一对中间有空格的方括号[ ])标记任务的完成状况,当输入C-c时,会将该任务状态在完成与未完成之间进行切换 ,[X] 代表完成,[ ] 代表未完成 [-] 代表完成一部分,而且如果一个总任务有多个子任务, 还可以根据子任务的完成情况计算总进度(只需要在总任务后面添加一对方括号,里面加上%或/ 如[%],[/])。 下面是一个有序列表与checkboxes结合的示例

    1) [-] 任务1 [33%]
       1) [ ] 子任务1
       2) [X] 子任务2
       3) [ ] 子任务3
    2) [ ] 任务2
    

    1.4 注释

    Emacs 中的注释有两种:

    KEYS函数说明
    C-c C-x d (org-insert-drawer) 插入一个block,里面可以写任意内容,除了标题。不可嵌套
        这种block,被称为Drawer. 首先会要求在minibuffer中输入
        Drawer name,然后回车,会在光标所在位置生成内容,
        格式如下:
        :Drawer name:
        :END:
    C-c C-z   紧邻标题下方插入一个带时间戳的 NOTE。

    1.5

    org 中把#+beingxxxx … #+endxxx 的结构称为块。块可以用于各种目的,比如引用,举例,包含代码等。

    在块的首行,也就是#+begin_xxxx ,按TAB键,可以展开或者合并成一行。可以通过变量org-hide-block-startup在配置文件中设置block的默认状态,也可以在每个文件的头部通过#+STARTUP:来控制打开文件时block是否展开。

    #+STARTUP: hideblocks      --> 合并
    #+STARTUP: nohideblocks    --> 展开
    

     

    常用的块有以下几种:

    举例:

      #+BEGIN_EXAMPLE

      #+END_EXAMPLE

    引用:

      #+BEGIN_QUOTE

      #+END_QUOTE

    代码块:

      #+BEGIN_SRC <代码类型,比如python, sql,shell,C/C++ 等>

      #+END_SRC

     

    1.6 Footnotes

    org-mode 支持编写脚注。其格式如下

    [fn:name:definition]
    

    其中 name 和 :definition ,允许有一个为空,形式以下两种写法:

    [fn:name]
    [fn::definition]
    

    这两种是有区别的,前者是引用而不是定义,引用的是名为"name"的脚注。后者是定义脚注,名称由org-mode自行定义。 来看下示例:

    [fn:test1] --> 如果没有名为test1的脚注,在public的时候会报错:Definition not found for footnote test
    [fn::test]
    [fn:test2:test]
    

    test22

    test33

     

    Footnotes:

    1 

    安装org package时,不能打开org结尾的文件,否则已自动加载的Org 功能会让安装过程变得不可预测.

    2 
    test
    3 
    test

     

     

    Author: halberd.lee

    Created: 2020-03-31 Tue 10:45

    Validate

  • 相关阅读:
    P2176 [USACO14FEB]路障Roadblock
    洛谷 P1187 3D模型
    洛谷 P2777 [AHOI2016初中组]自行车比赛
    洛谷P2896 [USACO08FEB]一起吃饭Eating Together
    洛谷P2983 [USACO10FEB]购买巧克力Chocolate Buying
    洛谷 P2858 [USACO06FEB]奶牛零食Treats for the Cows
    Restaurant
    OR in Matrix
    poj 3321Apple Tree
    Codeforces Round #204 (Div. 2) C. Jeff and Rounding
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/12603592.html
Copyright © 2020-2023  润新知