Chris Li

Digital design, Lisper,Emacs.

1_05_emacs_agenda

Table of Contents

学习emacs org模式感觉信息量非常的大,很难短时间内掌握。因此我想到如果按 照事件的方法为记录也许会好理解很多,而且容易记住。首先emacs org当前所做 的事无非就是:做笔记(包括强大的笔记格式输出),时间管理(包括TODO时间 统计)。

其一,做笔记:

编辑

层次编辑与移动

  1. 在编辑文emacs文档的时候,和这篇文 章一样我们首先用到的是标题层次和列 表。
  2. 标题层次,列表和todo里面check box的概念很相似,标题的区别在于可以生成 列表和展开/折叠功能,而列表可以利用C-S-ret转化为check box.check的快 捷键为C-c C-c。
    1. 标题的产生为M-ret,之后可以用C-ret产生标题。标题的移动和用C-方向键 的组合。
    2. 列表的产生用C-c -,用Tab来改变层级,Tab是循环的模式,最多三层。也 可以用M-" 来产生短线。
  3. 移动的话,感觉在层次化的标题中移动还是比较麻烦的,个人倾向于,C-c C-u返回上一层级,这个还是挻有用的,我想C-c C-u加Tab就能搞定了。
  4. 精确移动可以利用C-u num 的方式,或者M-g g命今的goto line方式。

脚注

  • C-c C-x f添加脚注[fn:1]。
  • C-c C-c在脚注之间移动。

插入代码

C-c '

表格

  1. 表格用的比较多,一般建立表格的方法有两种:
    1. 边写边建法,|table|next column|输入竖号,然后按Tab或C-c ret,C-c ret会产生分行线。其中S-tab向后移动。
    2. 利用Tab 键作为自动分割符,在设置好Tab键后,用C-c C-c 来自动生成。 同时C-c C-c也可以用于自动对齐。相当于各种模式下的tab。
  2. 表格的移动和删除
    1. M-方向键,移动表格。
    2. M-S-方向键,删除表格。
  3. 加入表格横线的方法:C-c -或C-c ret。这两个命今有一点不一样。
  4. 表格排序,对光标所在的列进行排序,C-c ^。

超链接

超链接的编辑比较简单,但十分有效。总结起来超链接就是三对方括号。

[[link][description]]

链接可以是各种形式。具体参考手册。

  1. 插入与编辑链接本身C-c C-l
  2. 打开链接与关闭返回C-c C-o,C-c &。
  3. 可以链接的目标的特定位置,格式如下。
[[link::num][description]]

其二,时间管理

其实时间管理所需的大部分是一个设置好的emacs,剩下的就只是用了。

设置emacs,主要是agenda

首先agenda是一个管理todo的buffer。将所有的agenda文件集中管理。在新版本 的emacs中似乎没有了caputre的功能,转为remember。

将文件纳入agenda的管理范畴。如

(setq org-agenda-files (list "/media/FILE/debian_share/org/work.org"
                             "/media/FILE/debian_share/org/learn.org"
                             "/media/FILE/debian_share/org/fun.org"
                             "/media/FILE/debian_share/org/journal.org"))

将agenda管理的文件与remember连接

  1. 定义一个非常快捷的remember key,方便随时切入。(define-key global-map [f11] 'org-remember)
  2. 同样定一个非常快捷的agenda key,(define-key global-map [f10] 'org-agenda)
  3. 将agenda中的文件用remember 来编辑。
(setq org-remember-templates 
    '(("Work" ?w "* TODO %?\n %x\n %a" "/media/FILE/debian_share/org/work.org" "Tasks")
      ("Learn" ?l "* TODO %?\n %x\n %a" "/media/FILE/debian_share/org/learn.org" "Tasks")
      ("Fun" ?f "* TODO %?\n %x\n %a" "/media/FILE/debian_share/org/fun.org" "Tasks")
      ("Journal" ?j "* TODO %?\n %x\n %a" "/media/FILE/debian_share/org/journal.org")
      ("Idea"?i "* %?" "/media/FILE/debian_share/idea.org" "Ideas")
      ("Note"?n "* %?" "/media/FILE/debian_share/note.org" "Notes")))

其中的待编辑文件可以是agenda中,也可以是没有加入agenda的文 件。如 idea,note.。

设置TODO状态

不同组状态用|线分割,组内状态用""号分割,如下(setq org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))

使用时间管理

agenda view& remember

  • agenda view
    1. F10启动agenda,F11启动remember,agenda view 的操作比较方便,大多是单键 的快捷键。
    2. 启动后a按周显示todo,t显示所有的todo,L显示当前文件的时间分类信息。 q退出agenda。
    3. agenda 中的操作
      1. 移动,n,p(前后),f,b(上一窗口,下一窗口)
      2. 去掉其它窗口,o
      3. 视图,d按天显示,w按周显示,v选择显跨度,l显示计时信息。
      4. r,用于改动agenda file 后刷新agenda
      5. t,设置todo状态
      6. C-k完全删除此条todo
      7. clock计时功能,I开始计时,O停止计时,J转到,源文件中
  • 全局操作
    1. refile
      1. 在sparse tree 中移动,C-c C-w
    2. archive
      1. 将此分支移动archive 文件中,模认的archive文 件为该文件名加_archive
    C-c C-x C-a 将事务放到默认为当前文件_archive后缀的文件中
    C-c C-x a 将此项打上archive标签
    C-c C-x A 归纳到archive子树中,archive子树用C-Tab打开
    1. time stamp
      1. 加deadline标签,C-c C-d
      2. 加schedule标签,C-c C-s
      3. 加timestamps, C-c .
      4. 以上的三点都会影响agenda
      5. C-c !只会加时间标签,不会在agenda中加入口
    2. 任务计时
      开始计时 /当前任务计时 C-c C-x C-i/TAB
      停止计时 C-c C-x C-o
      取消计时 C-c C-x C-x
      跳转到当前计时任务 C-c C-x C-j
      统计任务用时/显示任务用时 C-c C-x C-d/C-r