首先來一發ArchWiki的Emacs簡體中文的入門教程
https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
php
怎樣設置,Emacs中文菜單?
把包內的3個文件丟到 emacs/share/emacs/site-lisp下面。 在~/ 建一個 .emacs的文件,在裏面添加一下內容,次序聽說是不能顛倒: (require 'english-menu) (require 'chinese-menu) (require 'mule-menu)
來源:http://forum.ubuntu.org.cn/viewtopic.php?t=193161
|
漢化方案2:html
https://sourceforge.net/projects/emacslocale/files/ 下下載相應的emacs漢化包文件
java
按照對應的版本,把本漢化包下的 emacs-xx.x 目錄整個複製到原 Emacs 目錄,合併到原來的文件夾便可,不須要額外調整註冊表內容
* 先發布 23.1 - 24.2 for Windows 漢化包, for Linux 還需進一步調試和細節調整,稍後發佈;
* 已編寫翻譯開發包模板,軟件包暫定名爲: emacs-locale-dev.deb, 能夠參照模板進行其它語言,
如繁體中文,法語,德語等的翻譯。調試完成後稍後一併發佈;
* 已編寫 man 手冊,用於指導 emacs-locale 的翻譯註意事項。用法:
man emacs-transor
稍後會包含在 emacs-locale-dev.deb 中;
* 基於翻譯原始版本進行的腳本翻譯,各版本譯詞統一;
* 相對以前發佈的漢化包,結構進行了優化;
* 默認設置能完美支持gb2312/gbk/gb18030 (Emacs 22.3 及更早的版本,因自身緣由,沒法直接支持gb18030);
linux
來源論壇:http://forum.ubuntu.org.cn/viewtopic.php?t=212467&f=17#p2743210shell
Emacs的我的配置文件:(與vim和sublime同樣,Emacs是一款自由的可我的定製的編輯器)編程
http://emacser.com/dea.htm 來源Emacs中文網。
ubuntu
Emacs中的Color Theme以及字體設置
參考:http://www.cnblogs.com/Jerry-Chou/archive/2011/02/21/1960011.html
vim
步1、下載如下安裝包並安裝windows
一、mingw-get-inst在線安裝包下載地址:http://sourceforge.net/projects/mingw/files/併發
二、emacs安裝包下載地址:http://www.gnu.org/software/emacs/
步2、設置環境變量
鼠標右鍵點擊「個人電腦」 -> 點擊"屬性" -> 選擇"高級"選項卡 -> 點擊"環境變量按鈕" ->設置系統環境下變量名path的變量值 以下圖

在變量值輸入框裏分別加入如下目錄路徑
一、emacs安裝目錄下的bin文件夾路徑
二、mingw安裝目錄下的bin文件夾路徑
注意:兩個路徑之間要以分號隔開,如:D:\work\tools\emacs-23.2\bin;D:\work\tools\MinGW\bin
設置成功後就可使用emacs或dos下使用放在bin文件夾裏的gcc/g++/gdb等工具了

符號
C-
意思是按住 Ctrol 鍵
-
M- 意指 Meta 鍵 (鍵盤上若無
Meta
鍵,則能夠ALT
ESC
鍵來取而代之)
-
DEL 意指退格鍵 (
不是 刪除(Delete) key)
-
RET 意指回車鍵
-
SPC 意指空格鍵
-
ESC 意指Escape鍵
-
TAB 意指Tab鍵
-
-
像 "C-M-" (or "M-C") 這樣連在一塊兒的意味着同時按住 Control 和 Meta 鍵不放.
用方向鍵
C-p 、 C-b 、 C-f 和 C-n 這四個命令。它們的功能和方向鍵是同樣的,以下圖所示:
上一行 C-p (Prev line)
.
.
.
向左移 C-b .... 。.... 向右移 C-f (Forward character)
(Backward ) .
.
.
下一行 C-n (Next line)
「P N B F」四個字母分別表明了四個詞,用這四個詞記憶這些組合鍵會更容易:
P 表明 previous(上一行),
N 表明 next(下一行),
B 表明 backward(回
退),
F 則表明 forward(前進)
進入Emacs
要進入GNU Emacs,只需鍵入它的名字 emacs
離開Emacs
掛起Emacs: C-z
永久離開Emacs C-x C-c
文件
讀取文件到Emacs C-x C-f
保存文件到磁盤 C-x C-s
保存全部文件 C-x s
插入其它文件的內容到當前緩衝 C-x i
用將要讀取的文件替換當前文件 C-x C-v
將當前緩衝寫入指定的文件 C-x C-w
Version control checkin/checkout C-x C-q
取得幫助
進入幫助系統很簡單,只須要輸入C-h(或F1)並跟隨要獲取幫助的對象,初次使用Emacs的用戶能夠輸入C-h t進入使用手冊
離開幫助窗口 C-x 1
滾動幫助窗口 C-M-v
匹配:顯示與字符a串匹配的命令 C-h a
顯示一個鍵的功能 C-h c
詳細描述一個功能 C-h f
取得詳細模式的信息 C-h m
錯誤恢復
取消當前要執行的命令 C-g
恢復系統崩潰後丟失的文件 M-x recover-file
撤銷更新 C-x u或C-_
使緩衝回覆到初始內容 M-x revert-buffer
Redraw garbaged scree n C-l
增量查找(Incremental Search)
向前查找 C-s
向後查找 C-r
規則表達式查找 C-M-s
反向規則表達式查找 C-M-r
選擇前一個查找字符串 M-p
選擇下一個查找字符串 M-n
退出增量查找 RET
取消上一個字符的做用 DEL(Backspace)
退出當前查找模式 C-g
在查找的過程當中可重複使用C-s和C-r來改變查找方向
移動(Motion)
向前一個字符 C-f
向後一個字符 C-b
向前一個字 M-f
向後一個字 M-b
向上一行 C-p
向下一行 C-n
到行首 C-a
到行尾 C-e
到句首 M-a
到句尾 M-e
到段首 M-{
到段尾 M-}
到頁首 C-x [
到頁尾 C-x ]
到表達式首部 C-M-f
到表達式尾部 C-M-b
到函數首部 C-M-a
到函數尾部 C-M-e
到緩衝首部 M-<
到緩衝尾部 M->
滾動到下一屏 C-v
滾動到上一屏 M-v
滾動到右邊一屏(內容向左移動) C-x <
滾動到左邊一屏(內容向右移動) C-x >
滾動當前行到屏幕中央 C-u C-l
Killing和Deleting
向前delete字符 C-d
向後delete字符 DEL(Backspace)
向前delete到字首 M-d
向後delete到字尾 M-DEL(Backspace)
向前delete到行首 M-0 C-k
向後delete到行尾 C-k
向前delete到句首 C-x DEL(Backspace)
向後delete到句尾 M-k
向前delete到表達式首部 M-- C-M-k
向後delete到表達式尾部 C-M-k
Kill區域 C-w
拷貝區域到Kill Ring M-w
Kill到下一個給定字符出現的位置 M-z <char>
拉回(yank)上次kill的內容 C-y
用更早kill的內容取代拉回的上次kill的內容 M-y
標記(Marking)
標記當前位置 C-SPC或C-@
以字符爲單位使用移動命令動態標記區域 C-x C-x
以字爲單位使用移動命令動態標記區域 M-@
標記一段 M-h
標記一頁 C-x C-p
標記一個表達式 C-M-@
標記一個函數 C-M-h
標記整個緩衝區 C-x h
Query Replace
交互式地替換一個文本串 M-%
交互式地替換一個規則表達式 M-x query-replace-regexp
替換當前的並移動到下一處 SPE
替換當前的但不移動到下一處 ,
不替換當前的並移動到下一處 L(Backspace)
替換全部剩下的符合條件的文本 !
退出替換模式 RET
進入遞歸的編輯模式 C-r
退出遞歸的編輯模式 C-M-c
多窗口(Multiple Windows)
(When two commands are shown,the second is for 「other frame」)
刪除全部其它窗口 C-x 1
上下分割當前窗口 C-x 2 C-x 5 2
左右分割當前窗口 C-x 3
刪除當前窗口 C-x 0 C-x 5 0
滾動其它窗口 C-M-v
切換光標到另外一個窗口 C-x o
選擇另外一個窗口中的緩衝 C-x 4 b C-x 5 b
顯示另外一個窗口中的緩衝 C-x 4 C-o C-x 5 C-o
在另外一窗口中查找並打開文件 C-x 4 f C-x 5 f
在另外一窗口中以只讀方式打開文件 C-x 4 r C-x 5 r
在另外一窗口中運行dired命令 C-x 4 d C-x 5 d
在另外一窗口中查找tag C-x 4 . C-x 5 .
增長窗口高度 C-x ^
減少窗口寬度 C-x {
增長窗口寬度 C-x }
格式(Formatting)
縮進當前行(與模式相關) TAB
縮進區域(與模式相關) C-M-
縮進表達式(與模式相關) C-M-q
Indent region rigidly arg. Columns C-x TAB
在光標後插入一個新的行 C-o
靜態地將一行下移 C-M-o
刪除光標附近的空行(留下一行) C-x C-o
與上一行合併成一行 M-^
刪除光標附近的全部空格 M-
刪除光標附近的空格(留下一格) M-SPC
Fill paragraph M-q
Set fill column C-x f
設置每一行開始的前綴 C-x .
設置字體 M-g
Case Change
將一個字設置爲大寫 M-u
將一個字設置爲小寫 M-l
將一個字首字母設置爲大寫 M-c
將一個區域設置爲大寫 C-x C-u
將一個區域設置爲小寫 C-x C-l
The Minibuffer
(the following keys are defined in the minibuffer)
最大程度地補全命令 TAB
補全命令中的一個字 SPC
完成並執行一個命令 RET
列出命令全部可能的後續部分 ?
列出在當前命令以前輸入的命令 M-p
列出在當前命令以後輸入的命令 M-n
用規則表達式在命令歷史記錄中向後搜尋 M-r
用規則表達式在命令歷史記錄中向前搜尋 M-s
重複執行上一條命令 C-x ESC ESC
緩衝(Buffer)
選擇另外一個緩衝 C-x b
列出全部的緩衝 C-x C-b
Kill一個緩衝 C-x k
置換(Transposing)
字符置換 C-t
字置換 M-t
行置換 C-x C-t
表達式置換 C-M-t
拼寫檢查(Spelling Check)
對當前的字進行拼寫檢查 M-$
檢查區域內全部的字 M-x ispell-origin
檢查緩衝內全部的字 M-x ispell-buffer
標記 (Tags)
查找標記 M-.
查找標記下一次出現的位置 C-u M-.
指定一個新的標記文件 M-x visit-tags-table
Regexp search on all files in tabs table M-x tags-search
在全部文件中執行查詢-替換 M-x tags-query-replace
繼續進行上一次標記查找或查詢-替換 M-,
Shells
執行一個shell命令 M-!
在一個區域上執行sheel命令 M-|
經過shell命令過濾區域 C-u M-|
在窗口中啓動一個shell M-x shell
矩形(Rectangles)
拷貝一個矩形到寄存器 C-x r r
Kill矩形 C-x r k
拉回矩形 C-x r y
打開一個矩形, 將文本移動至右邊 C-x r o
清空矩形 C-x r c
爲矩形中每一行加上一個字符串前綴 C-x r t
規則表達式(Regular Expressions)
除換行符外的全部單個字符 .
零個或多個重複 *
一個以上的重複 +
零個或一個重複 ?
轉譯字符
選擇(or) |
分組 (…)
與第n個組相同的文本 n
At work break b
Not at work break B
寄存器(Register)
存儲區域到寄存器 C-x r s
插入矩形內容到緩衝 C-x r i
存儲光標位置到寄存器 C-x r SPC <num>
跳躍到寄存器中存儲的光標位置 C-x r j <num>
鍵盤宏(Keyboard Macros)
開始定義一個鍵盤宏 C-x (
結束鍵盤宏的定義 C-x )
執行上一次定義的鍵盤宏 C-x e
追加到上一個鍵盤宏 C-u C-x (
爲上一個鍵盤宏命名 M-x name-last-kbd-macro
在緩衝中插入Lisp M-x insert-kbd-macro
Tags
Tags 是一個顯爲人知的功能? 因此我想提一下. 這不是emacs發明的, 而是vi 本來的特異功能. emacs只是發揚光大而已.
假設你有一個目錄, 裏面是一個程式的原始碼, 好比說, tin 的原始碼, 放在 ~/tin-1.3beta 下面. 你想看它們.
首先,
叫emacs cd到該目錄: M-x cd
而後,
創建tag table. tag table 就是一張對照表, 記錄哪一個符號(variable/function call) 對映到哪一個檔案的哪一個地方. 有這張表, emacs可讓咱們快速的在程式碼內遊走. 通常這張表是一個檔案, 叫做TAGS (大寫)
M-! etags *.c
M-! 是執行external shell command的意思. etags就是emacs的建表程式. 你只要告訴它你的source code在那裏便可.
vi的話是使用ctags這個程式, 它建出來的檔名叫tags (小寫). 由於咱們介紹emacs, 因此無論它.
然 後, 怎麼看程式? 你知道全部的C 程式都是由main()開始, 因此你想找到main()在哪一個檔案. 這時只要按 M-. 而後emacs會問你tag table在哪裏. 由於咱們已經cd到該目錄, 直接按enter就行了. 而後輸入main, emacs就會把你帶到main(){ ... }去.
若是 你看到某個程式片段呼叫一個你沒看過的函式, 你能夠把遊標移到該函式的名字上, M-. ENTER 就搞定了.
若是 emacs找錯了 (好比有變數和函式同名, emacs跳到變數去), 那你能夠用 C-u M-. 找下一個.
在編輯程式碼的時候, M-SPC 頗有用, 它會把遊標附近的空白縮成一個. 在其它地方也有效.
拼寫檢查
固然只是針對英文。
Ispell
選中一塊區域,或者對整個編輯緩衝區進行拼寫檢查: M-x ispell-buffer RET, 這時會打開ispell緩衝區,C-h能夠查看一些拼寫檢查的幫助信息。
檢查單詞。在一個單詞上執行M-$,會對這個單詞進行拼寫檢查。
單詞拼寫補全。在一個未拼完的單詞後執行ESC TAB(M-TAB)。
只要啓用過Ispell, 他就將一直在後臺運行。M-x ispell-kill-ispell,能夠殺死這個進程。
感受很好用。
flyspell
一個擴展,能夠在編輯的時候直接進行拼寫檢查,也就是spell-check on the fly。它也是利用Ispell。
M-x flyspell-mode RET
Tips
改變buffer的只讀屬性
M-x toggle-read-only
在C模式下輸入tab
C-q TAB : 對TAB不作解釋,直接輸
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C和C++模式
===指定爲C++模式的方法===
通常根據擴展名自動設定,不用指定,不過有時候若但願.h文件是C++模式的(缺省是C模式),在文件第一行(或其末尾)上加入
<span style="font-size:12px;">// -*- C++ -*-
</span>
===語法高亮===
不是C模式專有,M-x global-font-lock-mode RET 或在.emacs中加入(global-font-lock-mode t)。
===子模式===
auto-state 輸入時自動縮進,自動換行
hungry-state Backspace時,自動刪除儘量多的空白和空行
C-c C-t 同時轉換(開/關)auto-state和hungry-state子模式
C-c C-a 轉換 auto-state 子模式
C-c C-d 轉換 hungry-state 子模式
===編輯命令===
C-c . 設置縮進風格(按TAB鍵可列出可用的風格,缺省的爲gnu,其縮進爲2個字符;linux爲8個;k&r爲5個,java爲4個)
TAB 從新縮進當前行
M-/ 自動補齊(緩衝區中能找獲得的串)
M-; 行尾加入註釋
C-c C-e 擴展宏
C-c C-c 註釋掉整個區域
C-u C-c C-c 取消註釋
C-c C-/ 將區域中的每一行結尾都加入一個'/'字符
M-x c-beginning-of-defun
M-x c-end-of-defun 跳到函數的開頭或結尾
C-c C-u 跳轉到前面的一個#ifdef
C-c C-p
C-c C-n 跳轉到宏的開頭或結尾
C-M-h 選中整個函數區域
C-c C-/ 在所選區域的每一行後面添加" / "
C-M-p 跳轉到}或)匹配的括號
C-M-n 跳轉到(或{匹配的括號
M-x auto-insert 自動添加
#ifndef TEST_H
#define TEST_H
#endif
M-@ 把光標移動到單詞開頭,選中整個單詞區域
C-M-h 選中當前行
C-u, C-@ 回到上次標籤的位置
===編譯和調試===
M-x compile RET 編譯
M-x gdb RET 調試
C-x ` (出錯信息中)下一個錯誤,一個窗口顯示錯誤信息,另外一個顯示源碼的出錯位置
C-c C-c 轉到出錯位置
啓動gdb調試器後,光標在源碼文件緩衝區中時:
C-x SPC 在當前行設置斷點
C-x C-a C-s step
C-x C-a C-n next
C-x C-a C-t tbreak
C-x C-a C-r continue
Dired模式
參考文檔
經常使用命令:
m : mark
u : unmark
d : mark delete
D : 當即刪除
x : 執行刪除
g : refresh
C : copy
R : move
+ : 建立目錄
Hideshow minor mode
在編程時能夠隱藏函數的實現。M-x hs-minor-mode
(setq hs-minor-mode-prefix [(contrl o)]) 能夠改變複雜的命令前綴.
用法:
`C-c @ C-h' : Hide the current block (`hs-hide-block').
`C-c @ C-s' : Show the current block (`hs-show-block').
`C-c @ C-c' : Either hide or show the current block (`hs-toggle-hiding')
`C-c @ C-M-h' : Hide all top-level blocks (`hs-hide-all').
`C-c @ C-M-s' : Show everything in the buffer (`hs-show-all').
十六進制模式
查看文本的十六進制編碼
M-x hexl-mode