emacs org mode 中的标签全参考
把交叉的信息關(guān)聯(lián)起來的最好的方式就是打標(biāo)簽。 emacs 的 org 模式對標(biāo)簽的支持非常強(qiáng)大。
每一個標(biāo)題都可以在最后包含標(biāo)簽列表。標(biāo)簽由字母、數(shù)字、'_' 和 '@' 組成。標(biāo)簽的前后必需有一個冒號,比如 ':work:' 。也可以像 ':work:urgent:' 這樣聲明多個標(biāo)簽。標(biāo)簽?zāi)J(rèn)情況下是加粗的,并且和標(biāo)題擁有一樣的顏色。可以通過 org-tag-face 為特定的標(biāo)簽指定不同的樣式。
標(biāo)簽繼承
標(biāo)簽使用和標(biāo)題一樣的繼承結(jié)構(gòu)。如果一個標(biāo)題有標(biāo)簽,那么這個標(biāo)題的所有子標(biāo)題都擁有這個標(biāo)簽。如下面的列表所示:
* Meeting with the French group :work:** Summary by Frank :boss:notes:*** TODO prepare slides for him :action:雖然最后的標(biāo)題沒有聲明任何標(biāo)簽,但通過繼承,仍然擁有這些標(biāo)簽 ':work:', ':boss:', ':notes:', ':action:'。也可以用一個包圍整個文件有最高級別的標(biāo)簽來為所有的標(biāo)題設(shè)置一個公共的父標(biāo)簽。如下所示:
#+FILETAGS: :Peter:Boss:Secret:此外,要限定 標(biāo)簽 不能繼承自特定的標(biāo)簽時,可以通過? org-tags-exclude-from-inheritance 設(shè)置。要完全關(guān)閉標(biāo)簽繼承的話,要用 org-use-tag-inheritance
如果打開標(biāo)簽繼承,在進(jìn)行標(biāo)簽搜索時,如果匹配到了一個標(biāo)題,那么這個標(biāo)題樹下的所有標(biāo)題都會匹配上。搜索出的列表可能會非常長。如果你僅僅想看匹配到的第一個標(biāo)題的話,需要配置 org-tags-match-list-sublevels。
不管是在 tags 還是 tags-todo 議程中,通過標(biāo)簽進(jìn)行議程搜索時,標(biāo)簽繼承都很有意義。在其它的議程類型中, org-use-tag-inheritance 不起作用。然而,你可能希望標(biāo)簽繼承在議程中能夠正確設(shè)置,這樣能夠通過標(biāo)簽進(jìn)行過濾。設(shè)置 org-agenda-use-tag-inheritance 可以控制這一功能:默認(rèn)值包括所有的議程類型,但是將這個變量設(shè)置為 nil 可以在很大程度上加快議程的生成速度。
設(shè)置標(biāo)簽
可以直接在標(biāo)題的最后輸入標(biāo)簽。在輸入冒號后,M-TAG 提供了標(biāo)簽的自動補(bǔ)全和選擇功能。也有一個特定的快捷鍵來插入標(biāo)簽:
C-c C-q???????????????????????????? org-set-tags-command
為當(dāng)前的標(biāo)題輸入新的標(biāo)簽。Org 模式會提供自動完成或一個特定的單鍵界面來設(shè)置標(biāo)簽,具體看下面的說明。在輸入 RET 后,會為當(dāng)前標(biāo)題插入標(biāo)簽并齊到 org-tags-column. 當(dāng)輸入一個 C-u 前綴時,當(dāng)前緩沖區(qū)中的所有標(biāo)簽都會對齊到這一列,僅僅是看上去比對整齊,并且 TODO 的狀態(tài)也會發(fā)生變更(參見[[TODO%20Basics][TODO 基礎(chǔ)]])。
?? ?
C-c C-c???????????????????????????? org-set-tags-command
當(dāng)光標(biāo)在標(biāo)題上是,作用和 C-c C-q 相同
?? ?
Org 支持根據(jù)標(biāo)簽列表來插入標(biāo)簽。默認(rèn)情況下,這個列表動態(tài)創(chuàng)建,包含當(dāng)前緩沖中的所有標(biāo)簽。你也可以通過變量 org-tag-alist 來創(chuàng)建一個全局的標(biāo)簽列表。最后你可以通過下面的形式為一個文件設(shè)置默認(rèn)的標(biāo)簽:
如果你已經(jīng)用 org-tag-alist 定義了喜歡的全局標(biāo)簽, 但又想在一個特定的文件中使用動態(tài)標(biāo)簽,那么可以通過添加一個空的 TAGS 選項到這個文件來達(dá)到這個目的:
#+TAGS如果你想將預(yù)定義的全局標(biāo)簽添加到每一個文件的 TAGS 選項中,那么可以用 org-tag-persistent-alist 定義一個標(biāo)簽列表。這個選項可以在文件中通過 STARTUP 選項來關(guān)閉:
#+STARTUP: noptag默認(rèn)情況下,org 模式使用標(biāo)準(zhǔn)的 minibuffer? 來輸入標(biāo)簽 。然而,emacs 還提供了另外一種叫做 fast tag selection 的快速標(biāo)簽選擇方式。在這種方式下可以僅用一個鍵來完成標(biāo)簽的選擇和反選。要想使用這種方式,首先要為常使用的標(biāo)簽分配一個唯一字符。這個字符可以在 '.emacs' 中通過配置 org-tag-alist 來設(shè)置。比如,需要在很多文件中為很多項添加 ':home:' 標(biāo)簽。在這種情況下,可以這樣設(shè)置:
(setq org-tag-alist '(("@work" . ?w) ("@home" . ? h ) ("@laptop" . ?l)))如果標(biāo)簽僅僅和當(dāng)前使用的文件相關(guān),那么可以像下面這樣在文件中添加 TAGS 選項:
#+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p)標(biāo)簽接口會在一個 splash windows 中顯示可用的標(biāo)簽。如果想在一個特定的標(biāo)簽后換行,需要在標(biāo)簽列表中插入一個 '\n' 。
#+TAGS: @work(w) @home(h) @tennisclub(t) \n laptop(l) pc(p)或者將他們寫成兩行
#+TAGS: @work(w) @home(h) @tennisclub(t) #+TAGS: laptop(l) pc(p)也可以像下面這樣用大(花)括號手動將標(biāo)簽進(jìn)行分組
#+TAGS: { @work(w) @home(h) @tennisclub(t) } laptop(l) pc(p)在這種情況下,@work(w) @home(h) @tennisclub(t) 三個標(biāo)簽最多同時選擇一個
org 允許多個分組。
當(dāng)光標(biāo)在這些行上的時候,不要忘了按 C-c C-c 來激活其它修改。
如果要在 org-tags-alist 中設(shè)置排它的標(biāo)簽組,必需要用 :startgroup 和 :endgroup 標(biāo)簽對,而不是用大括號。類似的,可以用 :newline 來聲明一個新行。上面的例子也可以用下面的方式進(jìn)行設(shè)置:
如果至少為一個標(biāo)簽定義了快捷鍵,按 C-c C-c 時會展示一個特殊的界面,其中列出了當(dāng)前標(biāo)題已經(jīng)繼承了的標(biāo)簽,還包含一個可選的標(biāo)簽列表。這個界面提供了下面的快捷鍵:
- a-z...?????? 按這些鍵時會將對應(yīng)的標(biāo)簽添加到當(dāng)前的標(biāo)題列表中或從當(dāng)前的標(biāo)題列表中移除。選擇一個具體排它性的標(biāo)簽組時,會將標(biāo)簽組的其它標(biāo)簽移除。
- TAB??????? 在迷你緩沖區(qū)中輸入一個標(biāo)簽,即使這個標(biāo)簽不在預(yù)定義的標(biāo)簽列表中。對于緩沖區(qū)內(nèi)的標(biāo)簽,提供了自動完成。當(dāng)然也可以一次添加多個標(biāo)簽,只要把他們用冒號 ':' 分開。
- SPC??? ? ?? 清除這行的所有標(biāo)簽。
- RET?? ?? ?? 確認(rèn)修改
- C-g???????? 取消修改
- q?????? ???? 如果 /q/ 不是某一個標(biāo)簽的快捷鍵的話,效果和 *C-g* 相同。
- !??????????? 關(guān)閉組的排它性。這樣就可以分配一個組的多個標(biāo)簽。
- C-c??????? 在下次修改后(參見下面的詳細(xì)說明),切換 *auto-exit* 。如果是在專家模式下,第一個 *C-c* 會提供一個窗口。
在這種方式下,僅需要很少的幾個鍵就可以為標(biāo)題設(shè)置上標(biāo)簽。根據(jù)上面的設(shè)置,清除掉當(dāng)前的標(biāo)簽并設(shè)置 '@home','laptop' 和 'pc' 等幾個標(biāo)簽的話,僅需要下面的按鍵: C-c C-c SPC h l p RET 。從 '@home' 切換到 '@work' 僅需要 C-c C-c w RET 或者 C-c C-c C-c w 。要添加非預(yù)定義的標(biāo)簽 'Sarah' 話,按鍵順序是 C-c C-c TAB S a r a h RET RET 。
如果你發(fā)現(xiàn)在大部分時候,僅僅需要一個鍵去修改標(biāo)簽列表,那么可以設(shè)置 org-fast-tag-select-single-key 參數(shù)。這樣就不用按回車來退出快速標(biāo)簽選擇了——它會在第一次修改立刻退出。如果在個別情況下需要多個按鍵,按 C-c 為當(dāng)前的標(biāo)簽選擇關(guān)閉 auto-exit (實(shí)際上是用 C-c C-c C-c 開始了選擇而不是 C-c C-c )。如果將這個變量的值設(shè)置為 expert 那么除了多按一個 C-c 時,一般情況下在單鍵輸入標(biāo)簽時選擇窗口根本不會出現(xiàn)。
標(biāo)簽組
在一個排它的標(biāo)簽內(nèi),第一個標(biāo)簽可以定義為 組標(biāo)簽 。當(dāng)你搜索一個組標(biāo)簽的時候,會返回匹配組內(nèi)任意一個標(biāo)簽的所有項。在議程視圖中,通過組標(biāo)簽進(jìn)行過濾時,會展示至少包含一個組內(nèi)一個標(biāo)簽的標(biāo)題。這為標(biāo)簽搜索和過濾提供了很大的靈活性。
在標(biāo)簽組內(nèi),可以通過在組標(biāo)簽和其它標(biāo)簽間添加冒號來設(shè)置組標(biāo)簽——注意,所有的空格都不能省,這樣 *Org* 才能正確的解析。比如:
在這個例子中,@read 是標(biāo)簽集合 @read @read_book @read_ebook 的組標(biāo)簽。
也可以在設(shè)置 org-tag-alist 的時候直接通過 :grouptags 關(guān)鍵字設(shè)置組標(biāo)簽,比如:
組標(biāo)簽不能嵌套也不能是其它標(biāo)簽組的標(biāo)簽。
如果想臨時的忽略組標(biāo)簽,切換變量 org-toggle-tags-groups, 對應(yīng)的快捷鍵 C-c C-x q 。如果想完全禁用標(biāo)簽組,設(shè)置 org-group-tags 為空。
標(biāo)簽搜索?
一旦建立好了標(biāo)簽系統(tǒng),就能夠把標(biāo)簽相關(guān)的信息收集到一個特殊的列表中。
C-c / m 或 C-c \\???????????????????????????????? org-match-sparse-tree
創(chuàng)建一個包含搜索的標(biāo)簽的簡要標(biāo)題樹。 有 C-u 前綴時,忽略不是 TODO 的標(biāo)題欄。
C-c a m?????????????????????????????????????????? org-tags-view
創(chuàng)建一個在所有議程文件中符合搜索的標(biāo)簽的標(biāo)題列表。參見 [[Matching tags and properties]]
C-c a M?????????????????????????????????????????? org-tags-view
創(chuàng)建一個在所有議程文件中符合搜索的標(biāo)簽的標(biāo)題列表,但是僅僅檢查 TODO 項并且強(qiáng)制檢查子標(biāo)題(見 org-tags-match-list-sublevels )。
這些命令都會提示一個搜索字符串,并且允許常見的邏輯操作,比如 '+boss+urgent-project1' 會查找包含 'boss' 和 'urgent' 但不包含 'project1' 的標(biāo)題,又比如 'Kathy|Sally' 會查找包含 'Kathy' 或 'Sally' 的標(biāo)題。搜索字符串支持非常多的格式,并且允許根據(jù) TODO 關(guān)鍵字、標(biāo)題級別和屬性等進(jìn)行過濾。[[Matching tags and properties]] 有很多的例子和說明。
轉(zhuǎn)載于:https://www.cnblogs.com/btea/p/4412375.html
總結(jié)
以上是生活随笔為你收集整理的emacs org mode 中的标签全参考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职场的一些专业术语
- 下一篇: HDU 4023 (博弈 贪心 模拟)