Emacs-keys

title: Emacs keys

categories:

- Technology

- Emacs

date: 2014-10-30 14:32:15

tags:

- emacs

Emacs 经常用到的快捷键, 很全。

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-> 到文件末尾

Buffer管理

C-x 选择buffer列表中的上一个buffer

C-x 选择buffer列表中的下一个buffer

M-x rename-buffer 重命名buffer

C-x C-b buffer列表

‘.’ 表明该buffer是当前buffer. ‘%’ 表明该buffer是只读的. ‘*’ 表明该buffer有修改

d 标记等待删除

s 保存列表内所有buffer

x 执行被标记的buffer操作

u 移除标记

f/ENTER 转到当前buffer

q 退出buffer列表

~ 将buffer标记为未修改

% 修改buffer的读写状态

o 在另一个窗口打开该buffer

b Bury this line’s buffer

v Select this line’s buffer, and also display in other windows any buffers flagged with the m command

T 不显示non-file buffer

编辑(Editint)

M-n 重复执行后一个命令n次

C-u 重复执行后一个命令4次

C-u n 重复执行后一个命令n次

C-d 删除(delete)后一个字符

M-d 删除后一个单词

Del 删除前一个字符

M-Del 删除前一个单词

C-k 移除(kill)一行

C-Space 设置开始标记 (例如标记区域)

[email protected] 功能同上, 用于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 *移除标记)

= 将当前文件和标记文件(使用[email protected]标记而不是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)

Others

C-x = : show the character at point

%%: read-only not modified

%*: read-only and modified

**: not read-only but modified

C-h i d m ecb RET i topic RET

C-h i d m ecb RET s topic RET

C+x ret r utf-8 ret

C+x ret r gbk ret

时间: 2024-10-06 11:25:30

Emacs-keys的相关文章

Emacs for Go

In this post I'm going to explore customizing Emacs to make hacking on Go a little more fluid. This is a living document and will probably be updated as I discover new modes and tools. The Emacs modes I currently use are: go-mode, oracle, goflymake,

emacs自己的总结问题笔记

1.By default, the prefix keys in Emacs are:C-c, C-h, C-x, C-x RET, C-x @, C-x a, C-x n, C-x r, C-x v, C-x 4, C-x 5, C-x 6,ESC, M-g, and M-o. (F1 and F2 are aliases for C-h and C-x 6).C-x ^ Enlarge-window >> M-x shrink-windowC-M v >> C-M Shift

Emacs Commands List

C = ControlM = Meta = Alt|Esc BasicsC-x C-f?"find" file i.e. open/create a file in bufferC-x C-s?save the fileC-x C-w?write the text to an alternate nameC-x C-v?find alternate fileC-x i?insert file at cursor positionC-x b?create/switch buffersC-

iterm2+emacs

使用iterm2时发现在emacs中,alt组合键无法正常使用,通过如下方式解决: iTerm2 的话在  "Profiles" -> "open Profile" -> "Keys" -> 界面的右下角有关于 left/right option key 的映射配置,改成 +Esc 就可以了 (开始我将其设置为meta,不知道为什么不行???)

Emacs配置(考场必备)(Emacs)

最近有几次离开自己一直坐着的座位,去别的机房考试了. 于是猛然想起来要记一记Emacs的简洁配置了. 算是把NOIP残存的记忆再拾一点起来...... 附上一些解释 (global-set-key [f9] 'compile-file);;一键编译(弄Devcpp留下来的习惯) (global-set-key (kbd "C-z") 'undo);;一键撤销(Like Windows) (global-set-key (kbd "C-q") 'kill-this-b

windows+vagrant+python+emacs开发环境配置

背景说明 公司的电脑一般都是windows系统的.但是windows系统如果配置开发环境,在安装一些依赖的时候经常会抓狂.Vagrant是一个基于Ruby的工具,用于创建和部署虚拟机.通过vagrant工具在windows系统上拉起一台linux系统的虚拟机,在上面安装emacs,然后通过 mobaxterm 工具的X server 功能,在windows上远程打开虚拟机中的emacs GUI界面. vagrant vagrant下载地址:https://www.vagrantup.com/ 从

eclipse下的emacs风格快捷键

Ieclipse emacs类快捷键 win + shift + b 切换设置断点 win + shift + f 格式化代码 win + shift + l 显示绑定的快捷键 win + shift + s 保存所有文件 win + shift + w 关闭所有打开的文件 win + shift + p 跳到匹配括号处 win + shift + f11 运行文件 win + shift + / 搜索 win + alt + n 新建项目或文件 win + alt + r 同时编辑同名的所有变

我的emacs设置文件.emacs

;;; emacs配置文件 ;;设置行高(setq-default line-spacing 5) (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there

Vim 和 Emacs 文本编辑器:你更喜欢哪个?

关于Linux的学习,请参考书籍<Linux就该这么学> 这可能是2016年,在许多开发人员和系统管理员之间,编辑器战争中仍然活得很好的. VIM(vi)或Emacs:两者都有很强的功能,当然,很多人使用别的文本编辑器,你喜欢哪个? 毫无疑问,这两个还是有很强的追随者:当我们被问及最喜欢的文本编辑器,自从去年vi出世,但很显然,辩论仍然很激烈. 哪个最适合你,可能很大取决于个人的喜好.你可能已经内置插件满足您的需求,也许在你开发的同时产生了一些强烈的感情. 因此,让我们知道你喜欢哪种文本编辑器