學習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

相關文章
相關標籤/搜索