首页 > 代码库 > Emacs常用命令

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)

 

Emacs常用命令