emacs cheatsheet

无插件emacs使用

~/.emacs配置

;; windows下禁止压缩字体缓存,要不然会很卡
(setq inhibit-compacting-font-caches t)

快捷键

移动光标,删除动作

快捷键 作用
C-p / C-n 光标上/下移动一行
C-b / C-f 光标左/右移动一个字符
M-b / M-f 光标左/右移动一个词
C-a / C-e 光标左/右移动到行首和行尾
C-d / del 删除光标前字符
C-k 删除光标到行尾的字符
M-k 删除光标到句号的字符

文件和缓冲区

快捷键 作用
C-x C-f 寻找一个文件(没有时候创建)
C-x C-s 保存
C-x C-w 另存为
C-x b 输入提示名,选择缓冲文件
C-x C-b 新窗口中显示缓冲区列表
C-x s 保存所有缓冲区文件
C-x k 关闭缓冲区

复制和粘贴

快捷键 作用
C-@ / C-SPACE 标记选择开始
C-w 剪切
M-w 复制
C-y 从内部或者系统的剪贴板粘贴
M-x cua-mode 使用常见快捷键C-c,C-v,C-x

搜索和替换

快捷键 作用
C-s / C-r 搜索/向前搜索
C-M-s / C-M-r 正则搜索/向前正则搜索
M-x replace-string RET 当前位置搜索至结尾并替换
M-x query-replace RET 当前位置搜索至结尾并询问替换

操作窗体

快捷键 作用
C-l 光标置于屏幕中央
C-v / alt -v 下/上 翻一屏
C-x 1 关闭其他窗口,保留一个
C-u 0 C-l 屏幕本行下翻到最顶端
C-x 2 分割窗口
C-x 3 垂直分割
M-x make-frame 新建窗口
C-x o 光标移到另一个窗格

其他

快捷键 作用
C-_ / C-x u 撤销/重做
C-x C-c 退出
C-g 取消指令
C-/ 撤销

org mode

快捷键

视图循环

快捷键 作用
tab 改变当前光标子树状态 FOLDED -> CHILDREN -> SUBTREE
S-tab 全局循环:使整个缓冲区在下列状态中循环OVERVIEW -> CONTENTS -> SHOWALL
C-u C-u C-u TAB 显示全部

稀疏树

快捷键 作用
C-c / 按提示选择稀疏书创建方式
C-c / r 触发后,会提示输入匹配串,并且将所有匹配的项显示成稀疏树。所有的匹配项都会高亮显示;按 C-c C-c 取消高亮。
#### 移动
快捷键 作用
----------------- ----------------
C-c C-n / C-c C-p 下一个标题/上一个标题
C-c C-f / C-c C-b 上一个同级标题 / 下一个同级标题
C-c C-u 回到上一级标题

结构编辑

快捷键 作用
M-RET 插入一个同级标题,在文本中则创建新的项
M-S-RET 插入一个和当前标题同级的 TODO 项
M-LEFT / M-RIGHT 当前标题提升/降低一个等级
M-S-LEFT / M-S-RIGHT 当前标题和他的子标题全部提升/降低一个等级
M-S-UP / M-S-DOWN 将当前标题上/下移动
C-c C-w 传送当前条目到另一个文件
C-x n s/w 将缓冲区视图局限到当前子树中/再次放宽视图

文本列表

Org 能够识别有序列表、无序列表和描述列表。

  • 无序列表项以‘-’、‘+’或者‘*‘开头。
  • 有序列表项以‘1.’、‘1)’或者开头。
  • 描述列表用‘::’将项和描述分开。
快捷键 作用
TAB 折叠项
M-RET 在当前级别插入一个项,有前缀时是强制新建一个标题
M-S-RET 插入一个带有复先框的项
M-S-UP/DOWN 将当前项和它的子项向上/下移动。如果列表是有序的,数字会自动改变
M-LEFT/M-RIGHT 提升/降低项的缩进,不包含子项
M-S-LEFT/RIGHT 提升/降低项的缩进,包含子项
C-c C-c 改变复选框状态
C-c - 循环改变列表的标志符号

脚注

脚注就是以脚注定义符号开头的一段话,要求放在第0列,不能有缩进 写法:[fn:数字] 一段话中放置脚注[fn:数字]中这是引用 [fn:数字] 写一段定义放在0列,是定义

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

表格

  • | 被看出一个表格开始
  • 当你在表格内部输入 TAB、RET 或者 C-c C-c 时表格都会自动调整
  • 以’|-’开头的一行会作为一个水平分隔行
  • 还有一个更快的方法就是键入|Name|Phone|Age,再 C-c RET
快捷键 作用
C-c C-c 调整表格,不移动光标
tab 调整表格,光标移动到下一个区域,或者新建一行
S-tab 上一个区域
RET 调整表格,光标移到下一行,必要时会新建一行
M-LEFT/RIGHT 左/右移当前整列
M-S-LEFT 删除当前整列
M-S-RIGHT 左边增加一整列
M-UP/DOWN 上/下移当前整行
M-S-UP 删除当前行
M-S-DOWN 在当前行上面添加一行。如果有前缀,则在下面添加一行
C-c - 在当前行下面添加一个水平线。如果带前缀,则在上面添加一行水平线
C-c RET 在当前行下面添加一个水平线。并将光标移动到下一行
C-c ^ 将表排序。当前位置所在的列作为排序的依据。排序在距当前位置最近的两个水平线之间的行(或者整个表)中进行

超链接

链接
[[link]]  
文本链接
[[link][description]]  

内部链接
[[mytarget][description]]
对应的目标<<mytarget>> 

目标链接
file:~/code/main.c::255                     进入到 255 行
file:~/xx.org::My Target                    找到目标‘<<My Target>>’
file:~/xx.org/::#my-custom-id               查找自定义 id 的项
快捷键 作用
C-c C-l 插入一个链接。当光标处于链接上时,你可以修改链接
C-c C-o 或者 mouse-1 或者 mouse-2 打开链接
C-c & 跳回到一个已记录的地址

TODO

  • 标题为TODO时就是一个todo项

  • 你可以在标题的任何地方插入‘[/]’或者‘[%]’。当每个子任务的状态变化时这些标记状态也会随之更新

快捷键 作用
C-c C-t / S-RIGHT/LEFT 将当前项的状态改变 unmarked->TODO->DONE
C-c / t 在稀疏树中显示 TODO 项
S-M-RET 在当前项下插入一个新的 TODO 项
C-c , A,B,C选择一个优先级,A最高,默认B
S-UP/DOWN 增加/减少当前标题的优先级
C-c C-c 切换复选框状态
M-S-RET 光标在文本列表项上时增加一个带有复选框的项

标签

  • 标签可以继承
快捷键 作用
C-c C-q / C-c C-c 为当前标题输入标签
C-c \ 搜索标签
C-c / m 用匹配标签搜索的所有标题构造一个稀疏树

时间/日期段

快捷键 作用
C-c . 插入时间
C-c ! 插入未激活的时
S-LEFT/RIGHT 将光标处的时间戳改变一天
S-UP/DOWN 改变时间戳中光标下的项
C-c C-d 在标题下面一行插入一个带有“DEADLINE”关键字的时间戳
C-c C-s 标题下面插入一个带有“SCHEDULED”关键字的时间戳