如何利用Emacs进行个人时间管理(GTD)

1. 简介

1.1 什么是GTD

Get Things Done(GTD),是一套时间管理方法,面对生活中如下情况:

  • 有很多事情要做
  • 每件事情有主次之分
  • 个人精力有限

我们需要随时很方便的了解我们下一步要做什么,合理的安排我们有限的时间,集中精力完成更重要的事情。

“GTD通过帮助你更好的跟踪和管理你的思绪、需要做的和想做的事,从而使你能在合适的情境中静下心,集中精神完成最重要的任务。”

“GTD不是一蹴而就的。GTD是一套持续的系统,需要不断地实践才能让你更好的掌握,从而成为你信任的系统。”

GTD原则:

  • 收集
  • 处理
  • 管理
  • 执行
  • 回顾

1.2 什么是Emacs

Emacs是一款开源跨平台的编辑器,功能非常之强大,参见陈斌大神的 《一年成为Emacs高手(像神一样使用编辑器)》

而借助丰富的插件,Emacs可以说是目前最为强大的GTD工具没有之一, 本文将重点介绍拿到Emacs后如何配置为一个可以用的GTD系统。如果你想知道一些详细的Emacs-GTD方法,见 用Org-mode实现GTD

1.3 什么是番茄工作法

说道GTD一定要提番茄工作法,番茄工作法的核心是专注,具体做法是:

  • 设定番茄钟,一个番茄钟包括了25分钟持续工作时间和5分钟休息时间
  • 对每项任务估计番茄钟数目
  • 在番茄钟的25分钟工作时间,强迫自己必须极其专注,放弃手机、知乎、微信等等
  • 在番茄钟的5分钟休息时间,翻看微信消息、邮件等
    • 如果有3分钟内能解决的事情,立马解决
    • 如果需要较多时间解决,则加入GTD代办事项

2. Emacs Org-mode 的GTD配置

笔者使用的环境是:

  • Manjaro 17.1.10
  • Gnome 3.28.2
  • Emacs 25.3.1
  • Spacemacs配置文件

2.1 Org Agenda

2.1.1 添加Agenda路径

我们Emacs做GTD工具的核心功能就是Agenda功能,他是一个可以实时查看自己有哪些任务,以及每个任务完成进度的功能,我们可以通过 M-x org-agenda来打开,也可以自定义快捷键(我的是C-c a,借助(define-key global-map "\C-ca" ‘org-agenda)),不过首先你需要建立一个专门存放你的GTD文件的目录,并且将org-agenda的目录指定为该目录。

笔者使用的是Spacemacs配置,因此需要在.spacemacs文件中的dotspacemacs/user-config函数中加入如下命令:

(setq org-agenda-files ‘("/Path/To/Your/GTD/File/"))

2.1.2 自定义agenda模板

打开agenda可以发现,当前仅有自带的几个展示途径:

  • 列出每天、每周的Agenda
  • 列出所有TODO事项
  • 按Tag搜索
  • 按关键词搜索
  • 。。。

我们可以添加一些展示的模板进去,这里参考 子龙山人Spacemacs Rocks的配置方法,将任务按照不同的级别进行展示:

(setq org-agenda-custom-commands
        ‘(
          ("w" . "任务安排")
          ("wa" "重要且紧急的任务" tags-todo "+PRIORITY=\"A\"")
          ("wb" "重要且不紧急的任务" tags-todo "-weekly-monthly-daily+PRIORITY=\"B\"")
          ("wc" "不重要且紧急的任务" tags-todo "+PRIORITY=\"C\"")
          ("W" "Weekly Review"
           ((stuck "") ;; review stuck projects as designated by org-stuck-projects
            (tags-todo "project")
            (tags-todo "daily")
            (tags-todo "weekly")
            (tags-todo "school")
            (tags-todo "code")
            (tags-todo "theory")
            ))
          ))

其中的指令其实很好理解,比如:

  • ("w" . "任务安排") 表示了设置快捷键"w"展示任务安排
  • ("wa" "重要且紧急的任务" tags-todo "+PRIORITY="A"") 表示设置快捷键 "wa"展示重要且紧急的任务,筛选条件是 优先级等于"A"
  • ("wb" "重要且不紧急的任务" tags-todo "-weekly-monthly-daily+PRIORITY="B"") 筛选条件是:排除每周、每月、每日标签、且优先级等于B
  • ((stuck "") 表示显示尚未进行管理的任务
  • 下面的"project", "daily"表示展现该类标签下的任务

2.2 添加Agenda目录下的.org文件

2.2.1 ORG文件简介

Emacs org-mode常用来进行富文本写作,非常的强大,我目前觉得相对于Markdown最有优势的地方是:

  • 结构可展开和收缩,非常清晰
  • 代码块功能,直接文本内运行(我承认有些md插件也行,但是没这个好用)
  • latex公式,渲染非常漂亮,行内显示
  • 导出方便且类型多样
  • 所有继承自Emacs的优点

任务关键词

用.org文件可以进行很方便的GTD,他的正文可以添加每个任务的 关键词标注,比如TODO表示将要做,DONE表示做完了等,快捷键是 C-c C-t ,我们可以在init.el文件中添加如下命令来自定义关键词:

(setq org-todo-keywords
    ‘((sequence "BUG(b!)" "|" "FIXED(f!)")
      (sequence "TODO(t!)" "SOMEDAY(s)" "|" "DONE(d!)" "CANCELED(c @/!)")
     ))

可以在 () 中定义附加选项,包括:

  • 字符:该状态的快捷键
  • ! : 切换到该状态时会自动添加时间戳
  • @ : 切换到该状态时要求输入文字说明
  • 如果同时设定@和!,使用@/!

你也可以通过 S-左方向键S-右方向键进行调整,S表示super键,即shift键

任务优先级

其次,他还可以添加每个任务的优先级, 上文中展示了A B C三个优先级,你可以通过S-UP/DOWN来进行调整

子任务完成情况

在每级标题后插入[%][/]即可追踪其子标题的完成情况,前者表示任务完成百分比,后者表示完成进度,当任务发生变化时,该值也会跟着改变

插入时间戳

ORG中你可以对每个任务插入时间戳,C-c C-s 插入Schedule时间, C-c C-t 插入Deadline时间, 或者直接C-c .插入一般时间。

时间戳中可以添加具体时间,如:

<2018-05-29 二 10:00>

也可以添加时间范围,如:

<2018-05-29 二 10:00-11:00>

<2018-05-29 二 10:00>-<2018-05-30 三 10:00>

也可以添加需要重复的时间,如:

<2018-05-29 二 10:00-11:00 +1d>

<2018-05-29 二 10:00-11:00 +1w>

分别表示每天重复和每周重复一次

一个例子

下面是一个简单的例子,包括了主任务,子任务,子任务状态,子任务优先级,子任务deadline,主任务完成进度,以及每个状态的修改时间


* TODO Work[1/3]
- State "TODO"       from ""           [2018-05-29 二 09:51]

** TODO [#B] 代办事项1                                          :school:
DEADLINE: <2018-06-10 日>
- State "TODO"       from "FIXED"      [2018-05-28 一 23:28]
- State "FIXED"      from "TODO"       [2018-05-28 一 23:28]

2.2.2 ORG文件与GTD

Org-mode是所有事项的文本载体,Agenda从其中进行读取、归档、汇总、统计。我在我的GTD文件夹中添加了如下的.org文件:

  • task 用来存放临时的任务
  • calendar 用来存放每日,每周, 每月固定的任务
  • notes 用来存放平时记得一些笔记,等待归档
  • finished 用来存放已经完成的任务
  • canceled 用来存放已经取消的任务

org-mode的配置可以在头文件中实现 以task为例,我的org头文件如下:

#+LATEX_HEADER: \usepackage{xeCJK}
#+LATEX_HEADER: \setmainfont{"微软雅黑"}
#+ATTR_LATEX: :width 5cm :options angle=90
#+TITLE: Task
#+AUTHOR: 杨 睿
#+EMAIL: [email protected]
#+KEYWORDS: GTD
#+OPTIONS: H:4 toc:t
#+PROPERTY: CLOCK_INTO_DRAWER t
#+TAGS: { code(c) theory(t) school(s) easy(e) project(p) }

其中最后一行指定了标签类别, 倒数第二行将所有时间信息放在一个抽屉(:LOGBOOK)中,其他的无关紧要(你想知道也可以额,前两行保证了我到处latex时可以输出中文,第三行设置了我的latex格式,后面几行是文档的基本信息,倒数第三行表明需要自动生成目录)。

完成之后,只需要在每一类文件中添加相应的任务,以及TODO等关键词,再运行 M-x org-agenda即可,我将org-agenda绑定至了快捷键C-c a,下面是一个org-agenda演示。

2.3 org-agenda演示

2.3.1 org-agenda查看每日任务

步骤:

  1. C-c a进入org-agenda
  2. a 进入每日、每周任务
  3. 默认展示的是一周内每天的任务,按d进入当天任务,按w返回每周任务
  4. R (注意大写)查看当天每个任务的完成时间情况
  5. r 刷新状态

2.3.2 org-agenda查看自定义模板

步骤:

  1. C-c a 进入org-agenda
  2. w 进入自定义的模板
  3. a 选择优先级为a的任务列出
  4. C-c a, wb 选择优先级为b的任务列出
  5. C-c a, W 列出所有模板中的代办任务

2.4 org-capture配置

2.4.1 如何配置

我们经常会遇到一些临时产生的任务、安排、想法等等,我们需要以最快的方法将其添加到我们的GTD系统中去,而org-capture提供了这个功能。

你可通过M-x org-capture打开,也可以绑定快捷键,我是C-c c。打开后可以发现,默认可以添加的任务类型非常少,我在配置文件中加入了:


;; 绑定键位
  (define-key global-map "\C-cc" ‘org-capture)

;; 这边就是为路径赋值
(defvar org-agenda-dir "" "gtd org files location")
  (setq-default org-agenda-dir "/Path/To/Your/GTD/File/")
  (setq org-agenda-file-note (expand-file-name "notes.org" org-agenda-dir))
  (setq org-agenda-file-task (expand-file-name "task.org" org-agenda-dir))
  (setq org-agenda-file-calendar (expand-file-name "calendar.org" org-agenda-dir))
  (setq org-agenda-file-finished (expand-file-name "finished.org" org-agenda-dir))
  (setq org-agenda-file-canceled (expand-file-name "canceled.org" org-agenda-dir))

;; 添加每次打开时可添加的任务类型
  (setq org-capture-templates
        ‘(
          ("t" "Todo" entry (file+headline org-agenda-file-task "Work")
           "* TODO [#B] %?\n  %i\n"
           :empty-lines 1)
          ("l" "Tolearn" entry (file+headline org-agenda-file-task "Learning")
           "* TODO [#B] %?\n  %i\n"
           :empty-lines 1)
          ("h" "Toplay" entry (file+headline org-agenda-file-task "Hobbies")
           "* TODO [#C] %?\n  %i\n"
           :empty-lines 1)
          ("o" "Todo_others" entry (file+headline org-agenda-file-task "Others")
           "* TODO [#C] %?\n  %i\n"
           :empty-lines 1)
          ("n" "notes" entry (file+headline org-agenda-file-note "Quick notes")
           "* %?\n  %i\n %U"
           :empty-lines 1)
          ("i" "ideas" entry (file+headline org-agenda-file-note "Quick ideas")
           "* %?\n  %i\n %U"
           :empty-lines 1)
          )
        )

笔者添加了如下任务类型:

  • Todo:需要完成的任务
  • Tolearn:需要学习的知识点
  • Toplay:需要玩的工具等等,优先级最低
  • Todo_other:其他一些不知道归什么类的任务
  • notes:临时产生的待整理的笔记
  • ideas:临时产生的想法,等待细细研究

代码中每个任务都给定了归档的文件路径,以及在对应的org文件中的一级标题名称(如Work,Hobbies等)

2.4.2 演示

步骤:

  1. C-c c 打开org-capture
  2. t 新建TODO任务
  3. 填写你的任务名称
  4. C-c C-d 增加Deadline
  5. C-c C-c 确认添加,之后这条任务就出现在了task.org之中

2.5 自定义转接 org-refile

当你完成了一个任务,你希望将其从task.org移动到finish.org中,如何快速的时间呢,这时候需要借助M-x org-refile命令,默认是在本文件内部转移,如果要转移到其他文件需要进行自定义:

;; 绑定键位
  (define-key global-map "\C-cr" ‘org-refile)

  ;; 添加finished和canceled两个文件路径,并且只转移到一级标题
  (setq org-refile-targets  ‘((org-agenda-file-finished :maxlevel . 1)
                             (org-agenda-file-canceled :maxlevel . 1)
                             ))

番茄工作法插件: pomodoro

Emacs提供了方便的番茄工作法插件,spacemacs自带,将光标移动到接下来要办的事情熵,通过M-x org-pomodoro启动,之后你会看到你的spaceline上多了一个计时器,好了接下来25分钟啥也别干了,认真做你的事情吧。

如果想要临时终止的话,可以通过M-x spaceline-toggle-org-pomodoro-off关闭番茄计时。

当然,如果你不想选择番茄计时,而是随意的开始和终止,那么你可以在相应的任务下运行:

  • C-c C-x C-i 启动时钟(不会在spaceline上显示)
  • C-c C-x C-o 关闭时钟

你会发现在对应的org文件任务下多出了一个计时信息:

:LOGBOOK:

CLOCK: [2018-05-29 二 23:39]--[2018-05-29 二 23:39] => 0:00

:END:

后记

到此为止基本上介绍完我的GTD系统搭建过程了,后面还有可以继续添加,我的番茄钟要到时间了~~~

如果需要我的spacemacs详细配置文件,可以访问我的github中的spacemacs配置,觉得好用的话不要忘记给个Star哦~

原文地址:https://www.cnblogs.com/yangruiGB2312/p/9101838.html

时间: 2024-08-06 07:57:41

如何利用Emacs进行个人时间管理(GTD)的相关文章

单机版wiki:网页版记事本和网页版时间管理GTD软件

TiddlyWiki:可以用来做个人记事本,只需要下载一个empty.html便可以使用,搬家到不同电脑也很方便.如果能解决安全性问题,便可以搬到网络上在线使用.和Blog的差别在于这里是不想公开的只给自己看的记事本. 时间管理GTD: MonkeyGTD,也是只要下载一个mgsd.html文件即可使用.对工作事项有很多种分类方法,如场合/时间/处理途径/...,也可以添加自己需要的分类方法.每天进来更新一下每个事项的状态,就可以很有信心的做好自己时间管理,不用担心什么事情又忘记处理了. 这两个

统筹高效利用时间——《小强升职记(升级版):时间管理故事书》读后感

      统筹高效利用时间 --<小强升职记(升级版):时间管理故事书>读后感 看完<小强升职记:时间管理故事书>,很有感触.书只是以小强为人物线索,通篇讲解如何管理.高效利用时间,和功利的升职等没有任何关系.全书着重讲如何利用时间,如"摔倒身上的猴子"等方法很受用.也想让媳妇和大家伙读一遍. 每天的忙碌,为什么有的人效率很高,有的人效率很低,同样的任务还要加班(这点我做的也不好).很大的原因往往是时间安排的不合理,分不清轻重缓急,没有目标,或者有目标容易

GTD时间管理---非行动性

一:行动性和非行动有什么区别? 1:非行动性:指的是收集箱中的信息,是先存储后使用,这些信息平时都处于冬眠状态,只是要用到的时候能够找到它就好了.(偏向于处理生活) 2:行动性: 指的是收集箱中的信息,是我们要采取反应的.(偏向于处理工作) 非行动性(多张图详图+文字描述) 因为非行动性的东西是先存储后使用,平时都处于冬眠状态,并且偏向于生活,最好都要有详细图片记录,时间长了怕忘记,便于回忆.(图片+文字描述) 一:灵感清单 (脑内原料/无序聚敛) 灵感清单:是自己冒出来一些觉得好的想法和灵感.

GTD时间管理:高效管理你的时间,GTD软件一款就够

时间管理软件在网络上有很多种,不下一百款,手机端和PC端各有优势,而且每一款时间GTD软件都有自己独特的功能,本文是三更灯火网为大家分享的一款非常好用的GTD时间管理软件. 说有多好也不见得,只有自己去体验过了才能觉得到底是不是自己想要的,每个人有不同的使用习惯和思维,所以有人不苟同很正常. 三更灯火网为大家分享的这款GTD时间管理软件,本质上是一个闹钟,没错,就是一个闹钟,只支持电脑端,使用场景适合经常待在电脑前的你而不是整天抱着手机玩的你,比如上班族.宅族.电脑游戏族等等. 软件的功能也十分

GTD时间管理

GTD就是Getting Things Done的缩写,翻译过来就是"把事情处理完",是一个管理时间的方法.GTD的核心理念概括就是必须记录下来要做的事,然后整理安排并使自己一一去执行.GTD的五个核心原则是:收集.整理.组织.回顾.执行.GTD的核心理念在于清空大脑,然后一步步按照设定的路线去努力执行. GTD时间管理方法 {video}(//player.bilibili.com/player.html?aid=73280139&cid=125345552&page

我的时间,GTD做主

可能每一次总结的时候,我们都在努力的回顾,我这几天都干了什么,结果回顾半天得到的结果就是:我也不知道,仿佛什么都没有做似的.事实上不然,你已经做了好多事,但却始终有这样的感觉,有的时候都在自己发问:我的时间去哪了? 面对上面的问题,有个好的解决方法.做好时间管理.当然有的时候我们可能管不住自己,比方说今天有比赛,或者想买个东西就逛起淘宝来了.事实上这也没什么,自己管不住就找一个软件帮我们管理就好,我所要说的就是利用OneNote制定计划+outlook编辑计划+outlookon the des

一个程序员的时间管理

原文地址:http://www.myexception.cn/other/1391133.html 如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱? 天下真有这样的好事吗? 是的,而且这种好事每天都在发生着,你真的有这样一个户头,那就是“时间”.每天每一个人都会有新的86400秒进账,而这86400秒的价值要远远的大于86400元.那么,面对这样的一大笔财富.你打算怎样利用它们呢? 其实吧,我并不知道你是如何利用它们,但我知道我自己是如何利用的,下面把我的一些时间

对于时间管理初识--时间管理入门

在这个微信,QQ遍布全球的世界里,越来越多的人们迫切自己的时间得到充实,希望自己的话题能有人回复,越来越多的人患有社交焦虑症. 但是在这个时间上,人们往往工作效率很低,你身边是否有人这样抱怨过: 我今天不知道做了什么 我刚刚想起一个事情,然后被打断了 这个项目我做不完,你得多给我点时间 人们往往不知道自己的时间花费在哪里,永远也提不高自己的工作效率,正好今天学习了一点时间管理的原则与方法,在这里提出个人的看法与意见,希望大家看了共同进步. 对于时间管理这个定义的理解,百度百科是这样说的 时间管理

从现在开始,培养自己的时间管理习惯

20-30岁是我们人生阶段的重要分水岭,大学毕业.初入职场.摸爬滚打成“老鸟”,在此阶段如果能够培养时间管理的习惯,对你以后的人生会起到翻天覆地的变化.现在小强就将自己接触GTD后掌握的时间管理技巧,和各位分享其中重要的十二项内容. 如果你目前能够做到,小强在此恭喜你继续保持:没有做到的话也不要灰心,从今天开始也不迟,每天尝试一项新习惯,争取一个月之内对这十二项时间管理内容有初步体验,到时候欢迎大家找小强分享! ● 培养每天“使用日历APP应用或日历纸质本”习惯 朋友家人的生日.纪念日,合作伙伴