忙成狗,閒成豬。 上半年個人狀態就是如此,爲了作出改變我找了不少的任務管理工具,好比奇妙清單、滴答清單(如今我還在用)等等,可是依然沒有知足個人需求。做爲一名精力旺盛的開發仔,我甚至一度有了本身擼一個知足本身需求的時間管理工具的想法,最後也草草了之。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
看到任務日誌長這樣子:
很是感謝您的閱讀,歡迎關注、轉發、分享支持我。