Emacs快捷键 绑定 中文
原文地址:http://hi.baidu.com/lhaix/blog/item/e803d9d02736b098a0ec9c16.html
快捷键
GNU Emacs的快捷键都是绑定于CTRL键和ALT键上。每个快捷键对应一个指令名称,也就是一个对应的函数名称,这允许你根据不同的喜好将快捷键绑定到不同的指令名称。另外,在Emacs中有很多的指令没有绑定快捷键,我们可以通过M-x 指令名称来执行指令。例如,全文替换我们可以使用M-x replace-strings。这样,很多没有绑定快捷键的功能都可以用到了。
基本操作
表1是基本操作指令列表。
C-SP | set-mark-command | 设置标记 | C-q | quoted-insert | 插入引用 |
C-a | beginning-of-line | 移动到行首 | C-r | isearch-backward | 向前查找 |
C-b | backward-char | 向前移动一个字符 | C-s | isearch-forward | 向后查找 |
C-t | transpose-chars | 掉换前后二个字符位置 | C-d | delete-char | 删除一个字符 |
C-e | end-of-line | 移动到行尾 | C-v | scroll-up | 向下滚动一屏 |
C-f | forward-char | 向后移动一个字符 | C-w | kill-region | 删除选定区域 |
C-x < | scroll-left | 向左移动一屏 | C-x > | scroll-right | 向右移动一屏 |
TAB | forward-button | 缩进 | C-y | yank | 粘贴 |
C-z | suspend-frame | 暂停emacs | C-n | next-line | 移动到下一行 |
C-k | kill-line | 删除一行 | ESC | ESC-prefix | 取消前缀 |
C-o | open-line | 增加一行 | DEL | delete-backward-char | 向前删除一个字符 |
C-p | previous-line | 向上移动一行 | C-z | suspend-emacs | 暂停Emacs |
C-_ | undo | 取消 | C-l | recenter | 使光标所在行变为屏幕中央 |
帮助
表2是帮助指令列表。
C-h w | where-is | 查看命令菜单位置或者绑定热键 | C-h k | describe-key | 查看热键详细功能描述 |
C-h t | help-with-tutorial | 查看Emacs教程 | C-h c | describe-key-briefly | 查看热键简单功能描述 |
C-h n | view-emacs-news | 浏览Emacs新闻 | C-h b | describe-bindings | 查看绑定热键 |
C-h m | describe-mode | 查看编辑模式 | C-h C-c | 查看许可证信息 | |
C-h ? | help-for-help | 查看帮助列表 |
缓冲区操作
表3是缓冲区操作指令列表。
C-x C-d | list-directory | 列出当前目录 | C-x = | what-cursor-position | 显示当前光标所在位置 |
C-x C-f | find-file | 查找文件 | C-x TAB | indent-rigidly | 强制缩进 |
C-x C-o | delete-blank-lines | 删除空白行 | C-x b | list-buffers | 打开另外一个缓冲区 |
C-x C-p | mark-page | 全选 | C-x C-r | find-file-read-only | 以只读方式打开文件 |
C-x C-s | save-buffer | 保存当前缓冲区 | C-x i | insert-file | 插入文件 |
C-x C-t | transpose-lines | 掉换前后行位置 | C-x h | mark-whole-buffer | 标记当前全部缓冲区 |
C-x C-v | find-alternate-file | 打开另外一个文件,关闭缓冲区 | C-x l | count-lines-page | 计算当前缓冲区行数 |
C-x C-w | write-file | 保存缓冲区内容到文件 | C-x k | kill-buffer | 关闭缓冲区 |
C-x m | 写Email | C-x 4 m | mail-other-window | 打开新窗口写Email | |
C-x s | save-some-buffers | 保存多个文件 | C-x u | advertised-undo | 取消上一步操作 |
宏操作
表4是宏操作指令列表。
C-x ( | start-kbd-macro | 开始录制宏 | C-x ) | end-kbd-macro | 结束宏录制 |
C-x e | call-last-kbd-macro | 执行上一次绑定的宏命令 |
窗口操作
表5是窗口操作指令列表。
C-x 0 | delete-window | 关闭当前窗口 | C-x 1 | delete-other-windows | 保留当前窗口,关闭其他窗口 |
C-x 2 | split-window-vertically | 水平分割窗口 | C-x 3 | split-window-horizontally | 垂直分割窗口 |
C语言编程模式
表6是C语言编程模式的指令列表。
M-a | backward-sentence | 移动到语句开头 | M-e | forward-sentence | 移动到语句结尾 |
C-M-a | beginning-of-defun | 移动到函数开头 | C-M-e | end-of-defun | 移动到函数结尾 |
SGML语言编程模式
表7是SGML语言编程模式指令列表。
C-c C-t | sgml-tag | 插入标记 | C-c C-a | sgml-attributes | 插入属性 |
C-c C-b | sgml-skip-tag-backward | 移动到前一个标记 | C-c C-f | sgml-skip-tag-forward | 移动到后一个标记 |
C-c DEL | sgml-delete-tag | 删除一个标记 |
版本控制命令
表8是版本控制指令列表。
C-x v d | vc-directory | 列出目录下修改过的文件 | C-x v = | vc-diff | 显示改动 |
C-x v l | vc-print-log | 显示改动历史记录 | C-x v i | vc-register | 加入文件到版本控制中 |
C-x v h | vc-insert-headers | 插入版本控制信息 | C-x v r | vc-retrieve-snapshot | 取某一版本文件 |
C-x v v | vc-next-action | 进入提交改动状态 |
GNU Emacs扩展
Emacs Lisp语言介绍
有用的GNU Emacs扩展
写一个GNU Emacs扩展
这里我们自己动手写一个GNU Emacs扩展,实现复制一行的功能。下面是实现这个扩展的代码。
(defun copy-line (&optional arg) "Save current line into Kill-Ring without mark the line" (interactive "P") (let ((beg (line-beginning-position)) (end (line-end-position arg))) (copy-region-as-kill beg end)))
将上面这段代码拷贝到.emacs中,就可以开始使用这个功能了。
.emacs文件样例
;;显示时间(display-time);;显示行号(column-number-mode t)(show-paren-mode t) ;;设置TAB宽度为4(setq default-tab-width 4) ;;以下设置缩进 (setq c-indent-level 4) (setq c-continued-statement-offset 4)(setq c-brace-offset -4) (setq c-argdecl-indent 4)(setq c-label-offset -4)(setq c-basic-offset 4) (global-set-key "\C-m" 'reindent-then-newline-and-indent) (setq indent-tabs-mode nil)(setq standard-indent 4);;开启语法高亮。 (global-font-lock-mode 1) ;;设置默认工作目录 (setq default-directory "/home/test/source/") ;; 去掉滚动条(set-scroll-bar-mode nil) ;;关闭开启画面(setq inhibit-startup-message t) (setq indent-tabs-mode t);;不产生备份文件 (setq make-backup-files nil) ;;设置自定义变量(custom-set-variables '(column-number-mode t)'(current-language-environment "UTF-8") '(display-time-mode t)'(ecb-options-version "2.32") '(mouse-1-click-in-non-selected-windows t)'(mouse-drag-copy-region t) '(mouse-yank-at-point t)'(save-place t nil (saveplace))'(show-paren-mode t) '(transient-mark-mode t))(custom-set-faces;;选择小工具栏图标(tool-bar-mode -1)
完