学习Emacs系列教程

emacs最简单入门,只要10分钟 html

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<pre class = "brush:plain;" >emacs最简单入门,只要 10 分钟
  windwiny @2013
 
无聊的时候又看到鼓吹emacs的文章,之前也有几回想尝试,结果都是玩不到 10 分钟就退出删除了。
此次硬着头皮,打开几篇文章都看完一遍,再动手操做。此次好像有些进展
 
最大的发现,emacs里全部操做都是 LISP 指令,包括上下左右移动光标,这意味着什么? “emacs是一个假装成编辑器的操做系统”这句话应该就是这么理解吧,全部的操做都是指令,emacs就像操做系统同样,平时不用关注,实际上打交道的都是操做系统上运行的各类程序。emacs也是这样,执行 LISP 函数就好了,增长各类插件就是增长 LISP 的函数让你调用而已,各人的配置就是把各类指令绑定快捷键,方便本身使用。emacs的插件功能有执行shell命令,telnet,ftp,文件管理器,收邮件,浏览网页,煮咖啡,擦皮鞋,等等。前段时间又受到黑客与画家书的鼓吹,买了本 CLISP 的书看,对emacs用的 LISP 也是越看越顺眼了。
 
忘掉网上其它的那些教程、手册吧,也忘掉emacs有几百种几千种命令吧。
 
emacs最简单入门:只要记住一个按键就好了: M -x . 按住Alt键再按x,在窗口最底下出现 M -x的提示,在这里输入left-几个字符,按Tab键,出现两行提示 left-char, left-word,再输入一个c,再按Tab键,这时自动补全为left-char,按回车,若是有内容的话,当前的光标点向左移动,就像按了一个向左的方向键同样。  就这样?就这样!
 
就这样,发挥你的想象力,想象你如今须要作什么,把它翻译成英文单词,按 M -x,先输入几个字母,按Tab,看是否存在你想象中的指令。要取消当前操做的指令,多按几回 ESC 键或Ctrl-g键就取消了。
 
如今假设下emacs有 100 条指令吧,你若是想作什么事都去执行指令的话,虽然也能够,可是总比不上为经常使用的指令设置一个快捷键方便。如今看下默认的各类快捷键:
 
先来看几个简单的 forward-char  backward-char  previous-line  next -line , 很直白的命令,向先后移一个字符或向上下移一行,对应 4 个方向键。默认绑定的快捷键就是Ctrl加指令首字母 C -f/b/p/n。简洁直白合理极致吧。 复制一些内容到窗口上去,多按几回按键,多按几回手指上的肌肉就不会忘记了。就像用了十多年的五笔输入法同样,看着键盘时一个字也打不也来了,字根键码早忘光了。只有两只手都放在键盘上时,看着汉字,手指天然就打出来了。
 
再看下 forward-word  backward-word ,向先后一个单词,默认绑定快捷键为Alt加指令首字母 M -f/b。也很合理吧。
 
若是要快速移动到当前行首行尾,或者是一句话的首尾部呢? move-beginning-of-line move- end -of-line  backward-sentence  forward-sentence ,默认绑定的快捷键是 C -a/e  M -a/e,好像也还算合理吧。
 
 
好了,只要理解了emacs里作任何操做都是执行 LISP 函数,就算是入门了。emacs被称为复杂难学是由于默认设置了不少快捷键,不容易一下记住。如今只要记住用 M -x来执行命令,快捷键一概忽视,等熟悉了 LISP 指令及对应的功能,想为它设置一个快捷键时,再看看默认设置的快捷键是否合你的胃口,改或不改你决定。
对emacs感兴趣或者不感兴趣如今就能够决定了。什么学emacs须要很强的耐心那些都是胡扯,我敢打赌只要有好奇心的人就会继续往下看。
如今能够打开帮助菜单下的教程,跟着操做一遍,学习一些最经常使用的快捷键了。多动手,肌肉记忆比大脑记忆好用。
 
 
----入门教程结束----
 
 
 
想象一下你使用其它编辑器时使用到的各类功能快捷键,把它和emacs默认设置的快捷键比较一下,哪一种设置比较合理。
emacs里的各类快捷键设置都是无害的,意思就是你改掉一个快捷键对应的功能,命令却还在,永远能够用 M -x来直接执行。若是是其它编辑器就比较麻烦,可能这个操做的功能就找不回来了。
 
 
 
一些默认快捷键
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里却一直存在着,缘由同上。多试几回就明白了。
 
 
----完----
 
才用了两天emacs,学会的东西就上面这些了,不过如今却有很兴奋的感受,记了这篇笔记。而且有很强烈的感受,感受之后都离不开emacs了,被emacs控制了~~
</xx></num></key></cmd></pre>

 

学习Emacs系列教程python

http://www.cnblogs.com/robertzml/tag/Emacs/shell

相关文章
相关标签/搜索