Emacs被人稱之為“神的編輯器”,Emacs 可以完全鍵盤操作,你可以完整的操作Emacs而不需要去碰鼠標。當(dāng)你進行命令行操作的時候,這是很重要的。正如其他Emacs、Vim的使用者說的,頻繁的去用鼠標會降低你的編輯速度。
很多人覺得 Emacs 的快捷鍵很難記,其實他們是很有規(guī)律的,從 Emacs 鍵綁定的格局里面可以看到一些約定,只要你熟悉了這些約定,有很多快 捷鍵你甚至可以自己猜出來。而且即使你不知道快捷鍵,而是通過其他方式,比 如 M-x 再輸入函數(shù)名稱的形式來執(zhí)行了某個其實是綁定到一個很方便的快捷鍵上 面的命令,Emacs 也會提醒你,說你可以通過什么什么快捷鍵來達到這個目的。 即使你不知道確切的函數(shù)名,你也可以通過 M-x apropos 等方式來查找函數(shù)以及 其文檔。
**********Emacs模式**********
M-x 語言名-mode :切換到“語言名”模式下。如果Emacs沒有內(nèi)置你想要的語言,則用搜索“Emacs 語言 mode”即可。
M-x TAB TAB :顯示所有可執(zhí)行的命令
*********光標、編輯***********
所有被刪除的內(nèi)容會進入一個稱為刪除環(huán)的地方,按C-y就可以把它粘貼到光標所在的位置,如果想要取再前一次的刪除數(shù)據(jù),就在C-y之后(不要做其它操作)繼續(xù)按M-y,重復(fù)按M-y可以遍歷整個刪除環(huán)。
C-l :光標移到屏幕中間
M-< :光標移到文檔首
M-> :光標移到文檔末
C-u n cmd,M-n :執(zhí)行cmd n次
C-g :取消當(dāng)前命令的執(zhí)行
C-d :刪除光標下的字符
M-d :刪除光標后的單詞
C-k :剪切光標至行末
M-k :剪切光標至句末
C-@ :make a mark
C-x u,C-/ :undo
C-x C-f :find file
C-x C-v :打開文件并替換掉當(dāng)前buffer中的文件
C-x i :插入文件
C-← :pervious word
C-→ :next word
C-↑ :backward-paragraph
C-↓ :forward-paragraph
C-v :page down
M-v :page up
C-p :previous line
C-n :next line
C-f :forward char
C-b :backward char
M-f :forward word
M-b :backward word
C-a :move beginning of line
C-e :move end of line
M-a :backward sentence
M-e :forward sentence
C-M-@, C-M-SPC :mark up
C-w :cut
M-w :copy
C-y :yank
M-x :execute extended command
C-g :keyboard quit
F10 :打開菜單
M-g g :跳到指定的行
M-x d :打開文件目錄
ESC ESC ESC :關(guān)閉mini-buffer
SHIFT+方向鍵 :選取文本
**********搜索**********
C-s input :向前搜索
C-s :搜索下一個
C-r input :反向搜索
C-s C-w :搜索光標所在位置的字
C-s C-s :重復(fù)上次搜索
C-r C-r :重復(fù)上次反向搜索
C-r 在進入查找/替換模式后,該命令進入迭代編輯模式
C-M-x 退出迭代編輯模式,返回到查找/替換模式
C-M-s 向前正則搜索
C-M-r 向后正則搜索
C-M-% 正則交互替換
**********C-mode**********
M-x c-set-style :設(shè)置當(dāng)前緩沖區(qū)使用的style
M-; :加注釋
C-c C-c :選中代碼然后執(zhí)行此命令,注釋之
Emacs可以使用C預(yù)處理器處理其代碼的一部分,以便讓程序員檢測宏、條件編譯以及include語句的效果。操作如下:
1、在頂層窗口輸入看到的代碼。
2、高亮顯示一個區(qū)域。
3、按C-c C-e調(diào)用宏擴展。也可以從菜單C中選擇 Macro Expand Region。
Emacs將創(chuàng)建窗口,顯示宏擴展的結(jié)果。
C-c C-a :開啟自動模式,自動格式化輸入的代碼。此命令是開關(guān)命令。
編譯程序 :從菜單中選擇Compile時,Emacs要求輸入編譯命令。如果有一個Make文件,可以接受默認設(shè)置。否則,程序員必須為正確編譯程序而填寫編譯命令行。
編譯程序 :M-x compile
調(diào)用GDB :在Emacs中使用GDB時,程序員能獲得GDB的全部標準特性。在Tools菜單中選擇GDB,會出現(xiàn)系統(tǒng)提示,要求輸入可運行文件以便進行調(diào)試。當(dāng)輸入了名字后,GDB被調(diào)用。最初將看到一個和標準GDB一樣的窗口。在程序的適當(dāng)?shù)胤皆O(shè)置斷點后運行程序,源代碼窗口將會有=>標記指向斷點位置并高亮顯示。在GDB窗口中可以輸入GDB的所有命令。
調(diào)用GDB :M-x GDB
標記功能 :在命令行中運行etags程序創(chuàng)建TAGS文件。例如:$etags *.c。然后在Tools菜單中使用Tags選項,對文件進行操作?梢允褂肍ind Tag(M-.)找到一個函數(shù),并且將光標定位于該函數(shù)的第一行;如果該函數(shù)在一個以上的文件中出現(xiàn),就可以使用(M-,)繼續(xù)搜索其他的文件。
M-! :運行Shell Command
M-x shell :打開shell
C-M-f :向前匹配括號
C-M-b :向后匹配括號
M-/ :代碼自動完成
C-M-\ :對當(dāng)前選區(qū)重排
*********窗口***********
C-x 1 :最大化當(dāng)前窗口
C-x o :光標移到其他窗口
C-x 2 :對窗口水平分割
C-x 3 :對窗口垂直分割
C-x 0 :關(guān)閉當(dāng)前窗口
*********緩沖區(qū)***********
C-x C-f :打開或創(chuàng)建文件
C-x C-b :顯示buffer列表,可以用方向鍵選擇
C-x C-w :另存為
C-x b :switch-to-buffer
C-x k :kill buffer
C-x C-s :save buffer
C-x C-c :save buffer and kill terminal
C-x ← :pervious buffer
C-x → :next buffer
********Emacs幫助************
C-h ? :得到關(guān)于幫助的完整列表
M-x apropos :想做一件事情,但是不知道如何去做?梢杂蒙厦娴拿,然后關(guān)鍵字甚至是正則表達式, Emacs就會搜索幫助中一切相關(guān)的信息。會得到一個列表,每一項都有超鏈接和簡要的說明。
C-h k :別人告訴我一個快捷鍵,我想知道它具體是怎么回事?梢杂蒙厦娴拿睿缓蟀涯莻鍵按一遍,Emacs就會告訴你是怎么回事了。
C-h f :上面的命令,然后輸入你要查詢的命令(即按下M-x然后能輸入的那些命令)
C-h v :上面的命令,然后輸入變更名,可以查看變更的說明和光前值。
C-h m :可以得到當(dāng)前所有mode的一個總體說明。
C-h b :查看當(dāng)前buffer所有可用的快捷鍵
C-h t :打開學(xué)習(xí)向?qū)?nbsp;
C-h w :查看某命令對應(yīng)的快捷鍵
<快捷鍵序列> C-h :查看當(dāng)前buffer中以<快捷鍵序列>開頭的所有快捷鍵列表。例如想看所有以C-x開頭的快捷鍵就輸入C-x C-h就可以了。
find-function :查看Emacs函數(shù)的代碼。M-x find-function。
find-variable :查看變量的代碼。
describe-face :查看face的文檔
find-face-definition :查看face的代碼