`
mryufeng
  • 浏览: 982783 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Emacs快捷键列表

阅读更多
原文地址: http://aifreedom.com/technology/112
Emacs快捷键列表
本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

C = Control
M = Meta = Alt | Esc
Del = Backspace

基本快捷键(Basic)
C-x C-f "find"文件, 即在缓冲区打开/新建一个文件
C-x C-s 保存文件
C-x C-w 使用其他文件名另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-z 挂起emacs
C-x C-c 关闭emacs

光标移动基本快捷键(Basic Movement)
C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾

编辑(Editint)
M-n 重复执行后一个命令n次
C-u 重复执行后一个命令4次
C-u n 重复执行后一个命令n次
C-d 删除(delete)后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除(kill)一行

C-Space 设置开始标记 (例如标记区域)
C-@ 功能同上, 用于C-Space被操作系统拦截的情况
C-w 移除(kill)标记区域的内容
M-w 复制标记区域的内容
C-y 召回(yank)复制/移除的区域/行
M-y 召回更早的内容 (在kill缓冲区内循环)
C-x C-x 交换光标和标记

C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写

重要快捷键(Important)
C-g 停止当前运行/输入的命令
C-x u 撤销前一个命令
M-x revert-buffer RETURN (照着这个输入)撤销上次存盘后所有改动
M-x recover-file RETURN 从自动存盘文件恢复
M-x recover-session RETURN 如果你编辑了几个文件, 用这个恢复

在线帮助(Online-Help)
C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h l 显示最后100个键入的内容
C-h w 显示命令被绑定到哪些快捷键上
C-h f 显示函数的功能
C-h v 显示变量的含义和值
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
C-h i 打开info阅读器
C-h C-f 显示emacs FAQ
C-h p 显示本机Elisp包的信息

搜索/替换(Seach/Replace)
C-s 向后搜索
C-r 向前搜索
C-g 回到搜索开始前的位置(如果你仍然在搜索模式中)
M-% 询问并替换(query replace)

Space或y 替换当前匹配
Del或n 不要替换当前匹配
. 仅仅替换当前匹配并退出(替换)
, 替换并暂停(按Space或y继续)
! 替换以下所有匹配
^ 回到上一个匹配位置
RETURN或q 退出替换

使用正则表达式(Regular expression)搜索/替换
可在正则表达式中使用的符号:
^ 行首
$ 行尾
. 单个字符
.* 任意多个(包括没有)字符
\< 单词开头
\> 单词结尾
[] 括号中的任意一个字符(例如[a-z]表示所有的小写字母)

M C-s RETURN 使用正则表达式向后搜索
M C-r RETURN 使用正则表达式向前搜索
C-s 增量搜索
C-s 重复增量搜索
C-r 向前增量搜索
C-r 重复向前增量搜索
M-x query-replace-regexp 使用正则表达式搜索并替换

窗口命令(Window Commands)
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
C-x ^ 扩大窗格
M-x shrink-window 缩小窗格
M C-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 关闭当前窗口

书签命令(Bookmark commands)
C-x r m 在光标当前位置创建书签
C-x r b 转到书签
M-x bookmark-rename 重命名书签
M-x bookmark-delete 删除书签
M-x bookmark-save 保存书签
C-x r l 列出书签清单

d 标记等待删除
Del 取消删除标记
x 删除被标记的书签
r 重命名
s 保存列表内所有书签
f 转到当前书签指向的位置
m 标记在多窗口中打开
v 显示被标记的书签(或者光标当前位置的书签)
t 切换是否显示路径列表
w 显示当前文件路径
q 退出书签列表

M-x bookmark-write 将所有书签导出至指定文件
M-x bookmark-load 从指定文件导入书签

Shell
M-x shell 打开shell模式
C-c C-c 类似unix里的C-c(停止正在运行的程序)
C-d 删除光标后一个字符
C-c C-d 发送EOF
C-c C-z 挂起程序(unix下的C-z)
M-p 显示前一条命令
M-n 显示后一条命令

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 打开一个独立的目录显示窗口

Telnet
M-x telnet 打开telnet模式
C-d 删除后一个字符或发送EOF
C-c C-c 停止正在运行的程序(和unix下的C-c类似)
C-c C-d 发送EOF
C-c C-o 清除最后一个命令的输出
C-c C-z 挂起正在运行的命令
C-c C-u 移除前一行
M-p 显示前一条命令

Text
只能在text模式里使用
M-s 使当前行居中
M-S 使当前段落居中
M-x center-region 使被选中的区域居中

宏命令(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 载入宏

编程(Programming)
M C-\ 自动缩进光标和标记间的区域
M-m 移动光标到行首第一个(非空格)字符
M-^ 将当前行接到上一行末尾处
M-; 添加缩进并格式化的注释
C, C++和Java模式
M-a 移动光标到声明的开始处
M-e 移动光标到声明的结尾处
M C-a 移动光标到函数的开始处
M C-e 移动光标到函数的结尾处
C-c RETURN 将光标移动到函数的开始处并标记到结尾处
C-c C-q 根据缩进风格缩进整个函数
C-c C-a 切换自动换行功能
C-c C-d 一次性删除光标后的一串空格(greedy delete)

为了实现下面的一些技术, 你需要在保存源代码的目录里运行"etags
*.c *.h *.cpp"(或者源代码的其他的扩展名)
M-.(点) 搜索标签
M-x tags-search ENTER 在所有标签里搜索(使用正则表达式)
M-,(逗号) 在tags-search里跳至下一个匹配处
M-x tags-query-replace 在设置过标签的所有文件里替换文本

GDB(调试器)
M-x gdb 在另一个的窗格中打开gdb

版本控制(Version Control)
C-x v d 显示当前目录下所有注册过的文件(show all registered files in this dir)
C-x v = 比较不同版本间的差异(show diff between versions)
C-x v u 移除上次提交之后的更改(remove all changes since last checkin)
C-x v ~ 在不同窗格中显示某个版本(show certain version in different window)
C-x v l 打印日志(print log)
C-x v i 标记文件等待添加版本控制(mark file for version control add)
C-x v h 给文件添加版本控制文件头(insert version control header into file)
C-x v r 获取命名过的快照(check out named snapshot)
C-x v s 创建命名的快照(create named snapshot)
C-x v a 创建gnu风格的更改日志(create changelog file in gnu-style)

这份列表根据http://lpn.rnbhq.org/tools/xemacs/emacs_ref.html和我的使用经验翻译整理而来. 部分内容我不是很熟悉(比如Version Control), 在给出翻译的同时附上了英文, 这部分如果有错误, 请给我指出, 谢谢. 原列表中的部分命令/快捷键已经失效, 我在整理中发现的已修正, 但仍可能存在错误, 希望您发现后能指出来, 谢谢. 我使用的Emacs的版本是GNU Emacs 23.0.60.1 of 2008-03-20, 而因各人使用的Emacs版本不同, 命令/快捷键可能存在差异, 所以希望您在指出问题时能同时附上您的Emacs版本号.
分享到:
评论
3 楼 simohayha 2009-03-27  
哈哈,我从同学手里抢了本免费的。。
2 楼 mryufeng 2009-03-27  
可是那本书买不到了 一起最低的时候10块钱一本
1 楼 simohayha 2009-03-27  
用emacs的时候,手边放本Learning GNU Emacs,边用边查了。。

相关推荐

    Emacs快捷键列表 – aifreedom_emacs_EMACS快捷键列表_

    以上只是Emacs快捷键的冰山一角。实际上,Emacs提供了无数的快捷键和功能,使得编辑、编程和文档处理变得极其高效。熟练掌握Emacs的快捷键列表,将极大地提升开发和写作体验。记得经常查阅和实践,让这些快捷键成为...

    emacs快捷键表/命令

    ### Emacs快捷键与命令详解 #### 引言 Emacs是一款功能强大且高度可定制的文本编辑器,深受程序员和技术人员的喜爱。对于初学者来说,掌握Emacs的基本操作及快捷键能够极大地提高工作效率。本文将详细介绍Emacs的...

    emacs快捷键参考

    ### Emacs快捷键参考知识点 #### 一、启动与退出Emacs - **启动Emacs**: - 命令:`emacs` - 描述:输入`emacs`即可启动GNU Emacs版本20。 - **注意事项**:如果需要打开特定文件进行编辑,可以参见“读取文件”...

    emacs快捷键大全

    ### Emacs快捷键大全详解 #### 一、简介 在日常工作中,Emacs 是一款功能强大的文本编辑器,深受程序员和开发者们的喜爱。为了提高编辑效率,掌握常用的 Emacs 快捷键是十分必要的。本文将详细介绍 Emacs 的快捷键...

    emacs   快捷键  

    ### Emacs编辑器快捷键详解 #### 一、简介 Emacs是一款极其强大的文本编辑器,其功能之丰富、扩展性之强,在众多编辑器中独树一帜。它支持多种编程语言,内置了丰富的功能模块,并且用户可以根据自己的需求定制...

    Emacs快捷键的总结

    在Emacs中,快捷键是提高效率的关键,下面将详细介绍一些常见的Emacs快捷键及其用途。 1. **文件操作** - `C-x C-f`:打开文件,支持FTP路径。 - `C-x C-v`:打开文件并替换当前缓冲区。 - `C-x C-s`:保存当前...

    Emacs快捷键

    ### Emacs快捷键详解 #### 一、概述 Emacs是一款高度可配置且强大的文本编辑器,支持多种编程语言,具备丰富的扩展性和自定义能力。它不仅适用于文本编辑,还广泛应用于程序开发、文档编写等场景。为了更好地掌握...

    emacs快捷键.pdf

    Emacs是一款强大的文本编辑器,尤其受到程序员和高级用户的青睐,因为它提供了丰富的快捷键和功能。在教育领域,学习和掌握Emacs的快捷键能够极大地提高编程和文档编辑的效率。 首先,文件操作是Emacs的基本功能之...

    XKeymacs 3.4.8 Windows下模拟Emacs的快捷键

    **XKeymacs 3.4.8:Windows下的Emacs快捷键模拟工具** XKeymacs是一款强大的软件,它允许Windows用户在不改变任何应用程序原有功能的基础上,模拟Emacs编辑器的快捷键操作。这款工具对于那些习惯于Emacs高效快捷键...

    Emacs常用快捷键

    以下是一些常用的Emacs快捷键及其用途: 1. **移动操作**: - `C-v`:向前滚动一屏。 - `M-v`:向后滚动一屏。 - `C-l`:将光标所在行移动到屏幕中央。再次按下,会将当前行移动到屏幕顶部。 - `C-f`:光标向前...

    Emacs 快捷键

    Emacs以其强大的快捷键操作和可扩展性闻名。接下来将详细介绍Emacs中的一些基础和高级快捷键。 ### 启动与退出Emacs - 启动Emacs:在命令行输入 `emacs` 或 `emacs &`(后者会把Emacs放到后台运行)。 - 启动并加载...

    libreoffice emacs快捷键

    在libreoffice中使用emacs的快捷键,来源于,https://www.kendix.org/blog/basic_emacs_bindings_for_libreoffice_writer.html,使用方法为工具--&gt;自定义-&gt;加载,并选择zip压缩包

    emacs快捷键

    ### Emacs快捷键详解 #### 一、剪切复制文本区域 在Emacs中高效地处理文本需要掌握一系列快捷键,其中最基础的就是剪切、复制和粘贴。 1. **定位光标**:首先,把光标移动到你想要操作的文本区域的起始位置。 2. ...

    xkeymacs - 桌面快捷键模拟emacs

    为了更好地利用xkeymacs,用户需要了解一些基础的Emacs快捷键,例如M-x(Meta-x)用于调用命令,C-a(Ctrl-a)用于移动光标到行首,C-e用于移动到行尾,C-k用于剪切至行尾,C-y用于粘贴剪切的内容。这些基本操作一旦...

    桌面快捷键极品

    一好好用的一个桌面快捷键,是一款我自己开发的哦

    vs2013 emacs扩展

    一直很喜欢Emacs的键绑定,vs2008到vs2010一直都有Emacs的模拟键绑定,可惜似乎vs2012后这项福利了。 这个原本是vs2010的Emacs扩展插件,经过修改后可以在vs2013上使用。

    emacs 参考卡 快捷键

    ### Emacs 参考卡片:快捷键详解 #### 开始与结束 Emacs - **启动 Emacs**: - 使用命令行输入 `emacs` 来启动 GNU Emacs 版本 25。 - **暂停 Emacs 或最小化 Emacs**(在 X 窗口系统下): - 按 `C-z` 键可以...

    Emacs 常用快捷键

    表格列出一些 emacs 常用的快捷键

    三本emacs书籍:生存于emacs+生活于emacs+emacs手册

    此外,还可能涉及如何创建自定义快捷键和设置个人工作环境,以提高生产力。 《Living in Emacs》更进一步,探讨了将Emacs融入日常生活和工作的高级主题。这本书可能会讨论Emacs作为全功能的桌面环境的能力,比如...

    Atom-atom-emacs-core-keys,仅用于核心Atom功能的Emacs密钥绑定.zip

    总的来说,"Atom-atom-emacs-core-keys.zip"为那些习惯使用Emacs快捷键的开发者提供了一种在Atom中保持一致操作体验的方式,使得他们能够充分利用Atom的强大功能,同时享受熟悉的键绑定带来的效率提升。

Global site tag (gtag.js) - Google Analytics