Emacs 笔记

1 Emacs 使用

1.0.1 编码变更

  • C-x <RET> f coding <RET> 变更当前buffer编码

Use coding system coding for saving or revisiting the visited file in the current buffer.

  • C-x <RET> c coding <RET> 修改紧接着下一个命令的编码

Specify coding system coding for the immediately following command.

  • C-x <RET> r coding <RET> 重新编码当前文件

Revisit the current file using the coding system coding.

  • M-x recode-region <RET> right <RET> wrong <RET> 转换代码区域编码

Convert a region that was decoded using coding

1.0.2 Bookmark

  1. C - x r m 设置书签。(bookmark-set)
  2. C - x r b 跳到书签。(bookmark-jump)

管理书签:   M - x list-bookmarks : 在当前窗口里列出所有书签。   按1或ret跳转到光标所在的书签里。d标记删除,x执行操作。u(for undelete)。r重命名书签。

1.0.3 窗口与缓冲区操作

操作 说明
C-x C-f "find"文件, 即在缓冲区打开/新建一个文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
kill-some-buffers 关闭其他缓冲区
(global-set-key (kbd "C-x 4 /") 'winner-undo) 撤销重做窗口操作
(global-set-key (kbd "C-x 4 .") 'winner-redo)  
(global-set-key (kbd "M-p") 'ace-window) 窗口快速跳转
C-x 2/3 水平/垂直切分当前窗口
C-x 1 关闭其他窗口
C-x 0 关闭当前子窗口
C-M-v (scroll-other-window) 滚动下一个窗口
操作 说明
C-x 4 b bufname (switch-to-buffer-other-window) 在另一个窗口打开缓冲
C-x 4 C-o bufname (display-buffer) 在另一个窗口打开缓冲,但不选中那个窗口
C-x 4 f filename (find-file-other-window) 在另一个窗口打开文件
C-x 4 d directory (dired-other-window) 在另一个窗口打开文件夹
C-x 4 m (mail-other-window) 在另一个窗口写邮件
C-x 4 r filename (find-file-read-only-other-window) 在另一个窗口以只读方式打开文件
操作 说明
C-x ^ enlarge-window增高当前窗口
C-x { shrink-window-horizontally将当前窗口变窄
C-x } enlarge-window-horizontally将当前窗口变宽
C-x - shrink-window-if-larger-than-buffer如果窗口比缓冲大就缩小
C-x + balance-windows 所有窗口一样高
C-x C-s 保存文件

C-x w 上下左右

1.0.4 格式化

C-M-\

1.0.5 基本快开/新建一个文件

C-x C-s 保存文件
C-x C-w 使用其他文件名另存为文件
C-z 挂起emacs
C-x C-c 关闭emacs

1.0.6 光标移动基本快捷键(Basic Movement)

C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾

1.0.7 编辑(Editint)

M-n 重复执行后一个命令n次
C-u 重复执行后一个命令4次
C-u n 重复执行后一个命令n次
C-d 删除(delete)后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除(kill)一行
C-Space 设置开始标记 (例如标记区域)
C-@ 功能同上, 用于C-Space被操作系统拦截的情况
C-w 移除(kill)标记区域的内容
M-w 复制标记区域的内容
C-y 召回(yank)复制/移除的区域/行
M-y 召回更早的内容 (在kill缓冲区内循环)
C-x C-x 交换光标和标记
C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写

1.0.8 重要快捷键(Important)

C-g 停止当前运行/输入的命令
C-x u 撤销前一个命令
M-x revert-buffer RETURN (照着这个输入)撤销上次存盘后所有改动
M-x recover-file RETURN 从自动存盘文件恢复
M-x recover-session RETURN 如果你编辑了几个文件, 用这个恢复

1.0.9 在线帮助(Online-Help)

C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h l 显示最后100个键入的内容
C-h w 显示命令被绑定到哪些快捷键上
C-h f 显示函数的功能
C-h v 显示变量的含义和值
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
C-h i 打开info阅读器
C-h C-f 显示emacs FAQ
C-h p 显示本机Elisp包的信息

1.0.10 搜索/替换(Seach/Replace)

快捷键 说明
C-s 向后搜索
C-r 向前搜索
C-g 回到搜索开始前的位置(如果你仍然在搜索模式中)
M-c (查找状态)切换大写敏感
C-j (查找状态)输入换行符
M-Tab (查找状态)自动匹配
C-w (查找状态)将光标处单词复制到查找区域
C-y (查找状态)将光标处直到行尾内容复制到查找区域
M-y (查找状态)把kill 环中最后一项复制到查找区域
C-M-w (查找状态)删除查找区域最后一个字符
C-M-y (查找状态)将光标处字符复制到查找区域最后
C-f (查找状态)将光标处字符复制到查找区域最后
replace-string 全文替换
replace-regexp 全文正则替换
M-% 询问并替换(query replace)
Space或y 替换当前匹配
Del或n 不要替换当前匹配
. 仅仅替换当前匹配并退出(替换)
, 替换并暂停(按Space或y继续)
! 替换以下所有匹配
^ 回到上一个匹配位置
RETURN或q 退出替换

使用正则表达式(Regular expression)搜索/替换

可在正则表达式中使用的符号: 说明
C-M-s 向前进行正则查找
C-M-r 向后进行正则查找
M-x query-replace-regexp 使用正则表达式搜索并替换
^ 行首
$ 行尾
. 单个字符
.* 任意多个(包括没有)字符
\< 单词开头
\> 单词结尾
[] 括号中的任意一个字符(例如[a-z]表示所有的小写字母)
M C-s RETURN 使用正则表达式向后搜索
M C-r RETURN 使用正则表达式向前搜索
recursive-edit 进入递归编辑
abort-recursive-edit 退出递归编辑

1.0.11 宏命令(Macro-commands)

C-x ( 开始定义宏
C-x ) 结束定义宏
C-x e 运行最近定义的宏
M-n C-x e 运行最近定义的宏n次
M-x name-last-kbd-macro 给最近定义的宏命名(用来保存)
M-x insert-kbd-macro 将已命名的宏保存到文件
M-x load-file 载入宏

1.0.12 编程(Programming)

M C-\ 自动缩进光标和标记间的区域
M-m 移动光标到行首第一个(非空格)字符
M-^ 将当前行接到上一行末尾处
M-; 添加缩进并格式化的注释
C, C++和Java模式
M-a 移动光标到声明的开始处
M-e 移动光标到声明的结尾处
M C-a 移动光标到函数的开始处
M C-e 移动光标到函数的结尾处
C-c RETURN 将光标移动到函数的开始处并标记到结尾处
C-c C-q 根据缩进风格缩进整个函数
C-c C-a 切换自动换行功能(toggle-truncate-lines)
C-c C-d 一次性删除光标后的一串空格(greedy delete)
C-x C-e 执行光标处命令

1.0.13 版本控制(Version Control)

C-x v d 显示当前目录下所有注册过的文件(show all registered files in this dir)
C-x v = 比较不同版本间的差异(show diff between versions)
C-x v u 移除上次提交之后的更改(remove all changes since last checkin)
C-x v ~ 在不同窗格中显示某个版本(show certain version in different window)
C-x v l 打印日志(print log)
C-x v i 标记文件等待添加版本控制(mark file for version control add)
C-x v h 给文件添加版本控制文件头(insert version control header into file)
C-x v r 获取命名过的快照(check out named snapshot)
C-x v s 创建命名的快照(create named snapshot)
C-x v a 创建gnu风格的更改日志(create changelog file in gnu-style)

2 Gnus 新闻组

2.1 M-x gnus启动

2.2 快捷键

2.2.1 订阅

  1. A A (连续两次大写A),进入新闻组列表
  2. 选择要订阅的新闻组主题,使用u键订阅
  3. 退出 q

2.2.2 刷新

g

2.2.3 阅读

-Server buffer 按 ^ 进入 -回车进入定阅的新闻组 -使用空格阅读主题,并且空格可以翻页 -发新帖 a -跟贴 f -单独回信 r -标记所有的贴子为已读 Z C -获得旧贴子 / o

2.2.4 管理信箱

·刷新 g ·写信 m ·发信 C-c C-c ·保存草稿 C-x s ·关闭信 C-c C-d ·查看已读邮件 / o

2.2.5 其他快捷键

一、buffer操作。 1、 C-k 删除目前的一个组 C-y 吐出最后删除的一个组 C-x C-t 交换两个组 C-w kill region中的group

G n 新建一个group(加入新闻组较简单方法,但不能写入.gnus.el) G c 修改一个group的参数 G f 建立一个文件group(可以用来读取mbox文件或者读fetchmail的文件) G d 建立一个目录group

M-# 反标记一个group

T n 新建一个topic(分组目录) T r 重命名一个topic

g 检查是否有新的信息 M-g 检查当前组是否有新信息

二、Mark操作 !? 设置标志 d 删除标志 k 设置同一主题artical为已读

三、Limiting操作 /s 按主题 /a 按作者 /s 按headers /v 按分数 /t 按天数 /o 显示旧信息

四.邮件操作 C-c C-a 插入附件 K-o 保存附件 C-x i 插入文件

3 Dired 文件管理

  • 用dired打开当前目录: C-x d
  • dired中进入编辑模式: C-x C-q,可用于批量重命名
  • 返回当前目录: C-x C-j
  • 文件预览: v预览,q退出
  • 回到上一步的目录: q
  • 回到上一层目录: ^
  • 简单帮助: ?
  • 一般情况下前缀C-u代表反操作,可加数量

3.1 文件的定位

  • n: 移动至下一个文件或目录。
  • p: 移动至上一个文件或目录。
  • >: 移动至下一个目录。
  • <: 移动至上一个目录。
  • ^: 返回上一级。
  • M-{: 向下查看已标记。
  • M-}: 向上查看已标记。

3.2 文件的查看

  • s: 切换名称/日期排序方式
  • C-u s: 用ls进行排序,例如t-时间;S-大小;r-倒序;R-递归;X-扩展名;u-上次访问时间
  • i: 当前窗口插入一个子目录,C-u C-@返回
  • v: 在当前窗口预览选定文件,q退出
  • o: 在另外一个窗口查看文件
  • y: 查看当前文件类型
  • =: 比较文件,类似shell下diff
  • M - =: 比较文件和备份
  • M - o: 隐藏/显示部分次要文件,使缓冲更简便,若有前缀参数标记隐藏的文件 [ux]
  • $: 隐藏/显示当前目录中内容
  • M - $: 隐藏/显示缓冲中所有目录内容
  • k: 隐藏文件,按 g 可以再显示出来
  • l: 刷新缓冲文件
  • g: 刷新缓冲所有文件

3.3 文件的标记

  • 普通标记:
    • m: 标记(mark).
    • u: 取消标记
    • M-Backspace: 去掉缓冲中所有的某个标记,缺省为 * 标记
    • U: 取消所有标记
    • */: 标记所有文件夹
    • * s: 标记所有文件
    • **: 标记所有可执行文件
    • *@: 标记所有符号链接
    • *c: 改变标记的符号
    • %m: 标记文件名匹配正则表达式的文件
    • %g: 标记文件内容匹配正则表达式的文件
    • *.: 标记所有指定扩展名的文件
    • *? MARKCHAR 或 M-<DEL> 去除所有以 MARKCHAR(例如 *) 标记的文件的标记,如果 传递一个前缀参数,则会对每一个文件要求你确认是否去除标记。
    • t 标记反选,即所有原来标记为 * 的文件被置于未标记状态,原来未标记的 文件被标记为 * ,原来有其他标记的文件不受影响。
    • * c OLD-MARKCHAR NEW-MARKCHAR 将默认的*标记换成其他标记
  • 删除标记:
    • d: 标记为删除
    • ~: 将所有备份文件标记为删除
    • #: 将存盘文件标记为删除
    • & d: 根据正则表达式标记删除
    • X: 执行删除

3.4 其他操作

  • C: 拷贝文件
  • D: 删除文件
  • R: 重命名或移动文件
  • H: 创建硬链接。
  • S: 创建软链接。
  • M: 修改权限位,即 shell 里面的 chmod 命令。
  • G: 修改文件所属的组。
  • O: 修改文件的所有者。
  • T: 修改文件的修改时间,类似于 shell 命令 touch 。
  • P: 打印文件。
  • Z: 压缩或解压文件。
  • L: 把 Elisp 文件加载进 Emacs 。
  • B: 对 Elisp 文件进行 Byte compile 。
  • A: 对文件内容进行正则表达式搜索,搜索会在第一个匹配的地方停下,然后 可以使用 M-, 搜索下一个匹配。
  • Q: 对文件内容进行交互式的正则表达式替换。
  • w: 复制文件名
  • C-u 0 w: 复制选中文件的绝对路径
  • +: 创建目录
  • %u 和 %l: 重命名选中文件为大写、小写
  • %R: 根据正则批量重命名
  • %C: 根据正则批量复制

4 Erc 中继聊天

4.1 频道

  • #emacs
  • #ubuntu-cn
  • irc.mindforge.org:6669
  • ircchat.emule-project.net:6669 #emule-chinese #china

4.2 操作

/msg nickserv help 注册 nickname
/nick 名字 改名字
/names [频道] 查看当前[频道]所有用户
/whois 名字 查看某人资料
/whoami 自己
/who ip 常看某IP登录的所有用户
/Who channel 显示此频道的人
/Who * 显示参加当前频道的人
/join #房间名 加入这个房间,如果房间不存在,服务器可能会创建这个房间
/part #房间名 原因 离开房间,并留下原因
/quit 退出的原因 退出服务器,并留下原因
/away 原因 暂时离开,并留下原因
/invite 昵称 #房间名 邀请某人到指定房间
/kick #房间名 昵称 原因 剔出某人,附上原因,需要权限
/topic #房间名' 房间主题 如果你是房间主持人,可以改变房间的主题
/me 您要作的动作 向当前聊天室中发送一个动作 (动作使用第三人称陈述,例如 /me jumps)
/msg 昵称(或#房间) 有要说的话 向某人发信息
/query 昵称 要说的话 私聊
/notice 昵称(或#房间名) 要说的话  
/list 查看服务器上所有房间及主题
/list #ubuntu-cn 列出这个房间
/list -MIN a -MAX b 查看人数大于a小于b的房间
/list * abc * 所有行abc字符串的房间
/flush 终止当前命令的输出操作
/help 显示所有IRC命令
/join 加入/建立聊天室
/leave channel 离开某一频道
/mode +(-)i 锁住聊天室
/mode +(-)o 设定管理员权限
/knock 要求进入私人聊天室
/invite 邀请用户进入私人聊天室
/privmsg 悄悄话
/ignore 忽略
/topic 更换聊天室主题
/kick 把用户踢出聊天室
/quit 退出聊天室

6 org-mode

6.1 多状态工作流程

  • 定义工作状态
    (setq org-todo-keywords
         '((sequence "TODO(t)" "|" "DONE(d)")
           (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
           (sequence "|" "CANCELED(c)")))
    
    #+TODO: TODO(t) | DONE(d)
    #+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
    #+TODO: | CANCELED(c)
    

    C-c c-t 快速选择

  • 进度日志 插入完成时间 (setq org-log-done 'time) 插入完成时间与记录 (setq org-log-done 'note)
  • 跟踪TODO状态变化 对于状态记录,Org 可以实现基于每个状态关键字的设置。实现方法是在每个后的括号中指定“!”(记录时间戳)或“@”(作一个记录)。例如:
    #+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@)
    
  • 优先级 Org模式支持三个优先级别:’A‘、’B‘和’C‘。’A‘是最高级别,如不指定,’B‘是默认的。优先级只在议程中有用。
    C-c , 设置当前标题的优先级。按’‘’‘’‘选择一个级别,或者SPC删除标记(cookie)。
    S-UP S-Down 增加/减少当前标题的优先级。
  • [] 任务细分
  • 在标题的任何地方插入‘[/]’或者‘[%]’,可显示todo项完成数或百分比
  • 非列表标题项可在开头用[ ](未完成)或[X](完成)或[-](部分完成)加空格开头标记完成,C-c C-c切换完成状态

6.2 文件链接存储与使用

  1. M-x org-store-link 保存链接
  2. C-c C-l 创建链接
  3. C-c C-o org-open-at-point 打开链接
  4. C-c % 记录内部链接地址
  5. C-c & 跳转到已记录的内部链接

6.3 任务状态

  • S-LEFT S-RIGHT切换
  • C-c C-t完成

6.4 日历视图

  • C-c a n 打开日历
  • C-c C-s 开始时间
  • C-c C-d 截止时间

6.5 周期性的任务

如果是每周四都开会,就改写成如下的样子:

1w表示每周,另外1d表示每天,1m表示每月。对于周期性的任务, C-c C-t 每次将开始日期修改为相应的下一次开始日期,并保持 TODO 状态不变。 通常情况下,任务开始日期总是严格地按照预定间隔变动,但是当我们需要忽略掉已经过期的日期时,就可以使用 + 或者 . 来修饰时间间隔,如

的下一次日期一定是今天之后的第一个星期四,而

的下一次日期是按今天算起的下一个星期,也就是说,不一定是星期四;如果今天是星期二,那么下一次开始日期就是星期二。

6.6 记录工作时间

C-c C-x C-i 开始当前条目的计时(clock-in)。这会插入一个 CLOCK 关键字和一个时间戳。加上 C-u 前缀,从当前已经计时的任务中选择任务。
C-c C-x C-o 停止计时(clock-out)。这会在开始计时的地方插入另一个时间戳。它会直接计算使用时间并插入到时间段的后面如 “=> HH:MM”。
C-c C-x C-e 为当前的计时任务更新进度。
C-c C-x C-x 取消当前的计时。当你误操作打开一个计时时,或者转而去做其他事情时,这个命令就很有用。
C-c C-x C-j 跳转到包含当前正在运行的计时的任务条目。用 C-uf前缀从当前计时的任务中选择。
C-c C-x C-r 在当前文件插入一个包含像 Org 表格一样的计时报告的动态块。当光标正处于一个存在的块上时,更新它。
C-c C-c 在一个已经存在的计时表格之上时,更新它。 更新动态块。光标需要置于动态块 #+BEGIN 这行。

6.7 样式

*加粗*    加粗
/倾斜/    倾斜
_下划线_  下划线
n^{2}    上标
n_{2}    下标

6.8 抽屉

开头加上#+DRAWERS: HIDDEN
抽屉内容以
:HIDDEN:
...
:END:
包裹起来
则除非在抽屉当行按tab,抽屉永远收起

6.9 标签使用

  • C-c C-q 为当前标题输入标签,回车之后,标签会被插入,并放到第 org-tags-column 列。

如果用前缀 C-u,会把当前缓冲区中的所有标签都对齐到那一列。

  • C-c \ 搜索指定标签名
  • C-c / m 用匹配标签搜索的所有标题构造一个稀疏树

带前缀参数C-u时,忽略所有是 TODO 的标题

6.10 标签搜索

KEYS COMMENT
C-c \ 按tag搜索标题
C-c / m 搜索并按树状结构显示
C-c a m 按标签搜索多个文件(需要将文件加入全局agenda)

可以使用逻辑表达式限制条件,更准确灵活的搜索

+     和      a+b     同时有这两个标签
-     排除    a-b     有 a 但没有 b
|     或      a|b     有 a 或者有 b
&     和      a&b     同时有 a 和 b,可以用“+”替代

在查询视图中 C-c C-c 退出

6.11 脚注

脚注就是以脚注定义符号开头的一段话,脚注定义符号是将脚注名称放在一个方括号里形成的,要求放在第0列,不能有缩进。而引用就是在正文中将脚注名称用方括号括起来。

C-c C-x f 这是一个移动命令。当光标处理引用处时,跳转到它的定义;当光标处理定义处时,跳转到第一个引用处。其他情况下,新建一个脚注。当有前缀时,会提供一个菜单供选择操作,其中包括重新给脚注编号。
C-c C-c 在定义和引用之间跳转

6.12 大纲

  • 大纲间移动
操作 说明
C-c C-n/p 移动到下上一个标题(不管标题是哪一级)
C-c C-f/b 移动到同一级别的下/上标题
C-c C-u 跳到上一级标题
C-c C-j 切换到大纲预览状态
快捷键 说明
M-RET 插入一个同级标题
M-S-RET 插入一个同级TODO 标题
M-LEFT/RIGHT 将当前标题升/降级
M-S-LEFT/RIGHT 将子树升/降级
M-S-UP/DOWN 将子树上/下移
C-c * 将本行设为标题/正文
C-c C-w 将子树或区域移动到另一标题处(跨缓冲区)
C-x n s/w 只显示当前子树/返回
C-c C-x b 在新缓冲区显示当前分支(类似C-x n s)
C-c / 只列出包含搜索结果的大纲,并高亮,支持多种搜索方式
C-c C-c 取消高亮

6.13 列表操作

  • 列表操作快捷键

为了便利,org-mode也支持很多列表操作的快捷键,大部分都与大纲的快捷键类似:

快捷键 说明
TAB 折叠列表项
M-RET 插入项
M-S-RET 插入带复选框的项
M-S-UP/DOWN 移动列表项
M-LEFT/RIGHT 升/降级列表项,不包括子项
M-S-LEFT/RIGTH 升/降级列表项,包括子项
C-c C-c 改变复选框状态
C-c - 更换列表标记(循环切换)

6.14 表格

  • 创建和转换表格
快捷键 说明
C-c 竖线 创建或转换成表格
快捷键 说明
C-c C-c 调整表格,不移动光标
TAB 移动到下一区域,必要时新建一行
S-TAB 移动到上一区域
RET 移动到下一行,必要时新建一行
快捷键 说明
M-LEFT/RIGHT 移动列
M-UP/DOWN 移动行
M-S-LEFT/RIGHT 删除/插入列
M-S-UP/DOWN 删除/插入行
C-c - 添加水平分割线
C-c RET 添加水平分割线并跳到下一行
C-c ^ 根据当前列排序,可以选择排序方式
C-c = 编辑行计算公式
C-u C-c = 编辑列计算公式
C-u C-c C-c 计算整个表格
@5=vsum(@I..@II) 第5排的值为第一个与第二个分割线之间的数之和
$4=vsum($1..$3) 第4列的值为第1列到第3列的值之和

6.15 设置标记

  • #+TITLE:Emacs 笔记
  • #+AUTHOR: Hoothin
  • #+DATE: 1949年10月1日
  • 左右缩进引用
#+BEGIN_QUOTE
#+END_QUOTE
  • 文本居中
#+BEGIN_CENTER
#+END_CENTER
  • 包含其他文件
#+INCLUDE: "~/.emacs" src emacs-lisp
  • 行内代码
=#include <stdio.h>= 或者 ~#include <stdio.h>~
  • 单行代码
: include <stdio.h>    #单行代码块
  • 引用代码
#+begin_src xxx
……#+end_src
  • 支持语言
语言 标识符
Asymptote asymptote
Awk awk
Emacs Calc calc
C C
C++ C++
Clojure clojure
CSS css
ditaa ditta
Graphviz dot
Emacs Lisp emacs-lisp
gnuplot gnuplot
Haskell haskell
Java java
Javascript js
LaTeX latex
Ledger ledger
Lisp lisp
Lilypond lilypond
MATLAB matlab
Mscgen mscgen
Objective Caml ocaml
Octave octave
Org mode org
Oz oz
Perl perl
Plantuml plantuml
Python python
R R
Ruby ruby
Sass sass
Scheme scheme
GNU Screen screen
shell sh
SQL sql
SQLite sqlite
  • 引用html
#+BEGIN_HTML
<pre class="lang:xxx">
……
</pre>
#+end_html

6.16 属性

通过设置属性 “:Xyz_ALL:” ,你可以为属性 “:Xyz:” 设置所有 合法值 。这个特定的属性是有继承性的,即,如果你是在第 1 级别设置的,那么会被应用于整个树。当合法的值设定之后,设置对应的属性就很容易了,并且不容易出现打字错误。 例:

* CD collection
 :PROPERTIES:
 :NDisks_ALL: 1 2 3 4
 :Publisher_ALL: "Deutsche Grammophon" Philips EMI
 :END:

快捷键

C-c C-x p 设置一个属性。会询问属性名和属性值。
C-c C-c d 从当前项中删除一个属性。

6.17 归档

C-c C-x C-a 用变量 orgarchive-default-command 指定的命令归档当前的项。
C-c C-x C-s 或者简化为 C-c $ 将光标处的子树归档至 org-archive-location 指定的位置。

6.18 发布

命令 说明
C-c C-e C 提示指明一个项目,将所有的文件发布
C-c C-e P 发布包含当前文件的项目
C-c C-e F 只发布当前文件
C-c C-e E 发布所有项目

6.19 导出选项

  • #+TITLE: the title to be shown (default is the buffer name)
  • #+AUTHOR: the author (default taken from `user-full-name')
  • #+DATE: a date, fixed, of a format string for `format-time-string'
  • #+EMAIL: his/her email address (default from `user-mail-address')
  • #+DESCRIPTION: the page description, e.g. for the XHTML meta tag
  • #+KEYWORDS: the page keywords, e.g. for the XHTML meta tag
  • #+LANGUAGE: language for HTML, e.g. `en' (`org-export-default-language')
  • #+TEXT: Some descriptive text to be inserted at the beginning.
  • #+TEXT: Several lines may be given.
  • #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t …
  • #+BIND: lisp-var lisp-val, e.g.: org-export-latex-low-levels itemize You need to confirm using these, or configure `org-export-allow-BIND'
  • #+LINK_UP: the ``up'' link of an exported page
  • #+LINK_HOME: the ``home'' link of an exported page
  • #+LATEX_HEADER: extra line(s) for the LaTeX header, like \usepackage{xyz}
  • #+EXPORT_SELECT_TAGS: Tags that select a tree for export
  • #+EXPORT_EXCLUDE_TAGS: Tags that exclude a tree from export

其中#+OPTIONS可以指定选项有:

  • H: set the number of headline levels for export
  • num: turn on/off section-numbers
  • toc: turn on/off table of contents, or set level limit (integer)
  • \n: turn on/off line-break-preservation
  • @: turn on/off quoted HTML tags
  • :: turn on/off fixed-width sections
  • |: turn on/off tables
  • ^: turn on/off TeX-like syntax for sub- and superscripts. If you write "^:{}", `ab' will be interpreted, but the simple `a_b' will be left as it is.
  • -: turn on/off conversion of special strings.
  • f: turn on/off footnotes like this[ 1].
  • todo: turn on/off inclusion of TODO keywords into exported text
  • pri: turn on/off priority cookies
  • tags: turn on/off inclusion of tags, may also be `not-in-toc'
  • <: turn on/off inclusion of any time/date stamps like DEADLINES
  • *: turn on/off emphasized text (bold, italic, underlined)
  • TeX: turn on/off simple TeX macros in plain text
  • LaTeX: turn on/off LaTeX fragments
  • skip: turn on/off skipping the text before the first heading
  • author: turn on/off inclusion of author name/email into exported file
  • creator: turn on/off inclusion of creator info into exported file
  • timestamp: turn on/off inclusion creation time into exported file
  • d: turn on/off inclusion of drawers

6.20 org2blog

M-x org2blog/wp-login 会提示你要登陆哪个 blog
M-x org2blog/wp-new-entry 会使用设置的 template 打开一个 buffer
M-x org2blog/wp-post-buffer 保存成 draft
M-x org2blog/wp-post-buffer-and-publish 真实发布

7 Calendar

7.1 更改当前日期

q 退出calendar模式
C-f 让当前日期向前一天,前加数字可指定天数,下同
C-b 让当前日期向后一天
C-n 让当前日期向前一周
C-p 让当前日期向后一周
M-} 让当前日期向前一个月
M-{ 让当前日期向后一个月
C-x ] 让当前日期向前一年
C-x [ 让当前日期向后一年
C-a 移动到当前周的第一天
C-e 移动到当前周的最后一天
M-a 移动到当前月的第一天
M-e 多动到当前月的最后一天
M-< 移动到当前年的第一天
M-> 移动到当前年的最后一天

7.2 移动到特珠日期的方式

g d 移动到一个特别的日期
o 使某个特殊的月分作为中间的月分
. 移动到当天的日期
p d 显示某一天在一年中的位置,也显示本年度还有多少天。
C-c C-l 刷新Calendar窗口

7.3 生成LATEX代码

t m 按月生成日历
t M 按月生成一个美化的日历
t d 按当天日期生成一个当天日历
t w 1 在一页上生成这个周的日历
t w 2 在两页上生成这个周的日历
t w 3 生成一个ISO-SYTLE风格的当前周日历
t w 4 生成一个从周一开始的当前周日历
t y 生成当前年的日历

7.4 配置节日

h 显示当前的节日
x 定义当天为某个节日
u 取消当天已被定义的节日
e 显示所有这前后共三个月的节日。
M-x holiday 在另外的窗口的显示这前后三个月的节日。

7.5 特殊命令

S 显示当天的日出日落时间(大写)
p C 显示农历可以使用
g C 使用农历移动日期可以使用

7.6 创建事件

d 显示被选中的日期的所有事件
s 显示所有事件,包括过期的,未到期的等等
i d 为当天日期添加一个事件
i w 为当天周创建一个周事件
i m 为当前月创建一个月事件
i y 为当前年创建一个年事件
i a 为当前日期创建一个周年纪念日
i c 创建一个循环的事件

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注