Emacs基本操作
主要定制编辑器主要围绕这些基础操作,所以必须先了解 Emacs
基本的操作使用。基本上把常用的快捷键都列出来了,后续主要是针对这些基础操作的升级改造,自定义一些方便,容易记住的快捷键。
Emacs的快捷键都是绑定在 Ctrl
和 Alt
(或称 Meta
)上的,例如 C-x
就是 Ctrl+x
, M-x
就是 Alt+x
或者 Esc+x
。
文件操作
快捷键 |
说明 |
C-x C-f |
打开文件 |
C-x C-s |
保存文件 |
C-x C-w |
存为新文件 |
C-x C-c |
退出Emacs |
编辑操作
快捷键 |
说明 |
C-f |
前进一个字符 |
C-b |
后退一个字符 |
M-f |
前进一个字 |
M-b |
后退一个字 |
C-a |
移到行首 |
C-e |
移到行尾 |
M-a |
移到句首 |
M-e |
移到句尾 |
C-p |
后退一行 |
C-n |
前进一行 |
C-v |
向下翻页 |
M-v |
向上翻页 |
M-< |
缓冲区头部 |
M-> |
缓冲区尾部 |
C-l |
当前行居中 |
C-d |
删除一个字符 |
M-d |
删除一个字 |
C-k |
删除一行 |
M-k |
删除一句 |
C-w |
删除标记区域 |
C-t |
交换两个字符的位置 |
M-t |
交换两个单词的位置 |
C-y |
粘贴删除的内容 |
C-x |
h 标记所有文字 |
M-w |
复制标记区域 |
M-u |
使从光标位置到单词结尾处的字母变成大写 |
M-l |
与M-u 相反使从光标位置到单词结尾处的字母变成小写 |
M-c |
使从光标位置开始的单词的首字母变为大写 |
C-/ |
or C-x u 撤消操作 |
C-u |
重复执行后一个命令,输入一个重复的次数 |
C-u n |
重复执行后一个命令n 次 |
C-x u |
撤销前一个命令 |
C-x C-t |
交换两行的位置 |
M-g M-g |
跳到指定行 |
C-S-@ |
开启标记mark |
M-x revert-buffer RETURN |
撤销上次存盘后所有改动 |
M-x recover-file RETURN |
从自动存盘文件恢复 |
M-x recover-session RETURN |
如果你编辑了几个文件, 用这个恢复 |
M-C-\ |
自动缩进光标和标记间的区域 |
M-^ |
将当前行接到上一行末尾处 |
M-; |
添加缩进并格式化的注释 |
C-M-a |
移动光标到函数的开始处 |
C-M-e |
移动光标到函数的结尾处 |
C-c RETURN |
将光标移动到函数的开始处并标记到结尾处 |
C-c C-q |
根据缩进风格缩进整个函数 |
C-c C-a |
切换自动换行功能 |
C-c C-d |
一次性删除光标后的一串空格(greedy delete) |
M-. |
(点) 搜索标签 |
M-x tags-search ENTER |
在所有标签里搜索(使用正则表达式) |
M-, |
(逗号) 在tags-search 里跳至下一个匹配处 |
M-x tags-query-replace |
在设置过标签的所有文件里替换文本 |
执行SHELL命令
|
快捷键 说明 |
M-x |
shell 打开SHELL(执行任意命令都是用这个快捷键),切入shell模式 |
|
C-c C-c 类似unix 里的C-c(停止正在运行的程序) |
|
C-d 删除光标后一个字符 |
|
C-c C-d 发送EOF |
|
C-c C-u 删除当前行(unix 下的C-u) |
|
C-c C-z 挂起程序(unix 下的C-z) |
|
M-p 显示前一条命令 |
|
M-n 显示后一条命令 |
M-! |
执行SHELL命令 (shell-command) |
窗口操作
快捷键 |
说明 |
C-x 0 |
关闭本窗口 |
C-x 1 |
只留下一个窗口 |
C-x 2 |
垂直均分窗口 |
C-x 3 |
水平均分窗口 |
C-x o |
切换到别的窗口 |
C-x s |
保存所有窗口的缓冲 |
C-x b |
选择当前窗口的缓冲区 |
C-M v |
另外一个窗口向下翻页(需要对照时很好用) |
C-M-Shift v |
另外一个窗口向上翻页 |
C-x 4 f |
在其他窗格中打开文件 |
C-x 4 0 |
关闭当前缓冲区和窗格 |
C-x 5 2 |
新建窗口(frame) |
C-x 5 f |
在新窗口中打开文件 |
C-x 5 o |
切换至其他窗口 |
C-x 5 0 |
关闭当前窗口 |
C-x 5 b |
创建新窗格并显示另一个编辑缓冲区 |
缓冲区列表操作
快捷键 |
说明 |
C-x C-b |
打开缓冲区列表 |
C-x k |
关闭缓冲区 |
搜索模式
快捷键 |
说明 |
C-s |
向前搜索 |
C-s |
查找下一个 |
ENTER |
(回车键)停止搜索 |
C-r |
反向搜索 |
C-s |
C-w 以光标所在位置的字为关键字搜索 |
C-M-s |
向前正则搜索 |
C-M-r |
向后正则搜索 |
C-M-% |
正则交互替换 |
M-x replace-string ENTER search-string ENTER |
ENTER(回车键) 替换 |
Directory Editor (dired)
快捷键 |
说明 |
C-x d |
打开dired模式 |
|
C(大写C) 复制 |
|
d 标记等待删除 |
|
D 立即删除 |
|
e 或f 打开文件或目录 |
|
g 刷新当前目录 |
|
G 改变文件所属组(chgrp) |
|
k 从屏幕上的列表里删除一行(不是真的删除) |
|
m 用*标记 |
|
n 光标移动到下一行 |
|
o 在另一个窗格打开文件并移动光标 |
|
C-o 在另一个窗格打开文件但不移动光标 |
|
P 打印文件 |
|
q 退出dired |
|
Q 在标记的文件中替换 |
|
R 重命名文件 |
|
u 移除标记 |
|
v 显示文件内容 |
|
x 删除有D 标记的文件 |
|
Z 压缩/解压缩文件 |
|
M-Del 移除标记(默认为所有类型的标记) |
|
~ 标记备份文件(文件名有~的文件)等待删除 |
|
# 标记自动保存文件(文件名形如#name#)等待删除 |
|
*/ 用*标记所有文件夹(用C-u */n 移除标记) |
|
= 将当前文件和标记文件(使用C-@标记而不是dired 的m 标记)比较 |
|
M-= 将当前文件和它的备份比较 |
|
! 对当前文件应用shell 命令 |
|
M-} 移动光标至下一个用*或D 标记的文件 |
|
M-{ 移动光标至上一个用*或D 标记的文件 |
|
% d 使用正则表达式标记文件等待删除 |
|
% m 使用正则表达式标记文件为* |
|
+ 新建文件夹 |
|
> 移动光标至后一个文件夹 |
|
< 移动光标至前一个文件夹 |
|
s 切换排序模式(按文件名/日期) |
|
或许把这个命令归入这一类也很合适: |
M-x speedbar |
打开一个独立的目录显示窗口 |
书签命令(Bookmark commands )
快捷键 |
说明 |
C-x r m |
在光标当前位置创建书签 |
C-x r b |
转到书签 |
M-x bookmark-rename |
重命名书签 |
M-x bookmark-delete |
删除书签 |
M-x bookmark-save |
保存书签 |
M-x bookmark-load |
从指定文件导入书签 |
M-x bookmark-write |
将所有书签导出至指定文件 |
C-x r l |
列出书签清单,进入书签列表模式 |
|
d 标记等待删除 |
|
Del 取消删除标记 |
|
x 删除被标记的书签 |
|
r 重命名 |
|
s 保存列表内所有书签 |
|
f 转到当前书签指向的位置 |
|
m 标记在多窗口中打开 |
|
v 显示被标记的书签(或者光标当前位置的书签) |
|
t 切换是否显示路径列表 |
|
w 显示当前文件路径 |
|
q 退出书签列表 |
宏命令(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 |
载入宏 |
C-u C-x ( |
执行最后一次录制的宏,然后允许再增加新按键组合 |
C-x q |
在宏定义里面插入一个查询 |
C-u C-x q |
在宏定义里面插入一个递归编辑 |
C-M-c |
退出递归编辑 |
帮助
快捷键 |
说明 |
C-h t |
入门指南 |
C-h ? |
查看帮助列表 |
C-h c |
显示快捷键绑定的命令 |
C-h k |
显示快捷键绑定的命令和它的作用 |
C-h l |
显示最后100 个键入的内容 |
C-h w |
显示命令被绑定到哪些快捷键上 |
C-h f |
显示函数的功能 |
C-h v |
显示变量的含义和值 |
C-h m |
显示当前编辑缓冲区所在编辑模式的有关资料 |
C-h a |
这个概念涉及到哪些命令 |
C-h b |
显示当前缓冲区所有可用的快捷键 |
C-h i |
打开info 阅读器 |
C-h p |
显示本机Elisp 包的信息 |
C-h C-f |
显示emacs FAQ |