`

emacs 常用命令与配置

 
阅读更多
原文地址:http://www.cnblogs.com/UnGeek/archive/2013/04/28/3049448.html



1. 为了用得顺手,需要把Caps Lock键设为Ctrl。Caps Lock功能则设到右手的Context Menu键上或Win键上。可使用KeyTweak工具来帮助改键,不嫌麻烦的话也可直接改注册表。

2. M-x按得不顺手(位置太近反而不好按),可以用ESC-X来代替,或者在.emacs中加入以下代码,把它设到C-X C-M与C-C C-M上,同时把C-X与C-C都设了可以防止不小心按错。

;;更顺手的M-x(可以用C-x C-m或C-c C-m来触发) 
(global-set-key "\C-x\C-m" 'execute-extended-command) 
(global-set-key "\C-c\C-m" 'execute-extended-command) 


3. 实际使用中经常需要使用系统剪贴板(与其他编辑器或浏览器互相复制粘贴),CUA模式对按键习惯影响太大,不想用。用鼠标中键可以粘贴,但太麻烦。可以在.emacs中加入以下代码,把C-c C-c设为复制到系统剪贴板,C-c C-v设为从系统剪贴板粘贴。

;;系统剪贴板快捷键(C-c C-c复制,C-c C-v粘贴) 
(global-set-key "\C-c\C-c" 'clipboard-kill-ring-save) 
(global-set-key "\C-c\C-v" 'clipboard-yank) 


4. C-z默认是挂起emacs,跳回到shell中,这对文本型的shell很有用。但在windows中,事实上变成了毫无实际意义的窗口最小化,浪费了C-z这么顺手的键。可以用以下代码把C-z改为一个类似C-x的组合起始键。

;;允许使用C-z作为命令前缀 
(define-prefix-command 'ctl-z-map) 
(global-set-key (kbd "C-z") 'ctl-z-map) 


5. 初用emacs时,配置方案还不稳定,经常需要打开~/.emacs来编辑,可以设定用C-z i快速打开~/.emacs文件。(需要上面第4点支持)

;;用C-z i快速打开~/.emacs文件。 
(defun open-init-file ( ) 
  (interactive) 
  (find-file "~/.emacs")) 
 
(global-set-key "\C-zi" 'open-init-file) 


6. 标记文本区域起始位置的按键命令是C-Space,在中文系统下被输入切换热键冲掉了。默认的候补方案是M-@,其实就是Alt-Shift-2,非常难按。我把它改为了C-c m。

;;C-Space被输入法占用,改用C-c m来标记文本块 
(global-set-key "\C-cm" 'set-mark-command) 


7. 大而无当的工具栏可以关掉,提供更大的编辑空间。

;;关闭toolbar 
(tool-bar-mode) 


8. 使用emacs时经常需要管理多个buffer,C-x C-b的默认界面太过简陋。emacs事实上已经提供了更好的buffer管理界面ibuffer,在配置文件中选用即可。

;;启用ibuffer支持,增强*buffer* 
(require 'ibuffer) 
(global-set-key (kbd "C-x C-b") 'ibuffer) 


9. 如果想临时开一个缓冲区来输入或暂存一些文本,只要按C-x b,然后胡乱输入一个名称(例如asdf)即可。但默认会使用没有什么功能的Fundamental-mode,可以将默认模式改为Text-mode,并自动打开Fill-mode。

;;默认进入text-mode,而不是没有什么功能的fundamental-mode 
(setq default-major-mode 'text-mode) 
(add-hook 'text-mode-hook 'turn-on-auto-fill) 


10. 用以下配置开启显示行号

;;显示行号 
(global-linum-mode 1) 


11. 用C-x C-f打开文件时默认路径是~,可以用以下配置来更改。

;;设置初始目录为rails项目目录 
(setq default-directory "d:\\rails") 


12. 编程时,一般采用utf-8编码,用以下代码配置。

;;设定语言环境为utf-8 
(setq current-language-environment "UTF-8") 
(setq default-input-method "chinese-py") 
(setq locale-coding-system 'utf-8) 
(set-terminal-coding-system 'utf-8) 
(set-keyboard-coding-system 'utf-8) 
(set-selection-coding-system 'utf-8) 
(prefer-coding-system 'utf-8) 


13. 用shell命令来进入shell mode,默认只能开启一个shell。事实上只要把shell所在的buffer改名(用rename-buffer或rename-uniquely 命令)即可。还嫌麻烦的话,可以在配置文件中定义一个新的newshell命令,在开启shell时询问buffer名称。

;;打开一个新的shell 
(defun newshell (name) 
  (interactive "sBuffer name: ") 
  (shell name) 



14. 刚上手时常用的按键命令记不住,可以自己写一个按键帮助文件(例如~/emacskeys.txt),用C-z k自动在一个新buffer中打开。(需要以上第4点支持)

;;用C-z k快速打开自定义的按键说明文件 
(defun open-key-info-file () 
  (interactive) 
  (split-window-horizontally) 
  (find-file-other-window "~/emacskeys.txt") 
  (outline-mode) 
  (hide-body)) 
 
(global-set-key "\C-zk" 'open-key-info-file) 


帮助文字自动进入Outline Mode,可以用C-c C-a命令来展开所有分类,用C-c C-t命令来收起所有分类(只显示标题),光标在某一个分类上时,可以用C-c C-e命令来查看本分类内容。详细命令可参考后面附文中的Outline Mode部分。(~/emacskeys.txt文件内容附在本文最后)

15. 在windows下,可以让emacs启动后自动最大化。可在配置文件的最后加入:

;;启动0.5秒后自动最大化 (windows下) 
(run-with-idle-timer 0.5 nil 'w32-send-sys-command 61488) 

为了避免其他第三方模块初始化时把窗口复原,这里设置了启动后延时0.5秒再最大化。

16. 在emacs中,如果同时打开了两个buffer,可以用C-M-v按键来让另一个窗口的内容向下翻页,而不改变光标的位置。在阅读文档时非常方便。

17. 最常用的移动光标方式,不是上下左右,而是C-s和C-r(增量查找)。


附常用按键命令列表(~/emacskeys.txt)
引用

* 移动快捷键
C-b :左移一个字符
C-f :右移一个字符
C-n :下移一行
C-p :上移一行

M-b :左移一个单词
M-f :右移一个单词

C-v :下移一屏幕
M-v :上移一屏幕
C-l :刷新屏幕并将光标所在行移到屏幕中央
C-u 0 C-l :刷新屏幕并将光标所在行移动到屏幕上端

C-a :移动到本行开始位置
C-e :移动到本行结束位置

M-a :移动到本句开始位置
M-e :移动到本句结束位置

M-{ :移动到前一自然段
M-} :移动到后一自然段

M-< :移动到文章开头
M-> :移动到文章结尾

M-x goto-line :移动到某一行

* 其他编辑
M-t :单词后移
C-t :字符后移
C-x C-t :行下移

C-x C-u :区域转大写
C-x C-l :区域转小写
M-u :光标至单词结尾转大写
M-l :光标至单词结尾转小写
M-c :首字大写

* 其他基本键
C-j :带缩进回车
M-x :执行函数
C-u :指定函数参数
C-g :中断命令
C-x u :undo
C-/ :undo
C-_ :undo
C-x C-0 :字体复原
C-x C-- :字体缩小
C-x C-= :字体增大

C-x C-z:暂停emacs应用
C-x C-c:关闭emacs应用

* 插入删除
<Delback> :删除光标左边字符
C-d :删除光标右边字符
M-z :删除到指定字符

M-<Delback> :删除光标左边单词
M-d :删除光标右边单词

c-k :从光标处删除至行尾
M-k :从光标处删除至句尾

C-S-<Delback> :删除本行

* 区域操作
M-@ :标记区域起点
M-h :标记一自然段
C-w :删除区域
M-y :将上一次yank所插入的内容改为yank缓冲区中更早的记录内容
C-x C-x :将当前光标与标记位置交换
M-w :缓存区域(以便后续yank)
C-x h :全选当前buffer

* 查找与替换
C-s :正向增量查找
C-r :反向增量查找
M-% :替换(带询问)
C-M-s Enter :正向正则表达式搜索
C-M-r Enter :反向正则表达式搜索
C-M-箭头 :继续正则表达式搜索
C-M-s :正向正则增量搜索
C-M-r :反向正则增量搜索
C-M-% :正则表达式替换(带询问)

M-s h l :高亮显示匹配指定正则表达式的行
M-s h r :高亮显示匹配指定正则表达式的文本
M-s h u :取消指定正则表达式的高亮

* Buffer操作
C-x 1 :当前buffer最大化,关闭其他窗口
C-x C-b :列出所有缓冲区
C-x b :打开指定缓冲区
C-x s :保存所有缓冲区
C-x C-<Left> :前一缓冲区
C-x C-<Right> :下一缓冲区
M-x revert-buffer :恢复当前缓冲区内容(放弃上一次保存之后的修改)
C-x k :删除指定缓冲区

* 文件操作
C-x C-f :查找并打开文件
C-x C-s :保存文件

* 窗口操作
C-x 2 :横向分割当前窗口
C-x 3 :纵向分割当前窗口
C-x o :移动到另一个窗口
C-x 0 :关闭当前窗口
C-x + :平均窗口大小
C-M-v :另一窗口下卷一屏幕
C-x 4 f :在另一窗口查找并打开文件
C-x 4 b :在另一窗口中打开一个buffer
<ESC> <ESC> <ESC> :退出窗口(当Frame中窗口大于一个时)

* Fill Mode
C-x f :设置每行字符数
M-q :对本自然段重新排版

M-o M-s :本行居中
M-o M-S :自然段居中

* 帮助
C-h m :当前major mode的说明
C-h b :键盘命令绑定列表
C-h k :键盘命令帮助
C-h c :键盘命令简明帮助
C-h f :函数帮助
C-h a :函数查找
C-h i :阅读手册

* Outline Mode
C-c C-b :前一同级章节
C-c C-f :后一同级章节

C-c C-p :前一章节
C-c C-n :后一章节

C-c C-u :上一级章节

C-c C-t :令所有除标题外的文字不可见
C-c C-a :显示所有文字
C-c C-q :令前N级的文字可见

C-c C-d :隐藏当前章节的文字和子章节
C-c C-s :显示当前章节的文字和子章节
C-c TAB :显示当前章节的直接子章节标题
C-c C-c :隐藏当前章节的文本
C-c C-e :显示光标所在位置内容
C-c C-l :隐藏光标所在章节的文本和子章节的文本
C-c C-k :显示所有子章节的标题
* Abbrev Mode
C-x a l :将当前光标之前的单词添加为当前Mode的Abbrev
C-x a e :展开Abbrev
C-x ' :展开Abbrev
M-' :标记Abbrev前缀
C-x a g :将当前光标之前的单词添加为全局的Abbrev
C-x a n :跳到Abbrev的下一个slot
C-x a p :跳到Abbrev的上一个slot

* Shell Mode
M-p :向前滚动历史输入记录
M-n :向后滚动历史输入记录
C-c C-p :光标移动到上一次输入位置
C-c C-n :光标移动到下一次输入位置
C-c C-o :清除上一次执行的输出
C-c C-r :光标移动到上一次执行的输出开始位置
C-c C-u :清空本次输入
C-c C-s :保存上一次执行的输出结果
C-c 空格 :换行但不执行(一次性执行多个命令)
C-c . :将历史输入作为参数插入到当前位置
M-r :增量搜索历史输入记录
C-c M-r :根据当前输入内容在历史输入中反向搜索
C-c M-s :根据当前输入内容在历史输入中正向搜索
C-c C-c :中断任务(相当于shell中的Ctrl-C)
C-c C-d :发送eof字符
分享到:
评论

相关推荐

    emacs-25.1-x86_64-w64-mingw32

    很多人认为emacs很难学,其实这是误解,emacs的常用命令一般通过把界面首页的“Emacs快速指南”走几遍就能熟练掌握了。虽然入门不难,但要用emacs煮咖啡,则需要对Lisp语言略作了解甚至精通才行,因为emacs强大功能...

    加入几个快捷键绑定的emacs配置文件

    绑定了几个常用的快捷键:f2切换ecb窗口可见性;f4打开bash终端;f5编译文件

    boon:Emacs的人机工程学命令模式

    Boon:Emacs的人机工程学命令模式Boon是用于模式编辑的完整软件包,不是Evil。... 对最常用的命令使用主行和粗壮的手指。 易于导航:许多按键已分配给导航。 此策略有助于移动,这实际上是编辑文本时最常见的任务。

    spacemacs:如何使用Spacemacs(Emacs的社区配置)进行Clojure开发

    该研讨会将涵盖以下主题: Emacs基础知识,常用命令和工具强大的编辑和重构工具(edt,缩小,helm-ag,多个光标,可视撤消) 添加和增强Clojure层运行REPL,评估代码,检查数据,调试,重新加载工作流程运行测试和...

    ARM初学者学习ARM的步骤

    Linux常用命令 Linux启动过程详解 熟悉Linux服务 能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务 安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的...

    linux 学习进度

    Linux常用命令 Linux启动过程详解 熟悉Linux服务 能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务 安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的...

    UNIX操作系统教程 张红光

    2.1.2用户的注册与注销11 2.1.3账户的管理12 2.1.4用户口令的管理12 ...常用命令48 3.2.5使用vi的注意事项48 3.2.6vi环境的设置49 3.3Emacs编辑器50 3.3.1Emacs的使用方法51 3.3.2Emacs主菜单功能简介52 3.3.3Emacs...

    用VIM编写C/C++程序

    Vi是Unix下最常用的文本编辑器。VIM(Vi IMproved)则是它的增强版。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。用过emacs的人肯定会为emacs的一些快捷键感到烦恼,...

    .doom.d

    常用命令 doom help doom sync doom upgrade doom doctor doom env doom build 文档 私人配置 配置 包装管理 它使用了自己在之上构建的声明式包管理器。 主题 如果我们要在Doom Emacs中使用: 打开您的.doom.d/...

    Wim编辑器精通之路

     Vim(和Vi)一个最大的优势在于, 它最常用的命令都是简单的字符, 这比起使用复杂的控制组合键要快得多, 而且也解放了手指的大量工作, 学习使用这些命令的时间很快就能从由此带给你的高效率中得到回报. 另外, 与Vi...

    嵌入式系统/ARM技术中的如何学习嵌入式系统之基础知识

     安装Linux操作系统:Linux文件系统 ,Linux常用命令,Linux启动过程详解,熟悉Linux服务能够独立安装Linux操作系统,能够熟练使用Linux系统的基本命令,认识Linux系统的常用服务安装Linux操作系统,Linux基本命令...

    如何学习嵌入式系统之基础知识

     安装Linux操作系统:Linux文件系统 ,Linux常用命令,Linux启动过程详解,熟悉Linux服务能够独立安装Linux操作系统,能够熟练使用Linux系统的基本命令,认识Linux系统的常用服务安装Linux操作系统,Linux基本命令...

    LINUX操作系统(电子教案,参考答案)

    本章主要介绍在Linux上比较常用的两个proxy服务器软件的配置。 本书最后还附有参考答案,以供读者对照课后习题进行练习。 四、本书适用对象 本书适合用于大专院校、电脑培训班等作为Linux或UNIX操作系统课程的教材,...

    嵌入式Linux应用程序开发详解

    2.1 Linux常用操作命令 19 2.1.1 用户系统相关命令 20 2.1.2 文件目录相关命令 27 2.1.3 压缩打包相关命令 38 2.1.4 比较合并文件相关命令 40 2.1.5 网络相关命令 45 2.2 Linux启动过程详解 50 ...

    嵌入式Linux应用程序开发标准教程(第2版全)

    2.1 Linux常用命令 2.1.1 用户系统相关命令 2.1.2 文件相关命令 2.1.3 压缩打包相关命令 2.1.4 文件比较合并相关命令 2.1.5 网络相关命令 2.2 Linux启动过程详解 2.2.1 概述 2.2.2 内核引导阶段 2.2.3 init阶段 2.3 ...

    RED HAT LINUX 6大全

    3.1 安装与配置LILO 18 3.1.1 安装或重新配置LILO 18 3.1.2 配置LILO 18 3.2 使用LOADLIN.EXE引导Linux 20 3.3 如何卸载LILO 21 3.4 LILO 疑难解答 21 3.5 小结 22 第4章 配置X Window系统,版本11 23 4.1 X Window...

    MobaXterm最新版本安全下载

    5、MobaXterm 20支持将终端上的文字复制/保存为RTF(保持原色彩,比如vim/emacs里面的语法高亮,colorgcc突出显示的错误行等等) 6、ssh/rsh/xdmcp等提供新建会话对话框,里面对常用参数都提供了文字说明; 7、动时自动...

    边干边学Linux__第二版_doc格式

    2.2 emacs文本编辑器 第3章 Linux文件系统操作 3.1 文件类型 3.2 文件系统目录结构 3.3 目录操作的基本命令 3.4 文件操作的基本命令 3.5 显示字符串echo 3.6 命令行中使用扩展符 第4章 文件权限与文件共享 4.1 存取...

    写给iOS程序员的命令行使用秘籍

    勾上这个选项之后,就可以使用Emacs的编辑命令了。 我发现有些人的终端没有设置“平滑文本”,导致终端上的文字很难看。赶紧把这个选项勾上吧。 常用的几个快捷键如下。 control+a,跳到命令行开始位置;control+e...

Global site tag (gtag.js) - Google Analytics