Emacs快捷键

Posted on 2010-08-20 16:01 无很 阅读(694) 评论(0)  编辑  收藏

基本命令

C-x C-c : 退出Emacs

C-x C-f : 打开一个文件,如果文件不存在,则创建一个文件

C-g : 取消未完成的命令

编辑

C-z (redefined): Undo;原来C-z是挂起Emacs(然后用fg命令调出);C-x u 是默认的命令; 移动一下光标,再C-z就可以redo

M-d : 删除光标后的词语

移动光标

C-v : 向前翻页

M-v : 向后翻页

M-r : 将光标移动到屏幕中间那行

C-a : 移到行首

M-a : 移到句首,从行首到句首之间可能有空格

C-e : 移到行尾

M-e : 移到句尾

M-{ : 向上移动一段

M-} : 向下移动一段

C-right : 向前移动一个单词

C-left : 向后移动一个单词

C-up : 向前移动一段

C-down : 向后移动一段

M-< : 移到整个文本开头

M-> : 移到整个文本末尾

C-u 数字 命令 : 执行多次(数字表示次数)该命令;“M-数字 命令” 也可以

M-x goto-line : 移动到某一行

C-l : 重绘屏幕,效果就是当前编辑行移动窗口中央

Buffer 相关

C-x k : 关闭当前buffer

C-x b : 切换到前一个编辑的buffer

C-x C-b : 列出当前所有buffer

C-x C-s : 保存当前buffer

C-x s : 保存所有未保存的buffer,会提示你是否需要保存

C-x C-w : 文件另存为

拷贝与粘贴

M-space (redefined): 设置mark; C-@ 是默认命令

C-w (redefined) : 剪切一块区域;如果没有设置mark,则是剪切一行

M-w (redefined) : 拷贝一块区域;如果没有设置mark, 则是拷贝一行

C-k : 从当前位置剪切到行尾

C-y : 粘贴

M-y : 用C-y拉回最近被除去的文本后,换成 M-y可以拉回以前被除去的文本。键入多次的M-y可以拉回更早以前被除去的文本。

C-x r k : 执行矩形区域的剪切

C-x r y : 执行矩形区域的粘贴

窗口操作

C-x 0 : 关闭当前窗口

C-x 1 : 将当前窗口最大化

C-x 2 : 垂直分割窗口

C-x 3 : 水平分割窗口

M-o (redefined) : 在窗口之间切换; C-x o 是默认命令

C-x 5 1/2/3/0 : 对frame类似的操作

C-x < : 窗口内容右卷

C-x > : 窗口内容左卷(这两个命令在垂直分割窗口后比较有用)

(C-u) C-x ^ : 加高当前窗口,如果有C-u,则每次加高4行

(C-u) C-x } : 加宽当前窗口

(C-u) C-x { : 压窄当前窗口

ESC C-v : 在其它窗口进行卷屏操作

搜索和替换

C-s : 向前搜索(增量式搜索);连续C-s,跳到下一个搜索到的目标

C-s RET : 普通搜索

C-r : 向前搜索

C-s RET C-w : 按单词查询

M-% : 查询替换,也就是替换前会询问一下

M-x replace-string : 普通替换

Tags

M-! etags .c .h : 创建TAGS文件

M-. : 跳到tag所在位置

M-x list-tags : 列出tags

Bookmark

C-x r m : 设置书签bookmark

C-x r b : 跳到bookmark处

帮助

C-h ? : 查看帮助信息

C-h f : 查看一个函数

C-h v : 查看一个变量

C-h k : 查看一个键绑定 (C-h c 也是查看键绑定,但是信息较简略)

C-h C-f : 查看一个函数的Info,非常有用

C-h i : 看Info

其它

C-M-\ : 对选中区域,按照某种格式(比如C程序)进行格式化

C-x h : 全部选中

M-! : 执行外部shell命令

M-x shell : 模拟shell的buffer

M-x term : 模拟terminal, C-c k 关闭terminal

C-x C-q : 修改buffer的只读属性

翻页
C-v 下一页
M-v 上一页
选择
M-h     选择段落
C-x h   全部选择
普通区块
C-SPC   M-x set-mark-command 单个位置set mark
C-@     同上
M-@     对word进行set Mark
M-w     先set Mark,移到光标,M-w就可以复制
C-w     剪切
矩形区块
用这些快捷键要先关闭cua-mode
C-x r t      用串填充矩形区域
C-x r o      插入空白的矩形区域
C-x r y      插入之前删除的矩形区域, 粘贴时,矩形左上角对齐光标
C-x r k      删除矩形区域
C-x r c      将当前矩形区域清空
寄存器
----------------------------------------------------------------------
光标位置和窗口状态
C-x r SPC <寄存器名>                   存贮光标位置
C-x r w <寄存器名>                     保存当前窗口状态
C-x r f <寄存器名>                     保存所有窗口状态
C-x r j <寄存器名>                     光标跳转
文本和数字
C-x r s <寄存器名>                     将连续区块拷贝到寄存器中
C-x r r <寄存器名>                     将矩形区块拷贝到寄存器中
C-u <数字> C-x r n <寄存器名>           将数字拷贝到寄存器中
C-x r i <寄存器名>                     在缓冲区中插入寄存器内容
M-x view-register                     查看寄存器内容
M-x list-registers                    查看寄存器列表
宏模式
C-x (                    开始一个宏的定义
C-x )                    结束一个宏的定义
C-x e                    执行宏
M-x name-last-kbd-macro  给最后一个宏命名
M-x insert-kbd-macro     在当前文件中插入一个已定义并命名过的宏
书签
C-x r m <name>           设置书签
C-x r b <name>           跳转到书签
C-x r l                  书签列表
M-x bookmark-delete      删除书签
M-x bookmark-load        读取存储书签文件
M-x bookmark-save        保存到文件
目录模式
----------------------------------------------------------------------
C-x d     M-x dired     启动目录模式
C-x C-d   简单目录

 

程序
C-x C-z 挂起程序
C-c C-x 退出程序
C-c k   关闭buffer
C-l     重画屏幕
C-g     结束命令,或者假死中恢复,也可以按3次ESC
文件
C-x C-s 保存
C-x C-w 另存为
C-x C-f 打开文件
C-x C-r 只读方式打开
C-x C-v 读入另外一个文件代替当前buffer的文件
C-x s   保存所有
C-x i   将文件的内容插入
M-x revert-buffer    恢复到原始状态
跳转
前/后     单位
C-f/b    字
M-f/b    词
C-a/e    行内
M-a/e    句
M-</>    文档
C-p/n    行间
M-{/}    段落
C-x ]/[  页
C-x C-x  文件内,mark之间
M-g g  跳到指定行
M-x goto-char 跳到指定字符
编辑
M-u       后面单词变为大写
M-l       后面单词变为小写
M-c       后面单词的首字母变大写
M-/       补全
C-j       从当前位置分成两行,相当于RET + tab
M-(       插入()
C-q tab   插入tab
C-q C-m   插入^M
M-;       插入注释
C-o       回车
删除
M-d   后一词
C-d   后一字
M-del 前一词
M-k   到句尾
M-"   前面的所有空白
M-z   删到指定字母处
C-k   删除到行尾
文本换位
C-t        字符
M-t        单词
C-x C-t    行
M-x transpose-* 其他命令
撤销
C-/
C-x u
C-_
C-z
重做
C-g M-x undo
C-g C-/
C-g C-z
C-g C-_
粘贴
C-y
C-v
tab/空格转换
M-x tabify
M-x untabify
让选择的区块自动对齐
M-x indent-region
其他命令
C-u <数字> <命令> 重复命令n次
M-<数字>   <命令> 同上
M-!     运行shell命令
C-u M-! 执行一条外部命令,并输出到光标位置
M-x cd  改变工作目录
M-x pwd 当前工作目录
C-" 启动输入法
M-` 菜单
F10 菜单
M-x eval-buffer 在.emacs的buffer中运行,重新加载emacs配置
查找替换
----------------------------------------------------------------------
C-r 向上查找
C-s 向下查找
C-s C-w 向下查找,光标位置的单词作为查找字符串
C-s C-y 向下查找,光标位置到行尾作为查找字符串
C-s RET <查找字符串> RET   非递增查找
C-s RET C-w              不受换行、空格、标点影响
C-M-s                    正则式向下查找
用向上查找命令就将上面命令的s替换为r
M-%   替换
C-M-% 正则式替换
y 替换当前的字符串并移动到下一个字符串
n 不替换当前字符串,直接移动到下一个字符串
! 进行全局替换,并要求不再显示
. 替换当前字符串,然后退出查找替换操作
q 退出查找替换操作,光标定位到操作开始时的位置
其他命令
M-x replace-*
M-x search-*
窗口
C-x 0 关掉当前窗口
C-x 1 关掉其他窗口
C-x o 切换窗口
C-x 2 水平两分窗口
C-x 3 垂直两分窗口
C-x 5 2 新frame
buffer
C-x C-b        查看
C-x b          切换
C-x C-q        设为只读
C-x k          删除
C-x left/right 切换


只有注册用户登录后才能发表评论。


网站导航: