歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

學習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:文本塊操作命令速查表

鍵盤操作

命令名稱

動作

C-@或 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

打開當前行的書簽到另一個窗口;按o鍵將光標切換到該窗口;C-o讓光標停留在當前窗口。

d, C-d, or k

對書簽重新命名

r

對書簽重新命名

s

保存清單裡的全部書簽

m

給書簽加上待顯示標記

v

顯示加有待顯示標記的書簽。如果沒有加上待顯示標記的,就顯示光標所在處的書簽

t

切換書簽關聯文件的路徑的顯示/不顯示狀態

w

顯示書簽關聯文件的存放位置(即路徑名)

x

刪除加有待刪除標記的書簽

u

去掉書簽上的待操作標記

Del

去掉上一行書簽上的待操作標記

q

退出書簽清單

Space or n

移到下一行

p

移到上一行

l

加載一個書簽文件(除了默認的).

A

顯示所有注釋

a

顯示當前書簽注釋

e

編輯(或新建)為當前書簽注釋

 

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

鍵盤操作

命令名稱

動作

C-x r m
  Edit→Bookmarks→Set Bookmark

bookmark-set

在當前光標位置處設置一個書簽

C-x r b
  Edit→Bookmarks→Jump to Bookmark

bookmark-jump

跳轉到書簽指示位置

(無)
  Edit→Bookmarks→Rename Bookmark

bookmark-rename

重新命名一個書簽

(無)
  Edit→Bookmarks→Delete Bookmark

bookmark-delete

刪除一個書簽

(無)
  Edit→Bookmarks→Save Bookmarks

bookmark-save

把書簽全都保存到默認的書簽

C-x r l
  Edit→Bookmarks→Edit Bookmark List

bookmark-menu-list

進入“*Bookmark List*”編輯緩沖區

(無)
  Edit→Bookmarks→Insert Contents

bookmark-insert

插入與給定書簽關聯著的文件的完整內容

(無)
  Edit→Bookmarks→Save Bookmarks As

bookmark-write

把書簽全都保存到一個指定的文件裡

(無)
  Edit→Bookmarks→Load a Bookmark File

bookmark-load

從指定文件裡加載書簽

(無)
  Edit→Bookmarks→Insert Location

bookmark-insert-location

插入路徑到給定的書簽在當前的光標位置

 

表4-6:窗格命令速查表

鍵盤操作

命令名稱

動作

C-x 5 o
  Buffers→Frames

other-frame

移動到其他窗格

C-x 5 0
  File→Delete Frame

delete-frame

刪除當前窗格

C-x 5 2
  File→New Frame

make-frame

在當前編輯緩沖區上創建一個新窗格

C-x 5 f

find-file-other-frame

在一個新空格裡查找文件

C-x 5 r

find-file-read-only-other-frame

創建新窗格並查找文件,把編輯緩沖區設置為只讀的(用來查閱你不小心修改了的文件)

C-x 5 b

switch-to-buffer-other-frame

創建新窗格並在其中顯示另外一個編輯緩沖區


備注:本文大部分內容摘自學習GNU Emacs(第二版),文中紫色部分摘自Learning GNU Emacs, 3rd Edition,並由本人翻譯整理而得。

Copyright © Linux教程網 All Rights Reserved