1. 程式人生 > >GNU Emacs命令速查表

GNU Emacs命令速查表

GNU Emacs命令速查表

 

第一章  Emacs的基本概念

 

表1-1:Emacs編輯器的主模式

模式

功能

基本模式(fundamental mode)

預設模式,無特殊行為

文字模式(text mode)

書寫文字材料(第二章)

郵件模式(mail mode)

書寫電子郵件訊息(第六章)

RMAIL模式(RMAIL mode)

閱讀和組織電子郵件(第六章)

只讀模式(view mode)

檢視檔案,但不進行編輯(第五章)

shell模式(shell mode)

在Emacs裡執行一個UNIX shell(第五章)

FTP模式(ange-ftp mode)

下載或者檢視遠端系統上的檔案(第七章)

Telent模式(telnet mode)

登入到遠端系統(第七章)

大綱模式(outline mode)

書寫大綱(第八章)

縮排文字模式(indented text mode)

自動縮排文字(第八章)

圖形模式(picture mode)

繪製簡單的線條圖形(第八章)

mroff模式(mroff mode)

按mroff的要求對檔案進行排版(第九章)

TEX模式(TEX mode)

按TEX的要求對檔案進行排版(第九章)

C模式(C mode)

書寫C語言程式(第十二章)

C++模式(C++ mode)

書寫C++程式(第十二章)

FORTRAN模式(FORTRAN mode)

書寫FORTRAN程式(第十二章)

Emacs LISP模式(Emacs LISP mode)

書寫Emacs LISP函式(第十二章)

LISP模式(LISP mode)

書寫LISP程式(第十二章)

LISP互動模式(LISP interaction mode)

書寫和求值LISP表示式(第十二章)

 

表1-2:Emacs編輯器的副模式

模式

功能

自動換行模式(auto-fill mode)

開啟字換行(word wrap)功能(第二章)

改寫模式(overwrite mode)

打字時替換而不是插入字元(第二章)

自動儲存模式(auto-save mode)

把檔案按一定週期自動儲存到一個特殊的臨時檔案裡(第二章)

行號模式(line number mode)

在狀態列上顯示當前檔案行的編號(第二章)

臨時標記模式(transient mark mode)

對被選取的文字區做高亮反顯(第二章)

縮略語詞模式(abbrev mode)

允許使用單詞的簡寫形式(第三章)

大綱模式(outline mode)

書寫大綱(第八章)

VC模式(VC mode)

在Emacs下使用各種版本控制系統(第十五章)

 

表1-3:與檔案操作有頭的命令

鍵盤操作

命令名稱

動作

C-x C-f     
  File→Open

find-file

查詢檔案並在一個新緩衝區裡開啟它

C-x C-v

find-alternate-file

讀入另外一個檔案替換掉用“C-x C-f”讀入的檔案

C-xi 
  File→Insert File

insert-file

把檔案插入到游標的當前位置

C-x C-s 
  File→Save (current buffer)

save-buffer

儲存檔案

C-x C-w 
  File→Save Buffer As

write-file

把緩衝區內容寫入一個檔案

C-x C-c 
  File→ExitEmacs

save-buffers-kill-emacs

退出Emacs

C-h

help-command

進入Emacs的線上幫助系統

C-h f 
  Help→Describe Function

describe-function

給出某個給定命令名的線上幫助資訊

C-h k 
  Help→Describe Key

describe-key

給出某個給定擊鍵序列的線上幫助資訊

C-ht 
  Help→Emacs Tutorial

help-with-tutorial

啟動Emacs教程

C-hi 
  Help→Browse Manuals

info-goto-emacs-command-node

啟動Info文件閱讀器

 

第二章  檔案編輯

 

ESC x auto-fill-mode RETURN 切換自動換行模式

ESC x this-outrageously-long-string RETURN 開啟Emacs自動完成功能,即輸入幾個字元後按下TAB鍵,Emacs通常會自動填上單詞的其餘部分或者命令的其餘部分

 

表 2-1:游標移動命令速查表

鍵盤操作

命令名稱

動作

C-f

forward-char

游標前移一個字元(右)

C-b

backward-char

游標後移一個字元(左)

C-p

previous-line

游標前移一行(上)

C-n

next-line

游標後移一行(下)

M-f

forward-word

游標前移一個單詞

M-b

backward-word

游標後移一個單詞

C-a

beginning-of-line

游標移到行首

C-e

end-of-line

游標移到行尾

M-e

forward-sentence

游標前移一個句子

M-a

backward-sentence

游標後移一個句子

M-}

forward-paragraph

游標前移一個段落

M-{

backward-paragraph

游標後移一個段落

C-v

scroll-up

螢幕上卷一屏

M-v

scroll-down

螢幕下卷一屏

C-x ]

forward-page

游標前移一頁

C-x [

backward-page

游標後移一頁

M-<

beginning-of-buffer

游標前移到檔案頭

M->

end-of-buffer

游標前移到檔案尾

(無)

goto-line

游標前進到檔案的第n行

(無)

goto-char

游標前進到檔案的第n個字元

C-l

recenter

重新繪製屏顯畫面,當前行放在畫面中心處

M-n

digit-argument

重複執行n次後續命令

C-u n

universal-argument

重複執行n次後續命令(省略n時重複4次)

 

說明:

1. 以“CTRL”開頭的命令的游標移動距離通常都要比對應的以“ESC”開頭的命令移動距離短。

2. 表中第一欄的“(無)”表示如果想執行這個命令,就必須按下“ESC x”(或者“M-x”),再輸入命令的全名,最後按下回車鍵。它們沒有對應的預設組合鍵。

表 2-2:文字刪除命令速查表

鍵盤操作

命令名稱

動作

C-d

delete-char

刪除游標位置上的字元

Del

delete-backward-char

刪除游標前面的字元

M-d

kill-word

刪除游標後面的單詞

M-Del

backward-kill-word

刪除游標前面的單詞

C-k

kill-line

從游標位置刪除到行尾

M-k

kill-sentence

刪除游標後面的句子

C-x Del

backward-kill-sentence

刪除游標前面的句子

C-y或SHIFT-INSERT     
  Edit→Paste Most Recent

yank

恢復被刪除的文字

 

 

C-w或SHIFT-DELETE
  Edit→Cut

kill-region

刪除文字塊

(無)

kill-paragraph

刪除游標後面的段落

(無)

backward-kill-paragraph

刪除游標前面的段落

 

表2-3:文字塊操作命令速查表

鍵盤操作

命令名稱

動作

[email protected]或 C- Space

set-mark-command

標記文字塊的開始(或結束)位置

C-xC-x

exchange-point-and-mark

互換插入點和文字標記的位置

C-w或SHIFT-DELETE
  Edit→Cut

kill-region

刪除文字塊

C-y或SHIFT-INSERT     
  Edit→Paste Most Recent

yank

貼上最近刪除或複製的文字

M-w

kill-ring-save

複製文字塊(以便用“C-y”命令來貼上它)

M-h

mark-paragraph

標記段落

C-x C-p

mark-page

標記頁面

C-x h

mark-whole-buffer

標記整個緩衝區

M-y     
  Edit→Select and Paste

yank-pop

在用過“C-y”命令以後貼上更早刪除的文字

 

表2-4:段落重排命令速查表

鍵盤操作

命令名稱

動作

ESC q

fill-paragraph

重排段落

(無)     
  Edit→Fill

fill-region

對某個檔案塊中的段落進行重排

 

表2-5:位置交換命令速查表

鍵盤操作

命令名稱

動作

C-t

transpose-chars

交換兩個字元的位置

M-t

transpose-words

交換兩個單詞的位置

C-x C-t

transpose-lines

交換兩個文字行的位置

(無)

transpose-sentences

交換兩個單詞的位置

(無)

transpose-paragraphs

交換兩個段落的位置

 

表2-6:字母大小寫編輯命令速查表

鍵盤操作

命令名稱

動作

M-c

capitalize-word

把單詞的首字母改為大寫

M-u

upcase-word

把單詞的字母全部改為大寫

M-l

downcase-word

把單詞的字母全部改為小寫

Meta - M-c

negative-argument; capitalize-word

把前一個單詞的首字母改為大家

Meta - M-u

negative-argument;upcase-word

把前一個單詞的字母全部改為大寫

Meta - M-l

negative-argument;downcase-word

把前一個單詞的字母全部改為小寫

 

表2-7:撤銷編輯修改的3種方法

如果你:

請使用以下命令

不喜歡剛做的修改,想一個一個地撤銷它們

C-_ or C-x u (undo)

想撤銷自上次對檔案存檔之後的所有修改

M-x revert-buffer Enter

想回到該檔案以前的版本(即這個檔案在開始這次編輯工作之前的樣子)

C-x C-f filename~ Enter
C-x C-w filename Enter

 

表2-8:命令的中止和撤銷

鍵盤操作

命令名稱

動作

C-g

keyboard-quit

放棄當前命令

C-x u

advertised-undo[a]

撤銷上一次編輯(可以重複使用)

C-_或C-/
  Edit→Undo

undo

撤銷上一次編輯

(無)

revert-buffer

把緩衝區恢復到上次對檔案進行存檔(或者自動存檔)時的狀態

[a]advertised-undo和undo之間並沒有真正的不同。它們的工作情況都是一樣的。

 

第三章  查詢和替換操作

 

表3-1:遞增查詢命令速查表

鍵盤操作

命令名稱

動作

C-s
 Edit→Search Incremental→Forward String

isearch-forward

向前(朝檔案尾方向)開始遞增查詢操作;後面是查詢字串。另外,(向前)查詢下一個出現查詢字串的地方

C-s
 Edit→Search Incremental→Backward String

isearch-backward

向後(朝檔案頭方向)開始遞增查詢操作;後面是查詢字串。另外,(向後)查詢下一個出現查詢字串的地方

Enter

isearch-exit

退出查詢操作

C-g

keyboard-quit

取消遞增查詢操作(你可能需要連按它兩次)

Del

isearch-delete-char

刪除查詢字串中的字元

C-s C-w

isearch-yank-word

開始遞增查詢操作;把游標位置處的單詞用做查詢字串

C-s C-y

isearch-yank-line

開始遞增查詢操作;把游標位置到行尾之間的文字用做查詢字串

C-s M-y

isearch-yank-kill

開始遞增查詢操作;把刪除環中的文字用做查詢字串

C-sC-s

isearch-repeat-forward

重複剛才的向前查詢操作

C-rC-r

isearch-repeat-backward

重複剛才的向後查詢操作

 

表3-2:簡單查詢命令速查表

鍵盤操作

操作

C-s Entersearchstring Enter
  Edit→Search→String Forward

向前(朝檔案尾方向)開始一次非遞增查詢操作

C-s

向前查詢下一個

C-r Entersearchstring Enter
  Edit→Search→String Backwards

向前(朝檔案頭方向)開始一次非遞增查詢操作

C-r

向後查詢下一個

 

表3-3:查詢-替換操作中的響應

鍵盤操作

操作

M-%
  Edit→Replace→Replace String

開始查詢-替換操作

Space或y

用新字串替換查詢字串searchstring,然後前進到下一個位置

Del或n

不替換;前進到一個位置

.

在當前位置做替換後退出查詢-操作

,

替換並顯示替換情況(再按空格鍵或“y”後才移動到下一個位置)

!

對後面的檔案內容全部進行替換,不再提問是否要進行替換

^

返回上一次進行了替換的位置

Enter或q

退出查詢-替換操作

E

編輯替換字串

C-r

進入遞迴編輯狀態

C-w

刪除此處內容並進入遞迴編輯狀態(好做其他修改)

C-M-c

退出遞迴編輯狀態,繼續完成查詢-替換操作

C-]

退出遞迴編輯狀態和查詢-替換操作

 

表3-4:用來建立正則表示式的字元

字元

匹配情況

^

匹配行首

$

匹配行尾

.

匹配任意單個字元(類似於檔名中的問號“?”)

.*

匹配任意(零或以上)個字元(這是一個真正的萬用字元,類似於檔名中的星號“*”)

\<

匹配單詞的開頭

\>

匹配單詞的結尾

[ ]

匹配方括號中的任何一個字元;比如“[a-z]”將匹配任意一個字母表字元

\s, \S

匹配任何空白字元:空格、換行、TAB、回車、換頁、退格;\S匹配任何除空白字元外的所有字元

\d, \D

匹配任何單個數字:0-9;\D匹配任何除數字外的所有字元

\w, \W

匹配任何字(大小寫字母、數字和下劃線);\W匹配任何除上述外的所有字元

 

表3-5:正規表示式查詢命令速查表

鍵盤操作

命令名稱

動作

C-M-s Enter
  Edit→Search→Regexp Forward

re-search-forward

向前(朝檔案尾方向)查詢一個正則表示式

C-M-r Enter
  Edit→Search→Regexp Backwards

re-search-backward

向後(朝檔案頭方向)查詢一個正則表示式

C-M-s Enter
  Edit→Search Incremental→ForwardRegexp

isearch-forward-regexp

向前(朝檔案尾方向)遞增查詢一個正則表示式

C-M-r Enter
  Edit→Search Incremental→BackwardRegexp

isearch-backward-regexp

向後(朝檔案頭方向)遞增查詢一個正則表示式

C-M-% Enter
  Edit→Replace→ReplaceRegexp

query-replace-regexp

查詢-替換一個與正則表示式

(無)

replace-regexp

無條件地對一個正則表示式做全域性性替換(謹慎使用)

 

表3-6:Ispell命令速查表

鍵盤操作

命令名稱

動作

M-$ Enter
  Tools→Spell Checking→Spell-Check Word

ispell-word

檢查游標位置上的單詞或者游標後面的單詞

(無)
  Tools→Spell Checking→Spell-Check Region

ispell-region

檢查文字塊裡的單詞

(無)
  Tools→Spell Checking→Spell-Check Buffer

ispell-buffer

檢查緩衝區裡的單詞

(無)
  Tools→Spell Checking→Spell-Check Message

ispell-message

檢查電子郵件正文裡的單詞

(無)
  Tools→Spell Checking→Spell-Check Comments

ispell-comments-and-strings

檢查程式裡的註釋和字串

C-u M-$
  Tools→Spell Checking→Continue Spell-Checking

ispell-continue

讓Ispell重新開始繼續執行;這個命令只有在執行過Ispell並用“C-g”組合鍵暫停過它的執行時才有效

(無)
  Tools→Spell Checking→Kill Process

ispell-kill-ispell

殺死(即結束)Ispell程序

M-Tab
  Tools→Spell Checking→Complete Word

ispell-complete-word

在文字模式下,自動補足當前單詞

(無)
  Tools→Spell Checking→Automatic Spell-Checking (Flyspell)

flyspell-mode

進入Flyspell副模式,該模式下會突出顯示錯誤拼寫單詞。

(無)

flyspell-buffer

拼寫檢查當前緩衝區,突顯出所有拼錯的單詞。使用滑鼠中鍵來糾正。

 

表3-7:UNIX拼寫檢查命令速查表

鍵盤操作

命令名稱

動作

(無)

spell-word

檢查游標位置上的單詞或者游標後面的單詞

(無)

spell-buffer

檢查當前編輯緩衝區的拼寫

(無)

spell-region

檢查當前文字塊的拼寫

 

表3-8:單詞簡寫情況示例

簡寫詞

短語定義

輸入

擴充套件為

說明

         

lc

lamb chop

lc

lamb chop

“lc”是小寫,所以“lamp chop”是小寫

lc

lamb chop

Lc

Lamb chop

“Lc”裡面有一個大寫字母,所以“Lamb”的首字母大寫

lc

lamb chop

lC

Lamb chop

“Lc”裡面有一個大寫字母,所以“Lamb”的首字母大寫

lc

lamb chop

LC

Lamb Chop

“LC”全都是大寫,所以兩個單詞的首字母都大寫

lc

Lamb Chop

lc

Lamb Chop

短語定義裡的字母大小寫情況永遠不變

lc

Lamb Chop

LC

Lamb Chop

短語定義裡的字母大小寫情況永遠不變

 

表3-9:簡寫詞編輯命令速查表

鍵盤操作

命令名稱

動作

M-/

dabbrev-expand

根據最相近的單詞將單詞補全,該單詞始於這個字串(如果沒有你要找的單詞,再次按M-/)

(無)

abbrev-mode

進入(或退出)單詞簡寫模式

C-x a –或C-x ai g

inverse-add-global-abbrev

輸入全域性性簡寫詞之後,輸入其短語定義

C-x ai l

inverse-add-mode-abbrev

輸入區域性性簡寫詞之後,輸入其短語定義

(無)

unexpand-abbrev

撤銷最近一個簡寫詞定義條目

(無)

write-abbrev-file

儲存簡寫詞彙表文件

(無)

edit-abbrevs

編輯簡寫詞彙表

(無)

list-abbrevs

檢視簡寫詞彙表

(無)

kill-all-abbrevs

本次編輯工作禁用簡寫詞功能

 

第四章  緩衝區和視窗

 

表4-1:視窗命令速查表

鍵盤操作

命令名稱

動作

C-x 2
  File→Split Window

split-window-vertically

把當前視窗分割為上、下排列的兩個視窗

C-x 3

split-window-horizontally

把當前視窗分割為左、右排列的兩個視窗

C-x >

scroll-right

視窗內容右卷

C-x <

scroll-left

視窗內容左卷

C-x o

other-window

移動到其他視窗;如果有多個視窗,按順時針方向移動到下一個視窗

C-x 0

delete-window

刪除當前視窗

C-x 1
  File→Remove Splits

delete-other-windows

刪除所有視窗,只保留當前視窗

(無)

delete-windows-on

刪除某個給定編輯緩衝區上的所有視窗

C-x ^

enlarge-window

加高當前視窗

(無)

shrink-window

壓低當前視窗

C-x }

enlarge-window-horizontally

加寬當前視窗

C-x {

shrink-window-horizontally

壓窄當前視窗

C-x -

shrink-window-if-larger-than-buffer

如果編輯緩衝區比視窗小,就壓縮視窗面積

C-x +

balance-windows

把所有視窗調整為同樣大小

C-M-v

scroll-other-window

對其他視窗做卷屏操作

C-x 4 f

find-file-other-window

在其他窗口裡查詢並開啟一個檔案

C-x 4 b

switch-to-buffer-other-window

在其他緩衝區裡選擇一個編輯緩衝區

(無)
  Tools→Compare (Ediff) Window→This Window and Next Window

compare-windows

對兩個編輯緩衝區的內容進行比較,並顯示它們之間的第一個不同之處

 

表4-2:編輯緩衝區操作命令速查表

鍵盤操作

命令名稱

動作

C-x b
  Buffers→Select Named Buffer

switch-to-buffer

移動到指定的編輯緩衝區

C-x
  Buffers→Next Buffer

next-buffer

移動到編輯緩衝區清單裡的下一個編輯緩衝區

C-x
  Buffers→Previous Buffer

previous-buffer

移動到編輯緩衝區清單裡的上一個編輯緩衝區

C-x C-b
  Buffers→List All Buffers

list-buffers

顯示編輯緩衝區清單

C-x k

kill-buffer

刪除指定的編輯緩衝區

(無)

kill-some-buffers

以問答方式刪除各個編輯緩衝區

(無)

rename-buffer

把編輯緩衝區的名字改為指定的名字

C-x s

save-some-buffers

以問答方式存檔各個修改過的編輯緩衝區

 

表4-3:編輯緩衝區清單操作命令速查表

鍵盤操作

動作

執行情況

C-n, Space, n, or

移動到清單裡的下一個編輯緩衝區(即編輯緩衝區清單裡的下一行)

立即執行

C-p, p, or

移動到清單裡的下一個編輯緩衝區(即編輯緩衝區清單裡的上一行)

立即執行

d

給編輯緩衝區加上待刪除標記

按下“x”鍵時執行

k

給編輯緩衝區加上待刪除標記

按下“x”鍵時執行

s

給編輯緩衝區加上待存檔標記

按下“x”鍵時執行

u

去掉編輯緩衝區上的操作標記

立即執行

x

對加有操作標記的所有編輯緩衝區執行相應的操作

立即執行

Del

去掉上一個編輯緩衝區上的修改標記

立即執行

~

給編輯緩衝區加上未修改標記

立即執行

%

轉換編輯緩衝區加上未修改標記

立即執行

1

把編輯緩衝區滿屏顯示

立即執行

2

把這個編輯緩衝區和下一個編輯緩衝區顯示到兩個水平窗口裡

立即執行

f

在原本顯示編輯緩衝區清單的窗口裡顯示此編輯緩衝區的內容

立即執行

o

把此編輯緩衝區顯示到另外一個窗口裡

立即執行

m

給編輯緩衝區加上待顯示標誌。參見“v”命令的說明

按下“v”鍵時執行

v

顯示用“m”命令加上待顯示標誌的編輯緩衝區。Emacs將動態地建立足夠的視窗來顯示加有這類標誌的編輯緩衝區

立即執行

q

退出編輯緩衝區清單

立即執行

 

表4-4:書籤清單編輯命令速查表

命令

動作

Enter, f,或j

在當前行轉到書籤

C-o或o

開啟當前行的書