美文网首页我爱编程程序员
Emacs org-mode 日程定义

Emacs org-mode 日程定义

作者: 机械猿 | 来源:发表于2018-03-18 00:01 被阅读0次

日常用org最多的地方就是日程管理,能够管理日程的软件很多,手机电脑都有很好的工具,至于为什么我选择使用emacs,因为我喜欢纯文本。功能强大和易用本身就是矛盾,使用纯文本算是简单易用,使用org又可以保证一定的功能性。大家也不需要把org看的很高端,不过还有另一个最重要的原因促使我们使用,那就是可以在新人面前装一个x。总之,期待阅读此文章的爱好者能够将非主流进行到底,无论以后转行或者转职,都持续关注并坚持使用。

纸上得来终觉浅,绝知此事要躬行。

日程定义

定义状态

系统内置状态有两种: TODO和DONE
强大之处在于可以任意定义状态

例如:

#+SEQ_TODO: TODO(T!) | DONE(D@) CANCELED(C@/!)
#+SEQ_TODO: BUG(b) KNOWNCASE(k) | FIXED(f)

将定义放在文档任意位置,我选择放头部。
重要: 光标移动至定义处,使用 C-c C-c使定义生效。

将光标移动至任务处,使用C-c C-t 打开缓冲区,长得像下图这个样子,此时即可选择自定的状态。

image.png

状态改变之后,变成如下的状态

***** TODO Check compute node in demo center
- State "TODO" from "" [2018-03-16 Fri 09:34]

  • 可以定义多组状态序列,每个“#+SEQTODO”行定义一组
  • 状态之间用空格分隔
  • 可以在()中定义附加选项,包括:
    • 字符:该状态的快捷键
    • !:切换到该状态时会自动增加时间戳
    • @ :切换到该状态时要求输入文字说明
    • 如果同时设定@和!,使用“@/!”
  • 用“|”分隔未完成状态和已完成状态。未完成状态在查询待办事项时会列出。
快捷键 功能
C-c C-t 打开状态切换buffer
S-LEFT/RIGTH 切换状态

优先级

org中有三种优先级,分别为A,B,C,在安排日程时,可以按照优先级进行排序。

快捷键 功能
S-UP/DOWN 优先级设置

例:

***** TODO [#A] Check Network connection
***** TODO [#B] Check Nic status
***** TODO [#B] Check Storage status
***** TODO [#C] Check Power supply

子任务

org中,可为某个日程设置若干子任务。支持在上级任务上增加标记,当子任务状态发生改变时,自动更新上级任务完成情况。有两种表现形式,百分比和分数, 例如: [80%] 和 [3/8]
设置方式实在上级标题中,任意位置插入[%] [/], 当子任务发生改变时,自动跟新其中的数字。

例:
两种显示

***** Blade[25%] [1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic status
****** TODO [#B] Check Storage status
****** TODO [#C] Check Power supply

此处需注意:

  • 当子任务状态改变时,只更新上一级,不可级联。
  • 当所有子任务完成,只能标记为100% ,并不会标记为DONE。如果需要自动设定为完成,可以通过更新emacs配置文件进行设置,作者不喜欢这么做,请自行查找。

***** Blade[1/4]
****** DONE [#A] Check Network connection
****** TODO [#B] Check Nic [1/2] status
- State "TODO" from "" [2018-03-17 Sat 19:29]

******* TODO Nic1
******* DONE Nic2
****** TODO [#B] Check Storage status

小提醒:
org 是文本,所以copy一个区域时 ,使用标准复制(M-w)是全文本复制,被隐藏的子标题也会被复制下来,如果希望只将显示的文本复制而不复制隐藏的子标题,使用快捷键 C-c C-x v (org-copy-visible)

非标题的子任务

上一个主题是介绍的子任务是以子标题的形式。如果希望非主题的子任务,可以使用列表,并在列表开头添加 “[ ]” 作为复选框,形成局部的子任务。
例如:

****** TODO [#B] Check Storage status [2/3]
- State "TODO" from "" [2018-03-17 Sat 19:29]
- [X] HD
- [X] SSD
- [ ] Block

快捷键 功能
C-c C-c 改变复选框状态
M-S-Rec 增加一个子项
M-Rec 增加一个子项(不带复选框)

任务查询

在org 基础功能中,已经介绍过,使用C-c /, 可列出多种检索方式,如下图


image.png
选项 功能
[t]odo 列出所有TODO状态的task
[T]odo-kwd 根据key word 选择状态,可以多个状态, 例如 TODO|DONE

时间

任务可以设置两种,计划时间(SCHEDULED)和截止时间(DEADLINE)。
首先,先熟悉一下Emacs的时间戳

时间戳

使用”< >“进行标记, 说多没用,看例子:

<2018-03-16 Fri>
<2018-03-17 Sat 21:00>
<2018-03-18 Sun 10:00-12:00>
<2018-03-16 Fri 10:00 +1w>

可以标记时间点和间隔,间隔用天(d)、周(w)、月(m)年(y)来表示
应为是文本,可以手工输入,或者使用 C-c .来创建。

选项 功能
C-c . 创建时间戳(在日历中,使用S-Left/Right选择日期,输入时间)
C-c < 当前日期
C-c > 查看日历
C-c ! 与任务不相关的日期 (以中括号标记)
S-Left/Right 更改日期,天为单位
S-Up/Down 改变光标所在的位置的时间单位,用来单独修改时间和日期

用两个连续的“--”将两个时间戳连接起来表示时间段

<2018-03-17 Sat>--<2018-03-19 Mon>

选项 功能
C-c . 连续使用可以创建时间段
C-c C-y 计算间隔

org的时间戳

可以为任务设置计划时间与截止时间。

选项 功能
C-c C-s 设置计划时间
C-c C-d 设置截止时间

****** TODO [#C] Check Power supply
DEADLINE: <2018-03-18 Sun 21:00> SCHEDULED: <2018-03-18 Sun>

设置timer

给org插入一个count down的 timer,用来给某个任务提示。
使用C-c C-x ; 开始一个timer。开始时,会在状态栏倒计时;结束时,会在buffer中提示。例如:

TODO [#C] Check Power supply: time out

属性

C-c C-x P 可以为任务设置属性。例如:

****** TODO [#B] Check Storage status [2/4]
- State "TODO" from "" [2018-03-17 Sat 19:29]
:PROPERTIES:
:P: 1
:Mail: send
:END:

* CD collection
:PROPERTIES:
:NDisks_ALL: 1 2 3 4
:Publisher_ALL: "Deutsche Grammophon" Philips EMI
:END:

属性可继承,并可以全局设置,文件所有内容都会继承,在文件头添加
key后面添加_All可以设置该key的可选value

#+PROPERTY: P_ALL 1 2 3 4

使用+号为一个属性添加新的value

#+PROPERTY: var foo=1
#+PROPERTY: var+ bar=2

* CD collection
** Classic
:PROPERTIES:
:GENRES: Classic

:END:

*** Goldberg Variations
:PROPERTIES:
:Title: Goldberg Variations
:GENRES+: Baroque

选项 功能
C-c C-x P 设置属性,k-v键值对
C-u M-x org-insert-drawer 插入一个空的属性语法块
C-c C-c 属性操作列表
C-c C-c s 设置当前属性
C-c C-c d 删除当前属性
C-c C-c D 全局删除当前属性
S-Left/Right 切换下一个候选的value

特殊的属性:

ALLTAGS All tags, including inherited ones.
BLOCKED "t" if task is currently blocked by children or siblings.
CLOCKSUM The sum of CLOCK intervals in the subtree. org-clock-sum
must be run first to compute the values in the current buffer.
CLOCKSUM_T The sum of CLOCK intervals in the subtree for today.
org-clock-sum-today must be run first to compute the
values in the current buffer.
CLOSED When was this entry closed?
DEADLINE The deadline time string, without the angular brackets.
FILE The filename the entry is located in.
ITEM The headline of the entry.
PRIORITY The priority of the entry, a string with a single letter.
SCHEDULED The scheduling timestamp, without the angular brackets.
TAGS The tags defined directly in the headline.
TIMESTAMP The first keyword-less timestamp in the entry.
TIMESTAMP_IA The first inactive timestamp in the entry.
TODO The TODO keyword of the entry.

查看属性的好办法是使用column view,使用C-c C-x C-c (org-columns)开启。

选项 功能
r 重新载入
q 退出
n/p 切换value
e 编辑value
v 显示value
a 编辑可能的value
S-M-right 插入一个vlaue
S-M-left 删除当前column

命令如下:

选项 功能
r 重新载入
q 退出
n/p 切换value
e 编辑value
v 显示value
a 编辑可能的value
S-M-right 插入一个vlaue
S-M-left 删除当前column

可以使用两种方式定义:

#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO

** Top node for columns view
:PROPERTIES:
:COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
:END:

列定义的语法 如下:

%[width]property[(title)][{summary-type}]

width: 显示字符数
property: 属性
title : 显示的title
summary-type: 聚合的定义,例如 {+} {+;%.1f} 等。

属性功能有点多,参考官方文档深挖。

Drawer

属性(property)是特殊的drawer,可以通过C-c C-x d添加任意drawer。
此处不详细介绍了。

** This is a headline
Still outside the drawer
:DRAWERNAME:
This is inside the drawer.
:END:
After the drawer.

最后

至此,可以用org来管理日程了,其他功能太多,不详细介绍了。
设置了日程,如何查看呢,下一篇着重介绍 Agenda。

相关文章

  • Emacs org-mode 日程定义

    日常用org最多的地方就是日程管理,能够管理日程的软件很多,手机电脑都有很好的工具,至于为什么我选择使用emacs...

  • Emacs org-mode 基础功能

    使用Emacs,必用的技能之一就是org-mode,功能比markdown更多,特别是结合TODO安排日程(另一篇...

  • 我的笔记方法 (备忘)

    Vim 里的文本: 一张二维图;Emacs 里的文本: 一颗折叠树. 用 Emacs org-mode 记笔记实在...

  • emacs 配置

    ~/.emacs.d/init.el 简洁版 复杂版 使用 org-mode 功能 一个简单的 org 文档,用于...

  • emacs笔记

    前言 最初接触emacs是因为org-mode,后来学习lisp又把玩了几把。我还是无法放弃Lisp,就从emac...

  • 在 Firefox 上使用 Org 协议捕获 URL

    介绍 作为一名 Emacs 人,我尽可能让所有的工作流都在Org 模式(Org-mode)上进行 —— 我比较喜欢...

  • 高效使用 Org 模式

    简介 在我前一篇关于 Emacs 的文章中我提到了Org 模式(Org-mode),这是一个笔记管理工具和组织工具...

  • Org-Mode使用

    Org-Mode使用 日程表agentda视图 agentda 有4种视图模式,周,月,年,使用快捷键可以进行切换...

  • Mac系统emacs org-mode 学习笔记

    0x00 美化准备 安装 org-bullets 插件,可以让org文本自带美化效果 配置启动参数, 使其自动生效...

  • emacs 宏操作

    emacs 快捷键众多,可以自己定义的快捷键很多,自定义快捷键能打造更适合自己的编辑器,宏定义是emacs比较强大...

网友评论

    本文标题:Emacs org-mode 日程定义

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