Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130018
  • 博文数量: 47
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-30 12:26
文章分类
文章存档

2010年(32)

2009年(15)

我的朋友

分类: LINUX

2010-04-05 19:30:38

本文件列出了在Emacs C mode下面常見的指令及所謂的C mode就是在Emacs下面撰寫C語言程式的模式。在這個模式下面Emacs會提供一些針對C語言所增加的特性及功能。對於C的程式設計師而言是相當好 用的。雖然這篇文章著重在C mode之下,但是大部分的指令對於其他的模式依舊適用。 避免被其他的設定所影響Emacs本身是一個非常有彈性的編輯器,因此經過相當的設定之後,原本預設的設定可能會被修改掉了。為了讓您的Emacs能夠符 合本文件所列出的熱鍵及弁遄C建議您在home directory的.emacs檔案中加入下面的設定。

(setq inhibit-default-init t) ; 避免被系統預設的設定所影響

(keyboard-translate ?C-h ?C-?) ; 可以避免backspace變成help hot-key的問題

(keyboard-translate ?C- ?C-h) ; 將help hot-key由Ctrl-h轉成Ctrl-

;; 以下的設定是讓C mode具有 K&R 所建議的樣式

(setq c-mode-hook '(lambda () (auto-fill-mode 1)))

(setq c-indent-level 5)

(setq c-continued-statement-offset 5)

(setq c-argdecl-indent 0)

(setq c-brace-offset -5)

(setq c-label-offset -5)

進入及離開Emacs如果您的系統上面已經安裝好emacs,只要在shell下面執行emacs xxx.c就可以以C mode進入emacs中。如果您要離開emacs,則需要在emacs中鍵入:Ctrl-x-c。

檔案控制及存取

Ctrl-x Ctrl-s儲存目前正在編輯視窗內的檔案Ctrl-x s儲存所有目前在編輯的檔案Ctrl-x k關閉目前正在編輯視窗的檔案,但是不存檔Ctrl-x Ctrl-c跳出emacsCtrl-x Ctrl-w另存新檔Ctrl-x Ctrl-f開啟檔案Ctrl-x Ctrl-r以唯讀模式開啟檔案Ctrl-x Ctrl-q將原本是唯讀的檔案變成可寫入

游標的移動

Ctrl-b往回移一個字元Ctrl-f往後移一個字元Ctrl-p往上移動一行Ctrl-n往下移動一行Ctrl-a移到行首Ctrl-e移到行 末Esc b往前移一個英文字Esc f往後移一個英文字Esc v往上移一頁Ctrl-v往下移一頁Esc <移到檔案最前面Esc >移到檔案最後面Esc a移到敘述(statement)最前面Esc e移到敘述最後面Esc Ctrl-a移到Function最前面Esc Ctrl-e移到Function最後面Ctrl-u重複前一個指令四次

刪除與回復

DEL刪除游標左邊的字元Ctrl-d刪除游標所在位置的字元ESC DEL刪除游標左邊的英文字ESC d刪除游標右邊的英文字Ctrl-k刪除所有在游標右邊的字元ESC Shift-2設定Region的MarkCtrl-w從設定Region Mark到目前游標之間的字元全部刪除Ctrl-y將被Ctrl-w指令所刪除的字元回復ESC y將被Ctrl-y所回復的字元再刪除Ctrl-u重複前一個命令四次Ctrl-x u回復前一個命令所造成的影響(Undo)

搜尋與置換

Ctrl-r向上搜尋ESC在搜尋模式中按ESC可以離開搜尋模式ESC %啟動置換模式。在置換模式中,首先要輸入將被置換掉的字串,然後輸入新字串。接下來游標會移到需要被置換的地方。你需要用下面的key來指定動作: y:置換目前游標所在的字串,並且移到下一個可被置換的字串。 n:跳過目前游標所在的字串。移到下一個可被置換的字串。 !:將整個檔案一次置換完畢,不進行任何詢問。 ESC:結束置換模式。 .:將目前的字串置換後,即離開置換模式。 ^:回到前一個符合置換的地方。

拷貝與搬移

Ctrl-@設定標記起始點Ctrl-w剪下標記起始點至目前游標所在位置的文字。Alt-w複製標記起始點至目前游標所在位置的文字。Ctrl-y貼上之前所剪下或複製的文字至目前游標所在的位置。

多重視窗控制

Ctrl-x 0刪除目前的視窗(不會關閉正在編輯的檔案)Ctrl-x 1刪除其他的視窗(不會關閉正在編輯的檔案)Ctrl-x 2水平分割視窗Ctrl-x 3垂直分割視窗Ctrl-x b將目前視窗內的檔案切換成其他的檔案Ctrl-x o將游標移動到其他視窗之內

加入註解

ESC ;在Emacs的C mode中按下'ESC ;'就會出現註解符號/* 及*/。並且在編輯時會自動幫你換行。

編譯程式

ESC x compile在C mode中輸入ESC x compile就可以在不離開Emacs的狀況下進行程式的編譯。此時,emacs會顯示預設的編譯命令是make -k。compile之後,所有訊息都會出現在另一個視窗。Ctrl-x `編譯完成後,如果有錯誤發生,按下Ctrl-x `就可以跳到下一個有錯誤的地方,修改完成後,再按一次就可以繼續修改下一個錯誤,一直到沒有其他的錯誤為止。

SHELL

ESC x shell進入Shell mode。可以讓你在emacs的視窗中使用shell。Ctrl-c Ctrl-c將正在執行的程式中斷Ctrl-c Ctrl-z暫停目前的工作Ctrl-c Ctrl-r將游標移動到最後一個命令Ctrl-c Ctrl-y重複執行前一個命令。

Tagstags是一個很有用的工具,他可以幫助您將source檔案中所有function定義,及 typedef的定義,全部收集成為一個資料庫,讓你可以很輕易的跳到您要的函數定義。在使用emacs的tags機制之前,您需要先將有關的tag的資 料庫建構出來。建構的方法如下:

% etags -tlist_of_source_file

list_of_source_file就是您要做紀錄的原始程式檔案。您可以指定很多個檔案。例如:

% etags -t *.[ch]

其中,-t的參數主要是要求etags將typedef的宣告一併放入資料中。

在Emacs中,如果要使用tags的機制,可以使用下表的命令:

ESC .尋找函數的定義。你可以透過這個命令來找尋你要的函數。輸入此命令後,emacs會提示訊息,要求你輸入要找尋的函數名稱。或是typedef的定義。 Ctrl-x 4 .功能同ESC .。但是會把找到的函數定義顯示在另外一個視窗。ESC x visit-tags-table使用其他的TAGS檔案ESC x tags-search以regular expression的方式來找尋函數名稱。ESC ,輸入ESC x tags-search之後,可以用這個來進行尋找下一個的動作。ESC x tags-query-replace以regular expression的方式來置換函數名稱。

其他

Ctrl-x Ctrl-b目前正在處理的檔案列表Ctrl-x b將目前視窗內的檔案切換成其他的檔案Ctrl-x d 會在目前的視窗中顯示目錄列表Ctrl-x 4 d在其他視窗顯示目錄列表

阅读(1009) | 评论(0) | 转发(0) |
0

上一篇:Emacs 常用命令

下一篇:对话 UNIX: 手册页

给主人留下些什么吧!~~