Alex的专栏

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 设置开始标记 (例如标记区域) 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 *移除标记) = 将当前文件和标记文件(使用C-@标记而不是dired的m标记)比较 M-= 将当前文件和它的备份比较 ! 对当前文件应用shell命令 M-} 移动光标至下一个用*或D标记的文件 M-{ 移动光标至上一个用*或D标记的文件 % d 使用正则表达式标记文件等待删除 % m 使用正则表达式标记文件为* + 新建文件夹 > 移动光标至后一个文件夹 < 移动光标至前一个文件夹 s 切换排序模式(按文件名/日期)

或许把这个命令归入这一类也很合适: M-x speedbar 打开一个独立的目录显示窗口

少一点预设的期待,那份对人的关怀会更自在

Alex的专栏

相关文章:

你感兴趣的文章:

标签云: