org mode的沧海遗珠
本文翻译自:https://yiufung.net/post/org-mode-hidden-gems-pt1/ https://yiufung.net/post/org-mode-hidden-gems-pt2/ 翻译过程中有节选,有增加的内容,建议大家还是去看原文。 作者是一位香港同胞,可以在他的主页上看到关于自己的介绍。
文档结构
避免隐藏区域编辑错误
可以编辑这个参数: org-catch-invisible-edits
这个参数有5种设置(直接复制自org的参数设置说明)
- nil
- Do not check, so just do invisible edits.
- error
- Throw an error and do nothing. 在…之后编辑的时候,在最下方会提示错误,不给编辑。
- show
- Make point visible, and do the requested edit. 会自动展开,让你完成编辑
- show-and-error
- Make point visible, then throw an error and abort the edit. 会自动展开,提示“user-error: Edit in invisible region aborted, repeat to confirm with text visible”再次输入任意字符会让你完成编辑。
- smart
- Make point visible, and do insertion/deletion if it is adjacent to visible text and the change feels predictable. Never delete a previously invisible character or add in the middle or right after an invisible region. Basically, this allows insertion and backward-delete right before ellipses. FIXME: maybe in this case we should not even show?
设置方法
(setq org-catch-invisible-edits 'show-and-error)
展开只显示标题
TAB
切换会在三个状态下显示
- 展开下一级
- 展开下层所有级
- 折叠
当我们展开下层所有级的时候,显示的内容会太多,这个时候就可以使用下面这个命令了。
org-kill-note-or-show-branches
这个命令可以只展开下层的所有标题,标题下的内容不会展开。默认绑定的键是 C-c C-k
自动复制标题,并添加递进时间戳
C-c C-x c
, org-clone-subtree-with-time-shift
感觉即是自动展开重复任务
在折叠时隐藏子标题之间的空行
org-cycle-separator-lines
(setq org-cycle-separator-lines 0)
普通标题转树
org-list-make-subtree
(bound to C-c C-*
).
设置普通列表的bullets
(setq org-list-demote-modify-bullet '(("+" . "-") ("-" . "+") ("*" . "+")))
增加缩进
(setq org-list-indent-offset 1)
普通list加说明
- plain list1 :: 可以给这个list也加上说明,这样就可以解决不能给list加详细文本说明的办法。
- plain list2
表格相关
excel一样的复制粘贴
M-x org-table-copy-rectangle M-x org-table-cut-rectangle M-x org-table-paste-rectangle
表格转换
org-table-create-or-convert-from-region
从网页复制过来的表格进行转化。作者提到了可能有些minor mode,如whitespace mode会在粘贴过程中自动将TAB转换成空格,建议在转换前先禁用相关模式。
表格中的特殊符号
作者对 https://orgmode.org/manual/Advanced-features.html 的说明 进行了说明,因为个人认为实在没有必要在 org mode中进行复杂的表格计算。
链接
第三篇是关于链接的:https://yiufung.net/post/org-mode-hidden-gems-pt3/
内部链接
内容来自 Rainer König 的视频
使用 CUSTOM_ID
<<LinkTarget1>>
[[LinkTarget1]]
* 链接指向的标题
:PROPERTIES:
:CUSTOM_ID: LinkTarget2
:END:
[[#LinkTarget2]]
* LinkTarget3
[[LinkTarget3]]
这是3种内部链接形式,如果同时出现,优先级从1-3,从高到低。
Radiolink
如果在org文件中出现以下的内容
<<<org>>>
此时并不生效,如果在 <<<>>>
之间 C-c C-c
,那在这个文件中所有的 org
这个字符都将变为链接,并指向 <<<org>>>
这个地方。
link abbreviation
https://orgmode.org/manual/Link-abbreviations.html
(setq org-link-abbrev-alist
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
("url-to-ja" . "http://translate.google.fr/translate?sl=en&tl=ja&u=%h")
("google" . "http://www.google.com/search?q=")
("gmap" . "http://maps.google.com/maps?q=%s")
("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST")))
有了上述的定义之后,就可以直接使用
[[google:搜索的关键字][这个是一个google的例子]]
在页面内创建一个google搜索的例子。