7.7 KiB
快速入门 Org Mode
(由于 GitHub 对 Org 的支持不完整, 你可以在 Emacs 或 VS Code 中阅读本文件,
更好的做法是阅读导出的 HTML 版本.)
关于文档自身
允许在文件的 最开头 添加附属信息:
#+title: 标题 (比一级标题还要高一级)
#+author: 作者
#+date: 年年年年-月-日
正文 ... ...
键位
导出 | C-c C-e |
折叠标题 | <tab> |
结构化文本
标题层次
顶格写 ‘=*=’ , 并续上至少 1 个空格, 表示一级标题.
星号 (*
) 的数量代表标题的级数.
二级标题从属一级标题, 以此类推.
列表
列表序号
有序列表用 +=/
-=, 无序列表用 =1.=/=A.=, 可以嵌套:
A. 植物 + 水果
1. 桃子
+ 谷物
- 大米
B. 动物
给列表打标
可以给列表的表项添加 勾选框 ([ ]
), 也可以加 tag:
- [ ] 买橘子
- 作业 :: 写数学作业
- [ ] 锻炼 :: 跑步
这样的列表提供了 交互式 操作, 见 /yetao/awesome-cheatsheets/src/commit/747012fcc3b2129dfe2c11ecb50b335cf3a64f0c/editors/%E4%BB%BB%E5%8A%A1%E6%B8%85%E5%8D%95.
排版
标记法
/斜体/ *粗体* +删除线+ _下划线_ 强制换行 \\
~代码~ =不是代码但需要等宽=
/*+_~组合~_+*/
S_{c} = \pi{}r_c^2
效果如下1:
斜体 粗体 删除线 下划线 强制换行
代码
不是代码但需要等宽
组合
Sc = πr_c^2
注意事项
内联标记时, 大部分情况下标记的两端必须保留 空白字符.
例如, ‘~code~’
中的 code
就不能正常渲染.
常见的做法是在 ‘这里~code~这里’
添加零宽字符.
比如, 在你的 Org 文件的 最尾端 写下:
正文 ... ...
# Local Variables:
# eval: (keymap-local-set "<f9>"
# "\N{ZERO WIDTH SPACE}")
# End:
当你的 Emacs 打开该文件时, 按下 <f9>
即输入 ‘零宽字符’.
链接
[[类型:定位][描述]]
其中, [描述]
是可选的.
内部链接 :linked:内部链接:
省略掉 类型:
, 定位
填入同一个文件的某个标题.
例如, [[内部链接]]
指向 /yetao/awesome-cheatsheets/src/commit/747012fcc3b2129dfe2c11ecb50b335cf3a64f0c/editors/%E5%86%85%E9%83%A8%E9%93%BE%E6%8E%A5 (也就是本小节).
块文本
使用 #+BEGIN_XXX
和 #+END_XXX
(无所谓大小写, 但大写显然更直观) 包裹文本, 赋予其特殊含义.
如果块中文本在行首出现了 *
或 #+
, 则 额外 添加一个 ,
.
下面是 我写的补全模板:
等宽块
#+BEGIN_EXAMPLE
ABCdef<>/;"
#+END_EXAMPLE
效果如下:
ABCdef<>/;"
代码块
等宽块仅仅是为了等宽, 而 代码块 允许你 在 Org 文件中运行代码 (见 /yetao/awesome-cheatsheets/src/commit/747012fcc3b2129dfe2c11ecb50b335cf3a64f0c/editors/%E6%96%87%E5%AD%97%E7%BC%96%E7%A8%8B). 这一节仅展示语法.
#+BEGIN_SRC bash
ls
#+END_SRC
通过指定编程语言 (此例中是 Bash
), Org 会调用不同的程序 (编译并) 执行这段代码, 并且 (如果你有相关插件的话, 还会在导出时) 对其选择不同的高亮方案.
单行代码
# 任意数量的额外的缩进
: assume cs:code, ss:stack
效果如下 (没有高亮):
assume cs:code, ss:stack
代码块行号
#+BEGIN_SRC Language -n 第一行的行号 (缺省为 1) #+BEGIN_SRC Language +n 第一行的行号比上一个代码块最后一行的行号多的数值 (缺省为 1)
诗句块
保留 缩进 与 换行.
#+BEGIN_VERSE
我的前面有五个空格
这边只有两个
---佚名
#+END_VERSE
效果如下:
我的前面有五个空格 这边只有两个 —佚名
引用块
使用 #+BEGIN_QUOTE
.
居中块
#+BEGIN_CENTER
Thank you, \\
shynur
<one.last.kiss@outlook.com>. \\
August 12, 2023
#+END_CENTER
效果如下:
Thank you,
shynur <one.last.kiss@outlook.com>.
August 12, 2023
表格
不带字段的表格
| 我是 | 一个 | 只由 |
| 两行 | 组成的 | 表格 |
效果如下:
我是 | 一个 | 只由 |
两行 | 组成的 | 表格 |
带字段的表格
| 年龄 | 职业 | ID |
|------+------+--------+
| 24 | 学生 | 114514 |
效果如下:
年龄 | 职业 | ID |
---|---|---|
24 | 学生 | 114514 |
LaTeX
交互
任务清单 :linked:给列表打标:
在 标题 前加上 TODO
关键字,
可选地加上优先级 [#字母]
, 可选地在末尾加上 [%]
:
*** TODO [#B] 示例 [%]
- [ ] TAG1 :: 未完成
- [-] 正在进行中
- [ ] TAG1 :: 等会完成
在 Emacs 中, 将光标置于第三个任务中, 键入 C-c C-c
将会勾选 [X]
并更新任务进度,
见 /yetao/awesome-cheatsheets/src/commit/747012fcc3b2129dfe2c11ecb50b335cf3a64f0c/editors/%E4%BB%BB%E5%8A%A1%E6%B8%85%E5%8D%95%E7%A4%BA%E4%BE%8B.
TODO
[B]
任务清单示例 [33%]
:linked:任务清单:
- TAG1
- 未完成
- ?
- 正在进行中
- TAG1
- 等会完成
全部完成后, TODO
关键字会变成 DONE
.
文字编程 :linked:代码块:
注解
脚注
注释
单行注释
顶格写 #一个空格
:
# 这是注释.
内联注释
你@@comment:这是注释@@好!
块注释
#+BEGIN_COMMENT
这里是注释.
这里也是!
#+END_COMMENT
这里是真的注释.
这里也是!
结构化注释
* 大标题
** COMMENT 大批注
*** 小批注
批注...
** 小标题
COMMENT 批注
子批注
批注 … …
下一步
支持 Org Mode 的软件
编写 Org 文件
-
Vim
org.vim
vim-orgmode
orgmode.nvim
-
Visual Studio Code
vscode-org-mode
-
Atom
org-mode
格式转换
导入导出
- Pandoc
- Drupal converter
- ox-hugo
- ox-*
- VimWiki
- Exchange calendars
发布博客
- Hugo
- Org-Jekyll
- o-blog
- Org2Blog