org 使用简介

org 排版工具

简介

一种纯文本标记语言 ,用来 写笔记 ,管理 TODO 列表 ,也是一个创作系统,能够进行 文字编程重复研究

能导出不同的格式,新的导出后端可以从现有的后端派生,也可以从头开始定义。

Org 在 Emacs 中运行。

反馈: 给官方发错误报告 org-submit-bug-report
自己调试 :重载 org-reload 调试 toggle-debug-or-error 打开 org-mode


文件结构 [ 大纲结构,展开大纲,就可以看里面的细节 ]

标题

大纲结构的具体实现是用 标题 ,写法是 以 * 加空格开头

* 顶级标题           
** 第二级                         
*** 第三级               
    一些文字
*** 第三级
    一些文字

emacs 中, 在标题上按住 <tab> ,就能展开或者闭合 标题下面 的内容了

导航什么的可用 vim 类的快捷键,我装的是 spacemacs

普通列表

列表跟标题差不多的,只是它们作为标题下面的内容存在

缩进对列表会有影响
属于同一列表的项目必须在第一行上具有相同的缩进
  • 无序列表, 以 -,'+' ,或 '*' 开头

    写法

    * 青菜
     一些文字
    * 萝卜
     一些文字
    * 大白菜
     一些文字

    展现形式

    • 青菜

    一些文字

    • 萝卜

    一些文字

    • 大白菜

    一些文字

  • 有序列表

    1., 1) 开头,或 自定义起始序号 [@20]

    1. a
    2. b
    3. c

抽屉

一块折叠内容,通常放置不需要关注的补充说明

:DRAWERNAME:
This is inside the drawer.
:END:

时钟时间, TODO 跟踪状态,这些不重要的内容通常放置在 LOGBOOK 抽屉中

org 文件中通常包含各种以 #+ BEGIN 开头 #+ END 结尾的块

#+STARTUP: hideblocks
#+STARTUP: nohideblocks

脚注

文章内容中的 参考信息 会放在文章底部1

行内定义
[fn:: This is the inline definition of this footnote]

行外定义
[fn:NAME] 这里是脚注
行外引用
[fn:NAME]
我都不会写,用的快捷键,边学边用。

字体格式化

*粗体*
/斜体/
+删除线+
_下划线_
下标:H_2 O
上标:E=mc^2
等宽字:  =git=  或者 ~git~

水平分隔线

五条减号线 -----


以 两条 | 组成一个单元格,再多再加就可以了,多行的话复制一下。 水平分隔线用 |--- 开始,中间 - 多于两个就可以了。

| Name  | Phone | Age |
|-------+-------+-----|
| Peter |  1234 |  17 |
| Anna  |  4321 |  25 |

创建表格 ,对于规格化的文本, 可以用 org-table-create-or-convert-from-region 快速创建 如

a ,  b, c
a ,  b, c

计算,对于含有数字的列 ,可以 用 org-table-sum 求和运算

公式计算: 在 表头部标签 可以输入表达式

#+TBLFM: $2=$1^2::$3=$1^3::$4=$1^4::$5=sqrt($1)::$6=sqrt(sqrt(($1)))

单元格坐标获取, org-table-field-info

N N^2 N^3 N^4 sqrt(n) sqrt[4](N)
1 1 1 1 1 1
2 4 8 16 1.4142 1.1892
3 9 27 81 1.7321 1.3161
4 16 64 256 2 1.4142136
5 25 125 625 2.2360680 1.4953488

一些公式的例子

在奇数行上插入列号,在偶数行上将字段设置为空。 if(@# % 2, $#, string(""))
将名为 FOO 的表的第 1 列的每一行的文本或值复制 到当前表的第 2 列 $2 = '(identity remote(FOO, @@#$1))

定义常量

#+CONSTANTS: c=299792458. pi=3.14 eps=2.4e-6

对于行或列的移动,删除的快速命令,文档上都有,不概述了。


超链接

描述性链接
[[LINK][DESCRIPTION]]
纯链接 
[[LINK]]

文件内部链接,名字不像超链接,跟某级标题同名的链接

[[ TitleA ]]
[[TitleB][DESCRIPTION]]

也可以链接到表

#+NAME: My Target
| a  | table      |
|----+------------|
| of | four cells |

Radio Targets: 相当于 HTML 中的锚点,内部跳转用的。

<<<目标>>>

链接格式

[[file:~/code/main.c::255]]
[[file:~/xx.org::My Target]]
[[file:~/xx.org::*My Target]]
[[file:~/xx.org::#my-custom-id]]
[[file:~/xx.org::/regexp/]]

TODO

标题前面有 TODO 字样的列就是 TODO 项目,TODO 文件主要用于写 项目将要实现的功能

项目默认只有两种状态,可以创建更多状态

(setq org-todo-keywords
'((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))

用于类型也不错

(setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE")))

文件属性中设置

#+TODO: TODO FEEDBACK VERIFY | DONE CANCELED

TAGS [标签,文章的属性,关键词 ]

写法,这篇文章写 org 的, tags 就写 org ,多个关键词用 , 隔开。

#+TAGS: org 

标签归类,有层次了

#+TAGS: [ Control : Context Task ]
#+TAGS: [ Persp : Vision Goal AOF Project ]

日期和时间 [ 规划 TODO ]

为了给 TODO 项目进行时间规划, org 创建了 带有日期与时间信息的特殊格式串

时间戳的写法

* TODO 和小李看电影
  <2019-06-01 六 19:15>
* 去公园里玩
  <2019-06-04 二 08:30-09:30>

对于间断性的任务

* 每周三去学校接 sam
  <2007-05-16 Wed 12:30 +1w>

延时显示任务 

* 学校接 sam
  <2007-05-16 Wed 12:30 -1d>
第二天显示,可以验证昨天是否完成了任务
间隔参数 可以为 天 (d) ,周 (w) , 月 (m) 或 年 (y)
循环任务用 =+=  ,延时显示用 =-= 

Deadlines and Scheduling [ 给时间附属性 ]

Deadlines : 任务截止时间 ( 通常是 TODO 项目 )

*** TODO write article about the Earth for the Guide
    DEADLINE: <2004-02-29 Sun>
*** 设置一个5天的警告
    DEADLINE: <2004-02-29 Sun -5d>

SCHEDULED: 任务开始时间

*** TODO 叫小李吃饭
    SCHEDULED: <2004-12-25 六 11:00>

给任务计时

统计在任务上花了多少时间,就要给任务计时 

计时开始, org-clock-in
停止计时, org-clock-out
在上一个停止处继续计时 , org-clock-in-last

历史记录就这样的格式

:LOGBOOK:
CLOCK: [2019-06-04 二 08:59]--[2019-06-04 二 09:09] =>  0:10
CLOCK: [2019-06-04 二 08:56]--[2019-06-04 二 08:59] =>  0:03
:END:

计时报表

org 能统计这些任务花费的时间,输出一些表

输出报表, org-clock-report
更新光标处的报表, org-dblock-update

报表输出格式

#+BEGIN: clocktable :scope subtree :maxlevel 2
#+CAPTION: Clock summary at [2019-06-04 二 09:06]
| Headline                         | Time   |      |
|----------------------------------+--------+------|
| *Total time*                     | *0:09* |      |
|----------------------------------+--------+------|
| \_  把 org  agenda 的 clock 学会 |        | 0:09 |
#+END:

这个任务总共做了9分钟

解决空闲时间(Resolving idle time)

如果你正在计时一个任务,但突然有事(比如接电话),那么就要从当前计时中减去你花去干其他事花的时间(浪费时间)。

设置默认要预留的时间: org-clock-idle-time

设置浪费时间: org-resolve-clocks
k 保留任务的的有效计时数,并从当前时间开始计时
K(大写) 全部有效,并退出任务计时
s/S 从当前时间重新计时
C 取消任务计时


Agenda Views [ 日程浏览 ]

能把不同文件中的 TODO 项目收集起来 ,用来 GTD (把事情做完) 管理

GTD 是一套任务收集,分配的方法,用来节约时间的。
org 中 任务都被收集到 org 文件中 ,就像 TODO 项目一样。

进入 Agenda Views 视图 , org-agenda-list
把当前文件添加到 Agenda Files , org-agenda-file-to-front
移除当前文件, org-remove-file
遍历 Agenda Files , org-cycle-agenda-files
可供选择的遍历 , org-cycle-agenda-files

图片展示 , 切换 日视图 d ,周视图 w , 月视图 org-agenda-month-view

设置默认显示 agenda 的方式: ‘day’, ‘week’, ‘month’ or ‘year’.

(setq org-agenda-span 'day) 

参考资料

Footnotes:

1

这里是脚注那段的参考信息,网址是 : https://orgmode.org

0%