您的位置:首页 > 运维架构 > Linux

Emacs命令快速参考!!

2016-07-19 15:38 309 查看
转载自:http://blog.csdn.net/CherylNatsu/article/details/6536959

Emacs常用命令的汇总,来自Emacs参考卡片

 

注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是

C
Control
M
Alt
S
Shift
这三个键在Emacs里通常作为组合键的前导按键使用,也就是说,执行一条命令前可能需要按住这个键不放,比如搜索命令是C-s,要执行这个命令首先要按住Ctrl键不放,再按下字母s键;而打开文件命令是C-x C-f,要打开文件就必须按下Ctrl键不放,依次按下x和f(当然也可以按下Ctrl不放再按下x,放开,再按下Ctrl不放再按f);有的命令组合键和非组合键都要用到,比如保存所有文件是C-x s,需要按下Ctrl不放的时候按下x,然后放开所有按键,再按下s;也有两个组合按键一起使用的,比如使用正则表达式进行增量搜索的快捷键是C-S-%,这就要求你同时按下Ctrl和Alt不放开,再按下s。

 

 

启动Emacs

在有图形界面的环境下只需要在终端输入Emacs按回车或者找到启动emacs程序的图标打开就可以了。

在没有图形界面的环境或者伪终端下需要使用字符界面的Emacs可以输入emacs -nw,也就是增加一个-nw参数。

 

 

挂起Emacs
C-z
挂起在图形界面下通常是把Emacs窗口最小化的意思,而在字符界面下则是把Emacs挂起到后台后回到终端,比如在GNU/Linux字符终端下按C-z会回到shell,使用jobs命令可以列出你挂起的所有任务,使用fg可以返回以最后一次挂起的任务,fg %num可以选择回到任意一个被挂起的任务。

 

退出Emacs
C-x C-z
如果没有未保存的文件,那么这条命令会直接退出Emacs程序,否则它会提示是否保存文件。

 

 

文件

打开文件
C-x C-f
保存文件
C-x C-s
保存所有文件
C-x s
插入其他文件到当前缓冲区
C-x i
在当前缓冲区打开另一个文件
C-x C-v
另存为文件
C-x C-w
 

 

获取帮助

打开快速指南
C-h t
获取按键帮助
C-h k
获取函数帮助
C-h f
打开Emacs帮助手册
C-h r
 

 

错误恢复

放弃当前命令或终止正在执行的操作
C-g
恢复因系统崩溃而丢失的文件
M-x recover-file
撤销上一次操作
C-x u或C-_
还原缓冲区的内容
M-x revert-buffer
刷新屏幕
C-l
 

增量搜索

正向搜索
C-s
反向搜索
C-r
使用正则表达式正向搜索
C-M-s
使用正则表达式反向搜索
C-M-r
选择上一个搜索结果
M-p
选择下一个搜索结果
M-n
退出搜索并停留在当前搜索到的位置
RET
中止当前搜索
C-g
 

移动

移动的单位
向后
向前
字符
C-b
C-f
单词
M-b
M-f

C-p
C-n
当前行开头或结尾
C-a
C-e

M-a
M-e

M-{
M-}

C-x [
C-x ]
表达式
C-M-b
C-M-f
函数
C-M-a
C-M-e
缓冲区开头或结尾
M-<
M->
垂直滚动屏幕
C-v
M-v
水平滚动屏幕
C-x <
C-x >
滚动当前行到屏幕中央
C-u
C-l
指定行移动
M-g M-g
 
 

删除

删除的单位
向后
向前
字符
DEL
C-d
单词
M-DEL
M-d

M-0 C-k
C-k

C-x DEL
M-k
表达式
M-- C-M-k
C-M-k
删除当前行
C-S-DEL
 
删除区域
C-w
 
复制区域到删除环
M-w
 
删除到字符
M-z char
 
从删除环中拉回内容
C-y
 
从删除环中拉回更早期的内容
M-y
 
注:这里的DEL在你的键盘上可能是Backspace

 

标记

设置标记
C-@
在当前光标位置和标记处跳转
C-x C-x
设置单词标记
M-@
标记段
M-h
标记页
C-x C-p
标记表达式
C-M-@
标记函数
C-M-h
标记整个缓冲区
C-x h
 

查询替换

交互替换
M-%
使用正则表达式
M-x query-replace-regexp
在查询替换模式下:
 
替换当前项并跳转到下一项
SPC
替换当前项不跳转
,
不替换当前项并跳转到下一项
DEL
替换全部剩下的查询结果
!
回到上一个匹配结果
^
退出查询替换
RET
进入递归编辑(C-M-c退出)
C-r
 

多窗格

首先解释一下,Emacs里一个框(Frame)是值窗口系统中的一个窗口,一个窗格(Window)则是指显示在一个Frame

 

命令描述
窗格

删除所有其他窗格
C-x 1
 
垂直分割
C-x 2
C-x 5 2
删除当前窗格
C-x 0
C-x 5 0
水平分割
C-x 3
 
滚动其他窗格
C-M-v
 
切换到另一个窗格
C-x o
C-x 5 o
在其他窗格切换缓冲区
C-x 4 b
C-x 5 b
在其他窗格显示缓冲区
C-x 4 C-o
C-x 5 C-o
在其他窗格打开文件
C-x 4 f
C-x 5 f
在其他窗格以只读方式打开文件
C-x 4 r
C-x 5 r
在其他窗格打开目录
C-x 4 d
C-x 5 d
在其他窗格查找标签
C-x 4 .
C-x 5 .
窗格高度增加
C-x ^
 
窗格宽度减少
C-x {
 
窗格宽度增加
C-x }
 
 

格式化

缩进当前行
TAB
缩进区域
C-M-/
缩进表达式
C-M-q
增加缩进
C-x TAB
在当前位置后增加新行
C-o
当前位置到行尾的内容下移
C-M-o
删除当前位置附近的空行
C-x C-o
将当前行连接到上一行
M-^
删除光标附近的空白
M-/
 

大小写转换

单词转换为大写
M-u
单词转换为小写
M-l
单词转换为首字母大写
M-c
区域转换为大写
C-x C-u
区域转换为小写
C-x C-l
 

微型缓冲区

尽可能多地补全
TAB
补全至多一个单词
SPC
补全并执行
RET
显示可能的补全项
?
切换到上一个输入
M-p
切换到下一个输入
M-p
用正则表达式往后搜索历史记录
M-r
用正则表达式往前搜索历史记录
M-s
终止命令
C-g
 

缓冲区

选择另一个缓冲区
C-x b
列出所有缓冲区
C-x C-b
关闭一个缓冲区
C-x k
 

缓冲区

交换字符
C-t
交换单词
M-t
交换行
C-x C-t
交换表达式
C-M-t
 

 

 

交换

交换字符
C-t
交换单词
M-t
交换行
C-x C-t
交换表达式
C-M-t
 

拼写检查

见车当前单词拼写
M-$
检查区域内所有单词
M-x ispell-region
检查整个缓冲区
M-x ispell-buffer
 

标签

查找标签
M-.
查找下一个标签
C-u M-.
指定一个新标签
M-x visit-tags-table
在标签表内的所有文件用正则表达式搜索
M-x tags-search
在所有文件内运行查询替换
M-x tags-query-replace
继续最后一个标签搜索或查询替换
M-,
 

Shells

执行一个外部命令
M-!
在当前区域运行一shell命令
M-|
使用一个外部命令处理当前区域
C-u M-|
启动一个shell
M-x shell
 

矩形区域

复制矩形区域到寄存器
C-x r r
删除矩形区域
C-x r k
拉回矩形区域内容
C-x r y
插入一个矩形区域
C-x r o
清空矩形区域
C-x r c
矩形区域内每行内容替换为字符串
C-x r t
 

缩写

增加全局缩写
C-x a g
增加模式缩写
C-x a l
给这个缩写增加全局扩展
C-x a i g
给这个缩写增加模式扩展
C-x a i l
扩展缩写
C-x a e
动态扩展上一个单词
M-/
 

正则表达式

匹配换行符之外的任何字符
.
 
任意次重复
*
 
一次或一次以上重复
+
 
一次或一次也没有
?
 
转义字符
/c
 
分支
/|
 
分组
/(.../)
 
第n组
/n
 
单词开始或结束
/b
 
非单词开始或结束
/B
 
 
 
 
单位
开始
结束

^
$

/<
/>
缓冲区
/'
/'
 
 
 
字符类别
匹配
不匹配
字符集合
[ ... ]
[^ ... ]
单词
/w
/W
 

国际化字符集

指定语言
M-x set-language-environment
显示所有输入法
M-x list-input-methods
开启或禁用输入法
C-/
设置命令编码系统
C-x RET c
显示所有编码系统
M-x list-coding-systems
选择编码系统
M-x prefer-coding-system
 

信息

 

 

进入信息文档阅读器
C-h i
在信息文档中查找指定的函数或变量
C-h C-i
在节点中移动
 
  往前滚动
SPC
  反向滚动
DEL
  节点开始处
.
节点间移动
 
  下一个节点
n
  上一个节点
p
  上一层
u
  通过名字选择菜单项
m
  选择第n个菜单项
n
  填转到节点
f
  返回上一次所在的节点
l
  返回到目录节点
d
  通过名字跳转到任意节点
g
其他:
 
  进入快速指南
h
  退出信息文档
q
  用正则表达式搜索节点
M-s
 

 

寄存器

保存区域到寄存器
C-x r s
插入寄存器内容到缓冲区
C-x r i
保存当前位置到寄存器
C-x r SPC
跳转到保存在寄存器中的位置
C-x r j
 

键盘宏

开始记录键盘宏
C-x (
结束记录键盘宏
C-x )
执行最后一个宏
C-x e
追加内容到最后一个键盘宏
C-u C-x
给最后一个键盘宏命名
M-x name-last-kbd-macro
插入键盘宏的Lisp定义到当前缓冲区
M-x insert-kbd-macro
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Emacs cmd Linux