提高條目爲第一個孩子節點

「實戰Elisp」系列旨在講述我使用Elisp定製Emacs的經驗,拋磚引玉,還請廣大Emacs同好不吝賜教——若是真的有廣大Emacs用戶的話,哈哈哈。

序言

我用Emacs的org-mode來管理看動畫的進度git

org-mode中的動畫清單

每一個工做日的午飯和晚餐,我都會安排一部下飯動畫。爲了每頓飯能夠看不一樣的動畫,個人作法是:github

  1. 從清單的尾部選擇一部動畫(好比選中了《鬼滅之刃》);
  2. 在這部動畫下建立一個子節點(好比「觀看第17話」),設置爲TODO狀態,並設定SCHEDULED屬性爲次日的午飯或晚餐的時間;
  3. 把動畫的條目移動到當前父節點的第一個孩子節點的位置上(也就是排到《動物狂想曲》的上面),這樣接下來就不會當即再選到這部動畫來看了。

要移動到第一個孩子節點,能夠先剪切再粘貼,也能夠用org-mode提供的快捷鍵M-↑。但M-↑只能往上移動一級,若是要移動至第一個孩子節點的位置,就須要不停地按這個快捷鍵。爲了簡化這個步驟,我定義了一個新的命令和快捷鍵來代勞。函數

函數定義

這個函數很是簡單,只須要持續調用M-↑快捷鍵對應的命令,直到它出錯本身結束便可。爲了知道M-↑對應的是哪個函數,在一個主模式爲org-mode的buffer中,按下C-h k,再按下M-↑,能夠看到它對應的函數爲org-move-subtree-upoop

如今,能夠定義這個短小精悍的函數了動畫

(defun up-to-top ()
  "將當前條目一直移動到最上面"
  (interactive)
  (loop
   (org-move-subtree-up)))

我把它綁定到了快捷鍵C-c o u上spa

(define-key org-mode-map "\C-cou" 'up-to-top)

後記

用org-mode來記錄動畫的觀看進度,會在動畫的條目下建立出許多形如「觀看XX話」這樣的條目。若是是《鋼煉》這種六十多集的動畫,展開時看到這一大串子條目仍是頗爲震撼和困擾的。爲了解決這個問題,我在org-mode中還定製了一些其它功能,下次再給你們講解一下。3d

閱讀原文code

相關文章
相關標籤/搜索