忙成狗,闲成猪。 上半年个人状态就是如此,为了作出改变我找了不少的任务管理工具,好比奇妙清单、滴答清单(如今我还在用)等等,可是依然没有知足个人需求。做为一名精力旺盛的开发仔,我甚至一度有了本身撸一个知足本身需求的时间管理工具的想法,最后也草草了之。git
但做为当代新青年,怎么能没有一个时间管理工具呢?因而乎,经过个人同事、领导兼好朋友寻找到了 Emacs 的 Org Mode 大法,是真香,接下来,我就说一说我是如何经过 Org Mode 来管理时间的。github
首先,咱们须要下载并安装 Emacs。bash
apt install software-properties-common add-apt-repository ppa:kelleyk/emacs apt update apt install emacs26
这时候咱们就可以经过 Emacs 打开 .org
文件来进行时间管理了,就像这样:工具
Great,咱们已经完成了第一步,接下来,我我的比较懒,不想用裸奔的 Emacs,因而我入坑了 Spacemacs,这样就能够帮咱们配置好一个够用的 Emacs 了。spa
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
文件下载完成后,便可运行 Emacs,而后根据初始化流程进行初始化,安装完成后,咱们从新打开刚刚的文件。3d
接下来,咱们正式开始时间管理教学。日志
咱们须要将任务拆分红咱们须要的样子,好比,个人任务列表长这样:code
咱们须要将咱们的工做,分红不一样的模块进行管理,这里都是工做相关的内容,我并无用 Emacs 管理生活,谁记录生活用电脑啊?我会么?我不会,你会么 ?哪一个正经人用电脑记录生活啊。由于工做的电脑相关度很是高,因此我才选用了 Emacs,毕竟生活谁也不会每天呆在电脑旁边。blog
咱们将任务安排好了以后,就须要制定工做流了,从 TODO
到 DONE
的一套流程。ci
每一行均可以有不一样的状态,好比 未开始
、进行中
、已完成
等等,能够根据本身的需求来定义,那咱们要如何进行定义呢?
咱们须要打开用户目录下的 .spacemacs
配置文件,在里面添加流程配置而且加上颜色、背景色样式的配置。
;; 设置任务流程(这是个人配置) (setq org-todo-keywords '((sequence "未开始(p!)" "进行中(t!)" "阻塞中(s!)" "|" "已完成(d!)" "已取消(a@/!)"))) ;; 设置任务样式 (setq org-todo-keyword-faces '(("未开始" . (:foreground "red" :weight bold)) ("阻塞中" . (:foreground "red" :weight bold)) ("进行中" . (:foreground "orange" :weight bold)) ("已完成" . (:foreground "green" :weight bold)) ("已取消" . (:background "gray" :foreground "black")) ))
咱们可使用快捷键 Ctrl c + Ctrl t
,而后按对应的键就能够进行任务状态的标记了,就像下面这样。
接下来,咱们须要安排任务到指定的日期,使用快捷键 Ctrl c + Ctrl s
就能够安排对应任务的时间了(同时,还支持循环任务等复杂时间设置)。
单独这么安排,你们可能看不出什么,咱们须要 Org Agenda
来配合食用。
咱们须要给它设置一个快捷键,而且将刚刚的文件加入到日程列表里(在 .spacemacs
配置):
;; 设置 Org Agenda 快捷键 (global-set-key (kbd "C-c a") 'org-agenda) ;; 加入到日程列表里 (setq org-agenda-files (list "~/org-mode/111.org"))
咱们用 Ctrl c + a
快捷键便可打开 Agenda,咱们按 a
选择查看当前周的任务状况。
同时咱们在对应的天按 d
便可进入对应天的状况。
有了 Agenda 以后,咱们就可以完成时间管理了,可是想记录每一个任务花了多少时间,那么就可使用 Org Clock
进行时间记录。
咱们将光标移动到想要进行时间记录的任务上,而后按 Ctrl c + Ctrl x + Ctrl i
就可以进行任务开始时间的记录了。
而后,当任务完成时,或者当任务须要暂定时,咱们就能够用 Ctrl c + Ctrl x + Ctrl o
进行记录。
能够看到咱们的任务的时间花费已经记录好了,而且这个时间记录能够屡次开始和结束。
刚刚咱们已经在每一个任务的开始和结束时打了时间戳,那咱们就能够很方便的生成一个时间花费的报表。
咱们进入到刚刚的 Agenda 界面,而后按下 v + R
就能够获得时间报告了。
这样就能够能够看到在任务上花费的时间统计报告了,同时咱们也能在 Agenda 里看到成天的任务计时状况,咱们在配置文件中加上下面的配置:
;; agenda 里面时间块彩色显示 ;; From: https://emacs-china.org/t/org-agenda/8679/3 (defun ljg/org-agenda-time-grid-spacing () "Set different line spacing w.r.t. time duration." (save-excursion (let* ((background (alist-get 'background-mode (frame-parameters))) (background-dark-p (string= background "dark")) (colors (list "#1ABC9C" "#2ECC71" "#3498DB" "#9966ff")) pos duration) (nconc colors colors) (goto-char (point-min)) (while (setq pos (next-single-property-change (point) 'duration)) (goto-char pos) (when (and (not (equal pos (point-at-eol))) (setq duration (org-get-at-bol 'duration))) (let ((line-height (if (< duration 30) 1.0 (+ 0.5 (/ duration 60)))) (ov (make-overlay (point-at-bol) (1+ (point-at-eol))))) (overlay-put ov 'face `(:background ,(car colors) :foreground ,(if background-dark-p "black" "white"))) (setq colors (cdr colors)) (overlay-put ov 'line-height line-height) (overlay-put ov 'line-spacing (1- line-height)))))))) (add-hook 'org-agenda-finalize-hook #'ljg/org-agenda-time-grid-spacing)
这样咱们就在 Agenda 经过 v + l
看到任务日志长这样子:
很是感谢您的阅读,欢迎关注、转发、分享支持我。