2010年1月19日 星期二

Emacs 編輯器

雖然說 emacs 並非 SVR4 或是 Solaris 20 的一部份,但幾乎所有的 UNIX 系統上都可以看到它的蹤跡,常有人拿它來代替 vi,版本也相當的多。本書著墨者是 GNU emacs,由 Free Software Foundation 出版。若要更詳細的解說,請參考 "Learning GNU Emacs" 一書。

你可以用下列指令啟動 emacs:

  emacs [file]

有些系統上的 gnu emacs 是用 gmacs 而不是 emacs



p7-2



列表說明事項


Emacs 常用兩個按鍵,Control Meta ( 通常是 Escape )。本章中以 C- 表示按著 CTRL 鍵不放然後按下後面的鍵。M- 則表示用 Meta 鍵,但按後面的鍵時不需按著 Meta 鍵。

下列表中,第一欄是按鍵,最後一欄是說明,若有中間欄時,則為指令說明。這個指令名稱可以用 M-x 後打入指令名稱使用。若對完整名稱不確定,也可只打入幾個字,然後按空白或是 enteremacs 就會列出所有可能的指令名稱。

因為 emacs 是個相當複雜的編輯器,有上百個指令,在此只列出了一部份供速查。若要瀏覽所有的指令,可打入 C-h ( 輔助說明 ) 或是 M-x ( 可看指令名稱 )


------------------------------------------------------------------------

基本指令

若是一開始使用 emacs,下列為一些絕對必要的指令 :

C-h                            進入線上輔助說明系統
C-x C-s              存檔
C-x C-c              跳出 emacs
C-x u              恢復前一次的動作 ( 可重複使用 )
C-g                            跳出目前的指令
C-p                            上下前後一行或一個字
C-n
C-f
C-b
C-v                            前後一頁
M-v
C-s                            尋找字串
C-d                            刪除一個字元

emacs               指令分類



p7-3


以群組的方式列出指令

注意 : 下面列出的是按鍵,名稱和說明,C- Control 鍵, M- Meta 鍵。


------------------------------------------------------------------------

檔案指令

C-x C-f              find-file                            找出檔案並讀入
C-x C-v              find-alternate-file              找出另一個檔案並取代用 C-x C-f 讀入者
C-x i              insert-file                            插入指令
C-x C-s              save-buffer                            存檔 ( 可能會造成終端機當機 ; C-q 重開 )
C-x C-w              write-file                            將暫存區的資料寫入檔案
C-x C-c              save-buffers-kill-emacs              跳出 emacs
C-z              suspend-emacs                            暫停 emacs,用 fg 或是 exit 來重開


------------------------------------------------------------------------

游標指令

C-f              forward-char                            向右 ( forward ) 移動一格
C-b              backward-char                            向左 ( backward ) 移動一格
C-p              previous-line                            向上 ( previous ) 移動一行
C-n              next-line                                          向下 ( next ) 移動一行
M-f              forward-word                            向右 ( forward ) 移動一個單字
M-b              backward-word                            向左 ( backward ) 移動一個單字
C-a              beginning-of-line              到行頭
C-e              end-of-line                                          到行尾 ( end )
M-a              backward-sentence              向前移動一句
M-e              forward-sentence              向後移動一句
M-[              backward-paragraph              向上移動一段
M-]              forward-paragraph              向下移動一段
C-v              scroll-up                            向上一個畫面
M-v              scroll-down                            向下一個畫面
C-x[              backward-page                            向上一頁
C-x]              forward-page                            向下一頁
M->              end-of-buffer                            到檔尾
M-<              beginning-of-buffer              到檔頭
(none)              goto-line                            到第 n
(none)              goto-char                            到第 n 個字元
C-l              recenter                            將目前行放到畫面中央
M-n              digit-argument                            將下一個指令重複 n
C-u n              universal-argument              將下一個指令重複 n



p7-4

------------------------------------------------------------------------

刪除指令

DEL              backward-delete-char              刪除前一個字元
C-d              delete-char                            刪除目前字元
M-d              kill-word                            刪除目前單字
C-k              kill-line                            刪除目前位置到行尾
M-k              kill-sentence                            刪除目前句
C-x DEL              backward-kill-sentence              刪除前一句
C-y              yank                                          恢復刪除
C-w              kill-region                            將標記的段落刪除 ( 見下一節 )
(none)              backward-kill-paragraph              刪除前一段
(none)              kill-paragraph                            從目前位置刪除至段尾

------------------------------------------------------------------------

段落指令

C-@              set-mark-command              標記區塊起點終點
C-SPACE              (same as above)              同上
C-x C-p              mark-page                            標記一頁
C-x C-x              exchange-point-and-mark              將目前游標位置和標記位置對調
C-x h              mark-whole-buffer              標記暫存區
M-q              fill-paragraph                            重新將段落格式化
M-g              fill-region                            重新將區塊內的每個段落分別格式化
M-h              mark-paragraph                            標記段落

------------------------------------------------------------------------

停止和恢復指令

C-g              keyboard-quit                            停止目前指令
C-x u              advertised-undo                            恢復前一個指令 ( 可重複進行 )
(none)              revert-buffer                            將暫存區恢復到前一次存檔時的狀態

------------------------------------------------------------------------

調換指令

C-t              transpose-chars                            對調兩字元
M-t              transpose-words                            對調兩單字
C-x C-t              transpose-lines                            對調兩行
(none)              transpose-sentences              對調兩句
(none)              transpose-paragraphs              對調兩段



p7-5
------------------------------------------------------------------------

大小寫指令

M-c              capitalize-word                            將字的第一個字母改為大寫
M-u              upcase-word                            將單字改為大寫
M-l              downcase-word                            將單字改為小寫
M--M-c              negative-argument;capitalize-word              將前一個單字第一個字母改為大寫
M--M-u              negative-argument;upcase-word              將前一個單字改為大寫
M--M-l              negative-argument;downcase-word              將前一個單字改為小寫
(none)              capitalize-region              將區塊中的每個單字的第一個字母改為大寫
C-x C-u              upcase-region                            將區塊中的每個單字改為大寫
C-x C-l              downcase-region                            將區塊中的每個單字改為小寫


------------------------------------------------------------------------

漸進搜尋指令

C-s              isearch-forward                            向後搜尋
C-r              isearch-backward              向前搜尋
Meta              (none)                                          跳出搜尋
C-g              keyboard-quit                            停止搜尋 ; 回到出發點
DEL              (none)                                          將搜尋字串中不正確的字元刪除

------------------------------------------------------------------------

縮寫指令

(none)              abbrev-mode                            進出縮寫模式
C-x -              inverse-add-global-abbrev              先打入全域縮寫然後打入定義
C-x C-h              inverse-add-local-abbrev              先打入區域縮寫然後打入定義
(none)              unexpand-abbrev                            取消前一次的縮寫展開
(none)              write-abbrev-file              寫入縮寫檔
(none)              edit-abbrev                            編輯縮寫
(none)              list-abbrev                            列出縮寫
(none)              kill-abbrev                            刪除本次 emacs 中的縮寫


------------------------------------------------------------------------

暫存區指令

C-x b              switch-to-buffer              跳到指定的暫存區去
C-x C-b              list-buffer                            列出暫存區
C-x k              kill-buffer                            刪除指定的暫存區
(none)              kill-some-buffers              對每個暫存區都詢問是否刪除
(none)              rename-buffer                            將暫存區重新命名
C-x s              save-some-buffers              對每個暫存區都詢問是否儲存

------------------------------------------------------------------------

p7-6

視窗指令

C-x 2              split-window-horizontally              水平分割視窗
C-x 5              split-window-vertically                            垂直分割視窗
C-x >              scroll-right                            將視窗向右捲動
C-x <              scroll-left                            將視窗向左捲動
C-x o              other-window                            切換至另一視窗
C-x 0              delete-window                            關閉目前視窗
C-x 1              delete-other-window              關閉其他視窗,僅留目前視窗
(none)              delete-windows-on              將指定暫存區的所有視窗關閉
C-x ^              enlarge-window                            將視窗上下拉長
(none)              shrink-window                            將視窗上下縮小
C-x }              enlarge-window-horizontally                            將視窗左右變寬
C-x {              shrink-window-horizontally                            將視窗左右變窄
M-C-v              scroll-other-window              捲動另一視窗
C-x 4 f              find-file-other-window              在另一視窗中尋找檔案
C-x 4 b              switch-to-buffer-other-window              在另一視窗中切換到另一個暫存區
(none)              compare-windows                            比較兩個暫存區 ; 列出第一個找到的不同之處


------------------------------------------------------------------------

特殊 shell 字元

C-c C-c interrupt-shell-subjob              結束目前的 job
C-c C-d              shell-send-eof                            檔尾字元
C-c C-u              kill-shell-input              刪除目前行
C-c C-w              backward-kill-word              刪除前一個單字
C-c C-z              stop-shell-subjob              暫停目前的 job


------------------------------------------------------------------------

縮排指令

C-x              .              set-fill-prefix                            將行首到目前游標所在列設定為縮排字串,並將每段的第一行首插入此字串。若在第一列執行此指令則取消此功能。
(none)              indented-text-mode              主要模式 : 每按一次 tab 就指定接下來的縮排距離。
(none)              text-mode                            離開縮排模式,回到 text 模式。
M-C-\              indent-region                            將整個區塊的每一行縮排設定和第一行一樣
M-m              back-to-indentation              將游標移到該行第一個字元
M-C-o              split-line                            將游標所在位置分成兩行 ; 縮排至游標所在列。
(none)              fill-individual-paragraphs              將縮排的段落重新格式化,保留縮排。


p7-7
------------------------------------------------------------------------

對中指令

M-s              center-line                            將游標所在之行放至螢幕中央
(none)              center-paragraph              將游標所在之段落放至螢幕中央
(none)              center-region                            將目前標定之區塊放至螢幕中央

------------------------------------------------------------------------

巨集指令

C-x(              start-kbd-macro                            開始定義巨集
C-x)              end-kbd-macro                            結束巨集定義
C-x e              call-last-kbd-macro              執行上一個定義的巨集
M-n C-x e              digit-argument-and-call-last-kbd-macro              將上一個定義的巨集執行 n
C-u C-x (              start-kbd-macro              執行上一個定義的巨集,然後加上另一些按鍵
(none)              name-last-kbd-macro              將上一個定義的巨集存檔之前予以命名
(none)              insert-last-keyboard-macro              將命名過的巨集插入檔案
(none)              load-file                            將儲存的巨集檔載入
(none)              macroname                            執行儲存過的巨集
C-x q              kbd-macro-query                            將巨集定義中插入查詢
C-u C-x q              (none)                            將巨集定義中插入遞迴編輯
M-C-c              exit-recuresive-edit              跳出遞迴編輯


------------------------------------------------------------------------

基本縮排指令

M-C-\              indent-region                            將整個區塊的每一行縮排設定和第一行一樣
M-m              back-to-indentation              將游標移到該行第一個字元
M-^              delete-indentation              將此行併入上一行

------------------------------------------------------------------------

查詢功能指令

C-h a              command-apropos                            以功能查詢相關指令
(none)              apropos                                          以功能查尋相關函式與變數
C-h c              describe-key-briefly              以按鍵查詢指令
C-h b              describe-bindings              查詢此暫存區的相關按鍵
C-h k              describe-key                            以按鍵查詢指令及其功能
C-h l              view-lossage                            查詢前 100 個輸入過的字元              
C-h w              where-is                            查詢此指令的按鍵
C-h f              describe-function              查詢函式功能
C-h v              describe-variable              查詢變數功能
C-h m              describe-mode                            查詢目前暫存區所處的模式
C-h s              describe-syntax                            查詢目前暫存區的語法表

------------------------------------------------------------------------

p7-8

線上輔助說明指令

C-h t              help-with-tutorial              執行 emacs 的教學程式
C-h i              info                                          啟動說明文件
C-h n              view-emacs-news                            顯示 emacs 的功能更新說明
C-h C-c              describe-copying              顯示 emacs General Public License
C-h C-d              describe-distribution              顯示如何由 FSF 取得 emacs
C-h C-w              describe-no-warranty              顯示 emacs 的保固文件



以按鍵分類列出 emacs 指令

---------------------------------------------------------------------------

Control鍵相關指令

C-@                            set-mark-command              標記區塊起點終點
C-SPACE              (same as above)                            同上
C-]                            (none)                                                        離開遞迴編輯或離開替換查詢
C-a              beginning-of-line              到行頭
C-b              backward-char                            向左 ( backward ) 移動一格
C-c C-c interrupt-shell-subjob              結束目前的 job
C-c C-d              shell-send-eof                            檔尾字元
C-c C-u              kill-shell-input              刪除目前行
C-c C-w              backward-kill-word              刪除前一個單字
C-c C-z              stop-shell-subjob              暫停目前的 job
C-d                            delete-char                                          刪除一個字元
C-e                            end-of-line                                          到行尾 ( end )
C-f                            forward-char                            向右 ( forward ) 移動一格
C-g                            跳出目前的指令
C-h                            進入線上輔助說明系統
C-h a              command-apropos                            以功能查詢相關指令
C-h b              describe-bindings              查詢此暫存區的相關按鍵
C-h C-c              describe-copying              顯示 emacs General Public License
C-h C-d              describe-destribution              顯示如何由 FSF 取得 emacs
C-h C-w              describe-no-warranty              顯示 emacs 的保固文件
C-h c              describe-key-briefly              以按鍵查詢指令
C-h f              describe-function              查詢函式功能
C-h i              info                                          啟動說明文件
C-h k              describe-key                            以按鍵查詢指令及其功能
C-h l              view-lossage                            查詢前 100 個輸入過的字元              
C-h m              describe-mode                            查詢目前暫存區所處的模式
C-h n              view-emacs-news                            顯示 emacs 的功能更新說明
C-h s              describe-syntax                            查詢目前暫存區的語法表
C-h t              help-with-tutorial              執行 emacs 的教學程式
C-h v              describe-variable              查詢變數功能
C-h w              where-is                            查詢此指令的按鍵
C-k                            kill-line                            刪除目前位置到行尾
C-l                            recenter                            將目前行放到畫面中央
C-n                            next-line                            向下 ( next ) 移動一行
C-p                            previous-line              向上 ( previous ) 移動一行
C-r              Meta              (none)                            啟動非漸進式搜尋:向前
C-r                            (none)                                          重複非漸進式搜尋:向前
C-r     (none)                                          進入遞迴編輯模式(在進行替換功能時)
C-r                            isearch-backward              向前搜尋
C-s              Meta              (none)                            啟動非漸進式搜尋:向後
C-s                            (none)                                          重複非漸進式搜尋:向後
C-r                            isearch-forward              向後搜尋
C-t                            transpost-chars                            對調兩字元
C-u n              universal-argument              將下一個指令重複 n
C-u C-x (              start-kbd-macro              執行上一個定義的巨集,然後加上另一些按鍵
C-u C-x q              (none)                            將巨集定義中插入遞迴編輯
C-v                            scroll-up                            前後一頁
C-w                            kill-region                            將標記的段落刪除 ( 見下一節 )
C-x(              start-kbd-macro                            開始定義巨集
C-x)              end-kbd-macro                            結束巨集定義
C-x[              backward-page                            向上一頁
C-x]              forward-page                            向下一頁
C-x >              scroll-right                            將視窗向右捲動
C-x <              scroll-left                            將視窗向左捲動
C-x -              inverse-add-global-abbrev              先打入全域縮寫然後打入定義
C-x              .set-fill-prefix                            將行首到目前游標所在列設定為縮排字串,並將每段的第一行首插入此字串。若在第一列執行此指令則取消此功能。
C-x 0              delete-window                            關閉目前視窗
C-x 1              delete-other-window              關閉其他視窗,僅留目前視窗
C-x 2              split-window-horizontally              水平分割視窗
C-x 4 f              find-file-other-window              在另一視窗中尋找檔案
C-x 4 b              switch-to-buffer-other-window              在另一視窗中切換到另一個暫存區
C-x 5              split-window-vertically                            垂直分割視窗
C-x b              switch-to-buffer              跳到指定的暫存區去
C-x C-b              list-buffer                            列出暫存區
C-x C-c              跳出 emacs
C-x C-f              find-file                            找出檔案並讀入
C-x C-h              inverse-add-local-abbrev              先打入區域縮寫然後打入定義
C-x C-l              downcase-region                            將區塊中的每個單字改為小寫
C-x C-p              mark-page                            標記一頁
C-x C-q              (none)                                          切換暫存區的唯讀狀態
C-x C-s              save-buffer                            存檔 ( 可能會造成終端機當機 ; C-q 重開 )
C-x C-t              transpost-lines                            對調兩行
C-x C-u              upcase-region                            將區塊中的每個單字改為大寫
C-x C-v              find-alternate-file              找出另一個檔案並取代用 C-x C-f 讀入者
C-x C-w              write-file                            將暫存區的資料寫入檔案
C-x C-x              exchange-point-and-mark              將目前游標位置和標記位置對調
C-x DEL              backward-kill-sentence              刪除前一句
C-x e              call-last-kbd-macro              執行上一個定義的巨集
C-x h              mark-whole-buffer              標記暫存區
C-x i              insert-file                            插入指令
C-x k              kill-buffer                            刪除指定的暫存區
C-x o              other-window                            切換至另一視窗
C-x q              kbd-macro-query                            將巨集定義中插入查詢
C-x s              save-some-buffers              對每個暫存區都詢問是否儲存
C-x u              恢復前一次的動作 ( 可重複使用 )
C-y                            yank                                          恢復刪除
C-z              suspend-emacs                            暫停 emacs,用 fg 或是 exit 來重開

--------------------------------------------------------------------

Meta鍵相關指令

Meta              (none)                                          跳出搜尋
M--M-c              negative-argument;capitalize-word              將前一個單字第一個字母改為大寫
M--M-l              negative-argument;downcase-word              將前一個單字改為小寫
M--M-u              negative-argument;upcase-word              將前一個單字改為大寫
M-$                            spell-word                            對游標後的字作拼字檢查
M->                            end-of-buffer                            到檔尾
M-<                            beginning-of-buffer              到檔頭
M-[                            backward-paragraph              向上移動一段
M-]                            forward-paragraph              向下移動一段
M-^                            delete-indentation              將此行併入上一行
M-n              digit-argument                            將下一個指令重複 n
M-n C-x e              digit-argument-and-call-last-kbd-macro              將上一個定義的巨集執行 n
M-a              backward-sentence              向前移動一句
M-b              backward-word                            向左 ( backward ) 移動一個單字
M-C-\              indent-region                            將整個區塊的每一行縮排設定和第一行一樣
M-C-c              exit-recuresive-edit              跳出遞迴編輯
M-C-o              split-line                            將游標所在位置分成兩行 ; 縮排至游標所在列。
M-C-v              scroll-other-window              捲動另一視窗
M-c                            capitalize-word                            將字的第一個字母改為大寫
M-d                            kill-word                            刪除目前單字
M-DEL              backward-kill-word              刪除前一個單字
M-e                            forward-sentence              向後移動一句
M-f                            forward-word                            向右 ( forward ) 移動一個單字
M-g                            fill-region                                          重新將區塊內的每個段落分別格式化
M-h                            mark-paragraph                            標記段落
M-k                            kill-sentence                            刪除目前句
M-l                            downcase-word                            將單字改為小寫
M-m                            back-to-indentation              將游標移到該行第一個字元
M-q                            fill-paragraph                            重新將段落格式化
M-s                            center-line                                          將游標所在之行放至螢幕中央
M-t                            transpost-words                            對調兩單字
M-u                            upcase-word                                          將單字改為大寫
M-v                            scroll-down                                          向下一個畫面
M-x                            (none)                                                        取得指令按鍵的文字說明




以名稱分類列出 emacs 指令

macroname                                           (none)              執行儲存過的巨集
abbrev-mode                                          (none)              進出縮寫模式
advertised-undo                            C-x u              恢復前一個指令 ( 可重複進行 )
command-apropos                            C-h a              以功能查詢相關指令
back-to-indentation              M-m              將游標移到該行第一個字元
backward-char                            C-b                            向左 ( backward ) 移動一格
backward-delete-char              DEL                            刪除前一個字元
backward-kill-paragraph              (none)              刪除前一段
backward-kill-sentence              C-x DEL              刪除前一句
backward-kill-word              C-c C-w                            刪除前一個單字
backward-kill-word              M-DEL              刪除前一個單字
beginning-of-buffer              M-<                            到檔頭
beginning-of-line              C-a                            到行頭
call-last-kbd-macro              C-x e              執行上一個定義的巨集
capitalize-region              (none)              將區塊中的每個單字的第一個字母改為大寫
capitalize-word                            M-c                            將字的第一個字母改為大寫
center-line                                          M-s                            將游標所在之行放至螢幕中央
center-paragraph              (none)              將游標所在之段落放至螢幕中央
center-region                            (none)              將目前標定之區塊放至螢幕中央
command-apropos                            C-h a              以功能查詢相關指令
compare-windows                            (none)              比較兩個暫存區 ; 列出第一個找到的不同之處
delete-char                                          C-d                            刪除目前字元
delete-indentation              M-^                            將此行併入上一行
delete-other-window              C-x 1              關閉其他視窗,僅留目前視窗
delete-window                            C-x 0              關閉目前視窗
delete-windows-on              (none)              將指定暫存區的所有視窗關閉
describe-bindings              C-h b              查詢此暫存區的相關按鍵
describe-copying              C-h C-c              顯示 emacs General Public License
describe-distribution              C-h C-d                            顯示如何由 FSF 取得 emacs
describe-function              C-h f              查詢函式功能
describe-key                            C-h k              以按鍵查詢指令及其功能
describe-key-briefly              C-h c              以按鍵查詢指令
describe-mode                            C-h m              查詢目前暫存區所處的模式
describe-no-warranty              C-h C-w              顯示 emacs 的保固文件
describe-syntax                            C-h s              查詢目前暫存區的語法表
describe-variable              C-h v              查詢變數功能
digit-argument                            M-n                            將下一個指令重複 n
call-last-kbd-macro              C-x e              執行上一個定義的巨集
digit-argument                            M-n                            將下一個指令重複 n
downcase-word                            M-l                            將單字改為小寫
downcase-region                            C-x C-l              將區塊中的每個單字改為小寫
edit-abbrev                                          (none)              編輯縮寫
end-kbd-macro                            C-x)              結束巨集定義
end-of-buffer                            M->                            到檔尾
end-of-line                                          C-e                            到行尾 ( end )
enlarge-window                            C-x ^              將視窗上下拉長
exchange-point-and-mark              C-x C-x              將目前游標位置和標記位置對調
exit-recuresive-edit              M-C-c              跳出遞迴編輯
fill-paragraph                            M-q                                          重新將段落格式化
fill-region                                          M-g                                          重新將區塊內的每個段落分別格式化
find-alternate-file              C-x C-v                            找出另一個檔案並取代用 C-x C-f 讀入者
find-file                                          C-x C-f                            找出檔案並讀入
find-file-other-window              C-x 4 f              在另一視窗中尋找檔案
forward-char                            C-f                                          向右 ( forward ) 移動一格
forward-sentence              M-e                                          向後移動一句
forward-page                            C-x]                            向下一頁
forward-paragraph              M-]                                          向下移動一段
forward-word                            M-f                                          向右 ( forward ) 移動一個單字
goto-char                                          (none)                            到第 n 個字元
goto-line                                          (none)                            到第 n
help-command                            C-h                                          進入線上輔助說明系統
help-with-tutorial              C-h t                            執行 emacs 的教學程式
indent-region                            M-C-\                            將整個區塊的每一行縮排設定和第一行一樣
indented-text-mode              (none)                            主要模式 : 每按一次 tab 就指定接下來的縮排距離。
info                                                        C-h i                            啟動說明文件
insert-file                                          C-x i                            插入指令
insert-last-keyboard-macro              (none)              將命名過的巨集插入檔案
interrupt-shell-subjob              C-c C-c              結束目前的 job
inverse-add-global-abbrev              C-x -              先打入全域縮寫然後打入定義
inverse-add-local-abbrev              C-x C-h              先打入區域縮寫然後打入定義
isearch-backward                            C-r                            向前搜尋
isearch-backward-regexp              C-r                            同上,但是搜尋常規表示式             
isearch-forward                                          C-s                            向後搜尋
isearch-forward-regexp  C-s      同上,但是搜尋常規表示式
kbd-macro-query                                          C-x q              將巨集定義中插入查詢
keyboard-quit                                          C-g                            停止目前指令
kill-buffer                                                        C-x k              刪除指定的暫存區
kill-line                                                        C-k                            刪除目前位置到行尾
kill-region                                                        C-w                            將標記的段落刪除 ( 見下一節 )
kill-sentence                                          M-k                            刪除目前句
kill-some-buffers                            (none)              對每個暫存區都詢問是否刪除
kill-shell-input                            C-c C-u              刪除目前行
kill-word                                                        M-d                            刪除目前單字
list-abbrev                                                        (none)              列出縮寫
list-buffer                                                        C-x C-b              列出暫存區
load-file                                                        (none)              將儲存的巨集檔載入
mark-page                                                        C-x C-p              標記一頁
mark-whole-buffer                            C-x h              標記暫存區
mark-paragraph                                          M-h                            標記段落
name-last-kbd-macro                            (none)              將上一個定義的巨集存檔之前予以命名
negative-argument;capitalize-word              M--M-c              將前一個單字第一個字母改為大寫
negative-argument;upcase-word                            M--M-u              將前一個單字改為大寫
negative-argument;downcase-word                            M--M-l              將前一個單字改為小寫
next-line                                                        C-n                            向下 ( next ) 移動一行
other-window                                          C-x o              切換至另一視窗
previous-line                                          C-p                            向上 ( previous ) 移動一行
query-replace-regexp              (none)               查詢/替換一個正規表示式             
recenter                                                        C-l                            將目前行放到畫面中央
rename-buffer                                          (none)              將暫存區重新命名
replace-regexp                                          (none)   無條件地替換正規表示式
re-search-backward                            (none)              簡單的正規表示式搜尋:向前
re-search-forward                            (none)              簡單的正規表示式搜尋:向後
revert-buffer                                          (none)              將暫存區恢復到前一次存檔時的狀態
save-buffer                                                        C-x C-s              存檔 ( 可能會造成終端機當機 ; C-q 重開 )
save-buffers-kill-emacs              C-x C-c              跳出 emacs
save-some-buffers                            C-x s              對每個暫存區都詢問是否儲存
scroll-down                                                        M-v                            向下一個畫面
scroll-left                                                        C-x <              將視窗向左捲動
scroll-other-window                            M-C-v              捲動另一視窗
scroll-right                                          C-x >              將視窗向右捲動
scroll-up                                                        C-v                            向上一個畫面
set-mark-command                            C-@                            標記區塊起點終點
(same as above)                                          C-SPACE  同上
set-fill-prefix                                          C-x.              將行首到目前游標所在列設定為縮排字串,並將每段的第一行首插入此字串。若在第一列執行此指令則取消此功能。
shell-send-eof                                          C-c C-d              檔尾字元
shrink-window                                          (none)              將視窗上下縮小
shrink-window-horizontally              C-x {              將視窗左右變窄
spell-buffer                                          (none)              對目前的暫存區作拼字檢查
spell-region                                          (none)              對目前的區域作拼字檢查             
spell-string                                          (none)              對目前的字串作拼字檢查
spell-word                                                        M-$                            對游標後的字作拼字檢查
split-line                                                        M-C-o              將游標所在位置分成兩行 ; 縮排至游標所在列。
split-window-horizontally              C-x 2              水平分割視窗
split-window-vertically                            C-x 5              垂直分割視窗
start-kbd-macro                                          C-x (              開始定義巨集
start-kbd-macro                                          C-u C-x (              執行上一個定義的巨集,然後加上另一些按鍵
stop-shell-subjob                            C-c C-z              暫停目前的 job
suspend-emacs                                          C-z                            暫停 emacs,用 fg 或是 exit 來重開
switch-to-buffer                            C-x b              跳到指定的暫存區去
switch-to-buffer-other-window              C-x 4 b              在另一視窗中切換到另一個暫存區
text-mode                                                        (none)              離開縮排模式,回到 text 模式。
transpose-chars                                          C-t                            對調兩字元
transpose-lines                                          C-x C-t              對調兩行
transpose-paragraphs              (none)              對調兩段
transpose-sentences                            (none)              對調兩句
transpose-words                                          M-t                            對調兩單字
unexpand-abbrev                                          (none)              取消前一次的縮寫展開
universal-argument                            C-u n              將下一個指令重複 n
upcase-region                                          C-x C-u              將區塊中的每個單字改為大寫
upcase-word                                                        M-u                            將單字改為大寫
view-emacs-news                                          C-h n              顯示 emacs 的功能更新說明
view-lossage                                          C-h l              查詢前 100 個輸入過的字元              
where-is                                                        C-h w              查詢此指令的按鍵
write-abbrev-file                            (none)              寫入縮寫檔
write-file                                                        C-x C-w              將暫存區的資料寫入檔案
yank                                                                      C-y                            恢復刪除

沒有留言:

張貼留言

推到 Twitter!
推到 Plurk!
推到 Facebook!