Emacs常用命令
1.离开Emacs
挂起Emacs |
C-z
|
退出Emacs |
C-x C-c
|
2.文件
打开文件
|
C-x C-f
|
保存文件
|
C-x C-s
|
保存所有的文件
|
C-x s
|
将一个文件的内容插入到当前buffer
|
C-x i
|
将当前文件替换为你需要的文件内容
|
C-x C-v
|
将当前buffer内容写到你要存的文件
|
C-x C-w
|
将当前buffer设为只读模式
|
C-x C-q
|
3.获取帮助
打开Emacs tutorial
|
C-h t
|
切换到当前Window
|
C-x 1
|
搜索包含某个字符串的帮助文档
|
C-h a
|
搜索某组快捷键的帮助文档
|
C-h k
|
搜索某个函数的帮助文档
|
C-h f
|
获取当前的mode信息
|
C-h m
|
查询所有以C-x开头的快捷键 |
C-x C-h
|
提示输入一个组合键,显示这个组合键绑定了什么命令
|
C-h c
|
浏览Info信息 |
C-h i
|
最近输入的300个组合按键
|
C-h l
|
查看绑定热键
|
C-h b
|
4.错误恢复
终止当前命令输入
|
C-g
|
恢复系统崩溃时丢失的文件
|
M-x recover-session
|
undo操作
|
C-x u,C-_,C-/
|
恢复buffer到最初的内容
|
M-x revert-buffer
|
清屏 |
C-l
|
5.增量搜索
前向搜索
|
C-s
|
后向搜索
|
C-r
|
查找状态切换大小写敏感
|
M-c
|
查找状态自动匹配
|
M-Tab
|
查找状态进入查找帮助
|
C-h C-h
|
查找状态将光标处直到行尾内容剪切到查找区域
|
C-w
|
查找状态将光标处直到行尾内容复制到查找区域
|
C-y
|
查找状态把kill 环中最后一项复制到查找区域 |
M-y
|
查找状态删除查找区域最后一个字符
|
C-M-w
|
查找状态将光标处字符复制到查找区域最后
|
C-M-y
|
向前进行简单查找
|
C-s Ret
|
向后进行简单查找
|
C-r Ret
|
向前进行词组查找
|
M-s w
|
向前进行词组查找(非增量方式)
|
M-s w Ret
|
向后进行词组查找(非增量方式)
|
M-s w C-r Ret
|
向前进行正则查找
|
C-M-s
|
向后进行正则查找
|
C-M-r
|
全文替换
|
M-x replace-string
|
全文正则替换
|
M-x replace-regexp
|
查找替换
|
M-x query-replace
|
进入递归编辑
|
M-x recursive-edit
|
退出递归编辑
|
M-x abort-recursive-edit
|
退出递归编辑
|
M-x top-level
|
6.移动
以字符为单位移动
|
C-f, C-b
|
以单词为单位移动
|
M-f, M-b
|
移动到行首,行末
|
C-a, C-e
|
移动到第一个非空格字符
|
M-m
|
移动到句子头,句子尾
|
M-a, M-e
|
移动到段落头,段落尾
|
M-{, M-}
|
翻页
|
C-v, M-v
|
到文件头和文件尾
|
M-<, M->
|
到文件的第 N 字节
|
M-x goto-char
|
到文件第 N 行
|
M-x goto-line,M-g g
|
设定 goal-column
|
C-x C-n
|
取消 goal-column
|
C-u C-x C-n
|
跳到函数首
|
C-M-a
|
跳到函数尾
|
C-M-e
|
跳到下一个同级语法结构
|
C-M-f
|
跳到上一个同级语法结构
|
C-M-b
|
7.删除
以字符为单位删除
|
DEL, C-d
|
以单词为单位删除
|
M-DEL, M-d
|
以行为单位删除
|
M-0 C-k,C-k
|
以段落为单位删除
|
C-x DEL,M-k
|
剪切
|
C-w
|
复制 |
M-w
|
粘贴 |
C-y
|
用上一次的剪切内容来粘贴
|
M-y
|
8.标记
从光标处设置标记
|
C-@,C-SPC
|
交换光标位置并标记 |
C-x C-x
|
标记单词 |
M-@
|
标记段落
|
M-h
|
标记页
|
C-x C-p |
标记sexp区块
|
C-M-@
|
标记函数
|
C-M-h
|
标记整个buffer
|
C-x h
|
9.替换
字符串替换
|
M-%
|
正则表达式替换 |
C-M-%
|
替换模式下一个一个替换 |
SPC,y
|
替换模式下只替换一个
|
, |
替换模式下不替换当前的直接跳到下一个
|
DEL,n
|
替换模式下替换所有
|
!
|
退出替换模式
|
RET
|
10.多Window
关闭其他Window(frame),只显示光标所在Window |
C-x 1, C-x 5 1
|
水平分割Window
|
C-x 2
|
垂直分割Window
|
C-x 3
|
打开新的frame
|
C-x 5 2
|
关闭当前Window(frame)
|
C-x 0,C-x 5 0
|
滚动其他Window
|
C-M-v
|
切换到其他WIndow(frame) |
C-x o,C-x 5 o
|
切换到其他buffer
|
C-x 4 b
|
在其他Window中显示buffer
|
C-x 4 C-o
|
在其他Window中打开文件
|
C-x 4 f
|
在其他WIndow中打开只读文件
|
C-x 4 r
|
在其他Window中打开目录
|
C-x 4 d
|
在其他WIndow中寻找tag
|
C-x 4 .
|
向下拉伸Window |
C-x ^
|
向左缩小Window
|
C-x {
|
向右拉大Window
|
C-x }
|
11.格式化
缩进(依赖mode) |
TAB
|
区域缩进(依赖mode)
|
C-M-\
|
sexp缩进(依赖mode)
|
C-M-q
|
添加注释
|
M-;
|
在光标之后添加新行
|
C-o
|
删除空白函
|
C-x C-o
|
删除光标周围所有的空白
|
M-\
|
设置外观
|
M-o
|
12.大小写
单词大写 |
M-u
|
单词小写
|
M-l
|
首字母大写
|
M-c
|
区域大写
|
C-x C-u
|
区域小写
|
C-x C-l
|
13.MiniBUffer
补全 |
TAB
|
补全单词
|
SPC
|
执行
|
RET
|
显示可能的执行
|
?
|
上一次minibuffer的输入
|
M-p
|
后一次minibuffer的输入
|
M-n
|
在minibuffer中向后搜索
|
M-r
|
在minibuffer中向前搜索
|
M-s
|
结束在minibuffer中的输入
|
C-g
|
14.Buffer
选择buffer
|
C-x b
|
列出所有的buffer
|
C-x C-b
|
关闭当前buffer
|
C-x k
|
15.置换
置换字符
|
C-t
|
置换单词
|
M-t
|
置换行
|
C-x C-t
|
置换sexps区域
|
C-M-t
|
16.拼写检查
当前单词拼写检查
|
M-$
|
区域中的单词检查
|
M-x ispell-region
|
buffer中的单词检查
|
M-x ispell-buffer
|
17.Tag
查找一个tag
|
M-.
|
查找下一个tag
|
C-u M-.
|
指定一个tag文件
|
M-x visit-tags-table
|
递归搜索整个tag文件 |
M-x tags-search
|
tag查找替换
|
M-x tags-query-replace
|
继续最后一次tag查找或替换
|
M-,
|
18.Shells
执行一个shell命令
|
M-!
|
在当前区域中执行shell命令
|
M-|
|
开启一个shell窗口
|
M-x shell
|
19.矩形区域
复制一个矩形区域到寄存器
|
C-x r r
|
删除一个矩形区域
|
C-x r k
|
粘贴一个区域
|
C-x r y
|
插入一个矩形块,字符右移
|
C-x r o
|
清除一个矩形块,使其成为空白字符
|
C-x r c
|
在选中的矩形块中插入指定的字符
|
C-x r t
|
20.缩写
添加全局缩写
|
C-x a g
|
添加某个mode的缩写
|
C-x a l
|
动态扩展上一个单词
|
M-/
|
21.正则表达式
代替任何字符除换行符
|
.
|
替换0个或多个字符
|
*
|
替换1个或多个字符
|
+
|
替换0个或1个字符
|
?
|
正则表达式字符c
|
\c
|
或
|
\|
|
分组
|
\(\)
|
行首
|
^
|
行尾
|
$
|
单词首
|
\<
|
单词尾
|
\>
|
buffer首
|
\'
|
buffer尾
|
\' |
包含的字符组
|
[...]
|
不包含的字符组
|
[^...]
|
22.字符编码
设置语言环境
|
C-x RET l
|
显示输入法
|
M-x list-input-methods
|
开启关闭输入法
|
C-\
|
设置编码环境
|
C-x RET c
|
显示编码系统
|
M-x list-coding-systems
|
选择喜欢的编码系统
|
M-x prefer-coding-systems
|
23.Info
进入Info文档 |
C-h i
|
在Info文档中搜索特定的函数和变量
|
C-h S
|
24.寄存器
将当前区域保存到寄存器中
|
C-x r s
|
将寄存器内容插入到buffer中
|
C-x r i
|
保存当前点到寄存器中
|
C-x r SPC
|
跳转到某个寄存器
|
C-x r j
|
25.按键宏
开始定义按键宏
|
C-x (
|
结束按键宏定义
|
C-x )
|
执行最后定义的按键宏
|
C-x e
|
添加到最后的按键宏 |
C-u C-x (
|
命名最后一个按键宏
|
M-x name-last-kbd-macro
|
在buffer中插入lisp定义
|
M-x insert-kbd-macro
|
26.用Elisp处理命令
在当前点执行lisp语句
|
C-x C-e
|
执行当前函数
|
C-M-x
|
执行当前区域
|
M-x eval-region
|
从minibuffer读取命令并且执行
|
M-:
|
载入标准系统库
|
M-x load-library
|
27.简单的配置
打开配置页面
|
M-x customise
|
设置键绑定
|
(global-set-key (kbd "C-c g") 'search-forward)
|
28.编写命令
命令编写模板 |
(defun command-name (args)
"documention" (interactive "template")
body)
|
-------------------------------
问道,修仙
-------------------------------