Emacs的orgmode [tags]

tags

標籤(tags)在管理東西方面有很多應用。比如blog,flickr,前陣子還在小衆軟件上看到用標籤管理文件的軟件。

本身,我們在做org管理文件的時候就已經把不同的東西放在不同文件裏了。比如我們建了home.org,work.org兩個文件,把在家的工作做在home.org裏,把公司的放在work.org裏面。

但這種用文件來分類的方法有不便的地方:其一,如果我想到一個新的分類,那就必須新建一個文件;其二,如果我有一個工作同時屬於兩個文件,怎麼辦?

於是,tags來了。

tags只做一件事:標記這個項目是什麼?它的展示樣式是這樣的

TODO 跟特留尼西特握手                    :苦差:薪水:逃不掉:

你可以按C-c C-c組合鍵,這裏在mini buffer(就是下面的小框)會出現”Tags:”,等待你輸入標籤,支持中英文。

就是這麼簡單。

tags的繼承

如前所述,本來我們的想法是用文件來進行不同的分類的,也就是說實際上文件就是一種分類,放在work.org中的項目本來就應該擁有work屬性,我不想在每一個項目上添一個:work:的蛇足。

這就得說到tags繼承的org特性了。

tagsin

如圖,葉項目“新門”本身有一個屬性”苦差”,同時它繼續了兩個屬性,一個來自它的父項目apartment,還有一個來自文件屬件work。給一個文件設置屬性,需要在文件頭加上一行。

更簡單的方法

如果有一些常用的標籤不想每次都敲。可以使用orgmode的標籤快捷鍵功能.比如你可以用k來代表苦差,用s來代表薪水。跟很多org設置一樣,可以在兩個地方完成這些設置。

一個是.emacs文件。它的語法是這樣的。

(setq org-tag-alist '(("苦差" . ?k)
                            ("薪水" . ?s)))

還有一種做法是在文件的頭部加聲明。類似這樣:

#+FILETAGS: :work:

它們的分別在於,前者對於本機所有的org文件都有效。後者剛只對當前文件有效。

這時再給一個項目加標籤就會變成這樣

tagsshortcut

敲相應的快捷鍵就可以了。

搜索查看tags

使用tags來給項目打標籤當然不是爲了打打好看而已。我們是要用的。最常用的用法就是用tags來表示context的概念。

江湖傳言把事情分類來做能提高工作效率。即是說,如果你有十個電話要打,十個email要回。最好不要打一個電話回一封email再打一個電話再回一封email,比較好的做法是先打十個電話,然後再連回十個email。還有一個祕笈,是威爾史密斯在<當幸福來敲門>裏面教給我們的,如果你不把話筒放下來,能節約很多打電話的時間。

這就需要我們能夠把十個電話項目都取出來,在文件裏面一個一個找:phone:標籤?別傻了。敲一個C-c a吧,然後再敲m,下方的mini buffer裏出現了幾個大字”MATCH:”,這裏輸入”phone”,回車。你的列表中所有文件裏的帶有phone標籤或者屬性的項目就都列出來了。不想要所有項目,只想看TODO?簡單,C-c a後不要加m,加個M吧。

輸入關鍵詞的時候還可以使用與或非運算,算符如下:phone&work,同時有兩個標籤的。phone|work,有兩個標籤之一的。phone-work有phone標籤而沒有work標籤的。

這裏,C-c a表示你要求調出agenda view,後面那個命令則指明你想要調出什麼樣的view。敲後C-c a之後,不要急着敲m,可以看看org都提供了哪些view,我們熟知的有C-c a a,C-c a t等。

不要每次都輸關鍵字

這樣看起來,C-a a a也是一種檢索,只不過它們是org-mode內置而已,那我也有一些數據視圖是經常要用的,有一些是沒事就搜一下的。我也要敲三個鍵就弄出來,不想每次都敲tags。

嘿嘿,改源碼把我自己的搜索置進去。倒是不用着急,讀代碼總是麻煩的。事實上org-mode已經開放了一個自定義view的接口。喚作org-agenda-custom-commands。可以在.emacs文件中設置自己的。

(setq org-agenda-custom-commands
'(("k" "work haha"
((agenda "")
(tags-todo "work")
(tags-todo "支持")))))

這段代碼表示您定了一個可以用C-c a k 調出來的view,它的描述是”work haha”,view中包含三段數據。最上面是agenda,就是調C-c a a出來的界面,然後一個分隔行,列出tags爲“work”的項目,再一個分隔行,列出tags爲支持的項目。

caak

官方的說法是提供了一個GUI界面,M-x customize-variable RET org-agenda-custom-commands可以打開。界面如下:

GUIconfig

但我個人還是喜歡使用.emacs文件手寫配置。不是我裝13,而是GUI界面設計得實在太難用了,我到現在也沒弄明白它的用法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章