ctags

快捷键 说明
M-. <RET> 跳转到光标所指的标签
M-. <tag> <RET> 查找一个特定的标签
C-u M-. 查找最近一个标签的下一个定义
M-* 跳回上次使用 M-. 的地方

ido-mode

快捷键 功能
C-s next
C-r previous
C-f 直接退出到打开文件的环境

这些是最基本的用法,在使用中,如果记不清楚如何用keys的地方,就用老方法查:

1
2
M-x describe-function RET ido-find-file RET
C-h f ido-find-file RET

Prelude

Prelude里定义的一些快捷键:

全局

按键绑定 说明
C-M-h 删除前一个单词(backward-kill-word)。(和 Bash/Zsh 一致的风格)
C-x \ align-regexp
C-+ 增大字号(text-scale-increase)
C-- 减小字号(text-scale-decrease)
C-x O 回到上一个窗口 (与 other-window (C-x o) 相反的顺序)
C-^ 合并两行为一行 (prelude-top-join-line)
C-x p 启动 proced (在Emacs下管理进程。只能工作在Linux下)
C-x m 启动 eshell
C-x M-m 启动默认的 shell
C-x C-m M-x 相同
C-h A 执行 apropos (在所有Emacs符号中搜索)
M-/ 执行 hippie-expand (dabbrev-expand 的替代品)
C-x C-b 打开 ibuffer (buffer-list 的替代品)
F12 开/关Emacs菜单
C-x g 打开 Magit 的状态缓冲
C-= 执行 expand-region (递增选择文本)
C-a 执行 prelude-move-beginning-of-line。关于这个命令的详细信息请查阅 这里

Prelude Mode

按键绑定 说明
C-c o 用一个外部程序打开当前访问的文件
C-c g 进入Google搜索 (默认搜索当前光标所在的文本)
C-S-RETM-o 在当前行下方插入一个空行并适当的缩进
S-RETM-O 插入一个空行并适当的缩进 (和大多数 IDE 一致)
C-S-up 将当前行上移(和上一行交换)
C-S-down 将当前行下移(和下一行交换)
C-c n 修正缓冲区里的缩进,并去除多余空格
C-c f 打开最近访问文件列表
C-M-\ 缩进选区(如果有选择文本)或整个缓冲区
C-c u 在默认浏览器中打开URL
C-c e 执行一段 Emacs Lisp 代码并用结果代替它
C-c s 交换两个活动窗口
C-c d 重制当前行(或选区)
C-c r 重命名当前访问的文件或缓冲
C-c t 打开一个终端模拟器 (ansi-term).
C-c k 关闭除了当前缓冲区外所有打开的缓冲区
C-c h 打开 Helm (一个实用的buffer和工程文件导航工具)

Projectile

下面是一系列由 Projectile 提供的功能:

按键绑定 说明
C-c p f 列举工程里的所有文件。如果带上一个前缀参数,则会首先清空缓存。
C-c p d 列举工程里的所有目录。如果带上一个前缀参数,则会首先清空缓存。
C-c p T 列举工程里所有测试文档(specs, features, etc)
C-c p g 在工程里运行 grep
C-c p o 在当前打开的所有工程缓冲里执行 multi-occur
C-c p r 对工程里的所有文件执行交互式查找-替换
C-c p i 使当前项目的缓冲无效(如果存在的话).
C-c p R 重新生成项目的 TAGS 文件
C-c p k 关闭所有工程的缓冲
C-c p D dired 打开当前工程的根目录
C-c p e 列举工程里最近访问的文件
C-c p a 在工程里执行 ack 命令,需要 ack-and-a-half
C-c p c 根据你的工程类型执行一个标准的编译命令
C-c p p 根据你的工程类型执行一个标准的测试命令
C-c p z 增加当前访问的内容到缓存
C-c p s 列举所有已知的工程项目,以方便快速切换

Important 如果忘记了 Projectile 的快捷键,只需要按下这个组合键:

C-c p C-h

组合键

按键绑定 说明
jj 跳转到单词的开头(ace-jump-word-mode)
jk 跳转到某一字符(ace-jump-char-mode)
jl 跳转到一行的开头(ace-jump-line-mode)
JJ 回退到上一个缓冲(prelude-switch-to-previous-buffer)
uu 用树的方式查看编辑历史(undo-tree-visualize)

查找替换

常用快捷键

按键绑定 说明
C-s 增量式查找
C-r 向后增量式查找
M-% 查找替换
C-M-% 支持正则表达式的查找替换

Emacs的正则表达式符合BASIC正则表达式规范。使用正则表达式进行查找替换时有一个很有用的技巧:如果需要保留原来与pattern匹配的字符,可以使用\&代替,例如:

1
2
3
C-M-%
^bc$
-&-

将会把内容为“bc”的行替换成“-bc-”。

常用快捷键

按键绑定 说明
C-x ( 开始录制宏
C-x ) 结束录制宏
C-x e 执行宏,如果已经选中一个选区,则只在选区中执行宏

两个有用的命令

命令 说明
M-x name-last-kbd-macro 命名上次定义的宏,之后可以直接M-x 宏名执行它
M-x insert-kbd-macro 插入一个已命名的宏,通常是在你的initialization文件里插入该宏,这样下次打开emacs后仍可用

有用的链接

  1. Emacs Ninty Tricks
  2. Emacs Keybindings
  3. Org Mode - Organize Your Life In Plain Text!

Comments