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 mail 写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)

原文地址:https://www.cnblogs.com/wangkangluo1/p/2115437.html