使用Linux已經(jīng)有一段時間了,現(xiàn)在Linux已經(jīng)成為我辦公、學習、娛樂不可缺少的平臺。Office系列軟件,網(wǎng)絡工具,開發(fā)軟件,這些在Windows下標價昂貴的東西,在Linux下不僅可以免費獲取,而且還可以瀏覽源碼觀其內(nèi)幕,附加價值是相當可觀的。
作為一名開發(fā)人員,選擇一個好的IDE是必要的。在Linux環(huán)境下,可考慮選擇Eclipse。它的界面友好,編輯、調(diào)試、代碼管理功能兼?zhèn)洹2贿^本文介紹的是另一款功能卓絕的開發(fā)工具:Emacs。
Eclispe比較適合初級開發(fā)人員,而Emacs則比較適合高級開發(fā)人員。功能方面兩者相當,或者Emacs略勝一籌。相比Eclipse華貴的界面,Emacs更顯得簡潔高效,性能方面表現(xiàn)更佳。正如一名資深的開發(fā)專家所言,當你所寫的代碼超過3萬行的時候,一個清醒的大腦比什么IDE都強。這時候也許隨心所欲比美好的外觀更可取,這也是國外很多人士鐘情于Emacs的理由。
下面是對Emacs快捷鍵的總結(jié),希望能幫助大家更快適應Emacs使用。
文件操作
C-x C-f 打開文件,出現(xiàn)提示時輸入/username@host:filepath可編輯FTP文件
C-x C-v 打開一個文件,取代當前緩沖區(qū)
C-x C-s 保存文件
C-x C-w 存為新文件
C-x i 插入文件
C-x C-q 切換為只讀或者讀寫模式
C-x C-c 退出Emacs
編輯操作
C-f 前進一個字符
C-b 后退一個字符
M-f 前進一個字
M-b 后退一個字
C-a 移到行首
C-e 移到行尾
M-a 移到句首
M-e 移到句尾
C-p 后退一行
C-n 前進一行
M-x goto-line 跳到指定行
C-v 向下翻頁
M-v 向上翻頁
M-< 緩沖區(qū)頭部
M-> 緩沖區(qū)尾部
C-M-f 向前匹配括號
C-M-b 向后匹配括號
C-l 當前行居中
M-n or C-u n 重復操作隨后的命令n次
C-u 重復操作隨后的命令4次
C-u C-u 重復操作隨后的命令8次
C-x ESC ESC 執(zhí)行歷史命令記錄,M-p選擇上一條命令,M-n選擇下一條命令
C-d 刪除一個字符
M-d 刪除一個字
C-k 刪除一行
M-k 刪除一句
C-w 刪除標記區(qū)域
C-y 粘貼刪除的內(nèi)容
注意:C-y可以粘貼連續(xù)C-k刪除的內(nèi)容;先按C-y,然后按M-y可以選擇粘貼被刪除的內(nèi)容
C-@ 標記開始區(qū)域
C-x h 標記所有文字
C-x C-x 交換光標位置和區(qū)域標記區(qū)開頭
M-w 復制標記區(qū)域
C-_ or C-x u 撤消操作
執(zhí)行SHELL命令
M-x shell 打開SHELL
M-! 執(zhí)行SHELL命令 (shell-command)
M-1 M-! 執(zhí)行SHELL命令,命令輸出插入光標位置,不打開新輸出窗口
M-| 針對某一特定區(qū)域執(zhí)行命令(shell-command-on-region), 比如 C-x h M-|uuencode
窗口操作
C-x 0 關閉本窗口
C-x 1 只留下一個窗口
C-x 2 垂直均分窗口
C-x 3 水平均分窗口
C-x o 切換到別的窗口
C-x s 保存所有窗口的緩沖
C-x b 選擇當前窗口的緩沖區(qū)
C-x ^ 縱向擴大窗口
C-x } 橫向擴大窗口
緩沖區(qū)列表操作
C-x C-b 打開緩沖區(qū)列表
d or k 標記為刪除
~ 標記為未修改狀態(tài)
% 標記為只讀
s 保存緩沖
u 取消標記
x 執(zhí)行標記的操作
f 在當前窗口打開該緩沖區(qū)
o 在其他窗口打開該緩沖區(qū)
目錄操作
C-x d 打開目錄模式
s 按日期/文件名排序顯示
v 閱讀光標所在的文件
q 退出閱讀的文件
d 標記為刪除
x 執(zhí)行標記
D 馬上刪除當前文件
C 拷貝當前文件
R 重名名當前文件
+ 新建文件夾
Z 壓縮文件
! 對光標所在的文件執(zhí)行SHELL命令
g 刷新顯示
i 在當前緩沖區(qū)的末尾插入子目錄的內(nèi)容
[n]m 標記光標所在的文件,如果指定n,則從光標所在的文件起后n個文件被標記
[n]u 取消當前光標標記的文件,n的含義同上
t 反向標記文件
%-m 正則標記
q 退出目錄模式
說明:在目錄模式中,如果輸入!,在命令行中包含*或者?,有特殊的含義。*匹配當前光標所在的文件和所有標記的文件,?分別在每一個標記的文件上執(zhí)行該命令。
程序編譯
M-x compile 執(zhí)行編譯操作
M-x gdb GDB排錯
M-x dbx DBX排錯
M-x xdb XDB排錯
M-x sdb SDB排錯
搜索模式
C-s key 向前搜索
C-s 查找下一個
ENTER 停止搜索
C-r key 反向搜索
C-s C-w 以光標所在位置的字為關鍵字搜索
C-s C-s 重復上次搜索
C-r C-r 重復上次反向搜索
C-s ENTER C-w 進入單詞搜索模式
C-r ENTER C-w 進入反向單詞搜索模式
M-x replace-string ENTER search-string ENTER 替換
M-% search-string ENTER replace-string ENTER 交互替換
C-r 在進入查找/替換模式后,該命令進入迭代編輯模式
C-M-x 退出迭代編輯模式,返回到查找/替換模式
C-M-s 向前正則搜索
C-M-r 向后正則搜索
C-M-% 正則交互替換
SHELL模式
C-c C-c 相當于Bash下的C-c
C-c C-z 相當于Bash下的C-z
C-c C-d 相當于Bash下的C-d
M-p 執(zhí)行前一條命令
C-n 執(zhí)行下一條命令
C-c C-o 刪除最后一條命令產(chǎn)生的輸出
C-c C-r 屏幕滾動到最后一條命令輸出的開頭
C-c C-e 屏幕滾動到最后一套命令輸出的結(jié)尾
C-c C-p 查看前一條命令的輸出
C-c C-n 查看后一條命令的輸出
打印資料
M-x print-buffer 先使用pr,然后使用lpr
M-x lpr-buffer 直接使用lpr
M-x print-region
M-x lpr-region
收發(fā)郵件
M-x mail 發(fā)送郵件, C-c C-s 發(fā)送,C-c C-c 發(fā)送并退出
M-x rmail 接受郵件
參考資料:
O'Reilly, Emacs 3rd Edition
from: http://www.devfront.com:8080/?q=node/115