C
-表明按住Ctrl键
M
-表明按住Alt键,也能够用按一下
ESC
放开代替
最早要记住的
M
-x <cmd> 输入指令执行,在输入时用Tab能够自动补全或列出项目
C
-g 取消当前操做指令
C
-h k <key> 查看当前按键绑定的指令及介绍
移动插入点(光标)
C
-n/p/b/f 到 下一行、上一行、前一字符、后一字符
M
-b/f 到 前、后一单词
C
-a/e 到 行首、末
M
-a/e 到 句首、末
M
- 到 文件首、末
C
-v/
M
-v 下、上翻屏
C
-l 循环 将当前光标行显示在窗口下、中、上位置
C
-u <num> <xx> 重复执行以后的 xx 命令 num 次,不输入num默认为
4
C
-u
C
-v 向下滚动
4
行
编辑
Back/
C
-d 删除 前、后字符
M
-Back/
M
-d 移除 前、后单词
C
-k/
M
-k 移除到 行末、句末
C
-/ undo/
redo
C
-x u undo/
redo
C
-w 剪切
C
-y 召回(粘贴)(粘贴移除的、复制、剪切的内容)
C
-c 复制(emacs通常也默认定制了与
OS
的剪切复制粘贴相同的快捷键)
查找
C
-s
C
-s 查找下一个
C
-r 查找上一下
C
-g 一次返回,二次结束查找
回车 中止到当前查找到的内容
替换
M
-%
标记
M
-@
文件操做
C
-x
C
-c 退出emacs
C
-x
C
-f 打开文件
C
-x
C
-s 保存文件
C
-x
C
-v 在当前缓冲区从新打开一个文件,能够用于清除undo历史!!
C
-x
1
最大化当前缓冲,关闭其它
C
-x
2
/
3
垂直、水平建立新缓冲区
C
-x o 切换到其它缓冲区
C
-x
C
-b 列出缓冲区
C
-x b 提示输入缓冲区名称,切换当前窗口的缓冲区
C
-x k 删除当前缓冲区
C
-j 换行回车,有些模式下比较直接回车好用,有增长缩进之类的功能
------
理解一些概念
buffer
缓冲区,内存中的数据,打开文件时读入内容到内存,修改后保存才会修改到磁盘上的文件。
window
窗口,缓冲区的一个展现区域
frame
OS
上的一个emacs程序窗口
mode 模式
mode有主模式,辅助模式,主模式就像vim中设置当前filetype同样,当前编辑的是ruby或者python源代码,根据不一样文件类型,设置按Tab缩进时缩进不一样的字符数,把不一样的词看成关键字时行语法高亮等等,同一时间只能选一个主模式。试着多开几个窗口,执行text-mode ruby-mode python-mode试下。emacs打开文件时会自动根据文件扩展名或内容检查并设置主模式。
辅助模式就是窗口是否要自动换行,是否显示行号等,辅助模式能够多个同时启用。
undo
在
EMACS
中想要将已经作过的动做放弃,以恢复原状。
EMACS
所提供的 undo,能够连续恢复最近使用过的指令。
undo 的顺序是最新使用过的指令最早被 undo ,第二次使用 undo 则恢复第二新的指令,任何指令的输入(除了 undo 自己以外) 都会使指令输入的顺序重整, 这也同时影响 undo 的顺序。
使用 undo 有一个限制,就是 undo 只能 undo 对缓冲区内容形成改变的指令。对于只是改变游标动做的指令,是没法以 undo 来恢复旧观。若全部修改过内容的指令,都以 undo 恢复原状后, 再一次使用 undo 的指令,echo area 会出现以下的讯息:No further undo information.
当使用了 undo 以后,还想要在
redo
这个已被 undo 的动做时, 有一个技巧能够达成如此的效果。
1
.首先键入一个不会改变缓冲区内容的指令(如光标移动的指令),使原来
2
.存放指令的顺序因新指令的加入而改变。
3
.再使用一次 undo 的指令,就能够达到
redo
的效果了。
undo的行为很难描述,示例:
新建一个文件
执行几个修改内容的指令 <
1
回车
2
回车
3
回车>, 这时undo历史里有
6
条记录
undo顺序为
654321
, 继续undo则提示No further undo information
按下左右方向键(虽然移不动光标),这时undo历史里有
12
条记录了,前
6
条undo就变成
redo
了,顺序
123456654321
再按下方向键,undo历史记录数量再翻倍
emacs的undo不会丢失任何操做,你先作一些操做,undo,再作另外一些操做,若是是其它编辑器,第一次undo的动做就失踪了,emacs里却一直存在着,缘由同上。多试几回就明白了。