1. 程式人生 > >EMACS常用快捷鍵

EMACS常用快捷鍵

Emacs 快捷鍵

快捷鍵組合:

c-x : Ctrl+x

m-x: Alt+x

emacs -nw file.r (關閉X11deplay)

 

1. 常用的預設 Emacs 按鍵字首

按鍵字首

描述

C-c

當前編輯模式特有的命令

C-x

檔案和緩衝區命令

C-h

幫助命令

M-x

函式名稱

 

2. 常用的 Emacs 緩衝區和檔案函式

繫結

函式名

描述

C-x C-s

save-buffer

將當前的緩衝區儲存到磁碟。

C-x s

save-some-buffers

要求將所有未儲存的緩衝區儲存到磁碟。

C-x C-c

save-buffers-kill-emacs

要求將所有未儲存的緩衝區儲存到磁碟,並退出 Emacs。

C-x C-z

suspend-emacs

掛起 Emacs 並使之成為一個後臺程序。

C-x C-b

list-buffers

列出所有緩衝區。

C-x k

kill-buffer

殺死一個緩衝區(預設情況下為當前的緩衝區)。

C-x C-q

vc-toggle-read-only

切換當前緩衝區的可讀狀態(如果適用還可以執行版本控制)。

C-x i

insert-file

在插入點插入某個檔案的內容。

M - <      移動到緩衝區開頭

M - >      移動到緩衝區末尾

 

3. 有用的 Emacs 鍵盤輸入(用於移動和導航)

鍵盤輸入

函式

描述

C-p ,
UpArrow

previous-line

將插入點向上移動到上一行。

C-n ,DownArrow

next-line

將插入點向下移動到下一行。

C-f ,RightArrow

forward-char

將插入點移動到下一個字元。

C-b ,LeftArrow

back-char

將插入點移動到上一個字元。

M-f

forward-word

將插入點移動到下一個單詞。

M-b

backward-word

將插入點移動到上一個單詞。

C-v , PgDn

scroll-up

將文字向上滾動一屏。

M-v , PgUp

scroll-down

將文字向下滾動一屏。

Home

beginning-of-buffer

將插入點移到緩衝區的開始處。(在某些版本中,這個鍵被預設定義為移動到當前行的開始處。)

End

end-of-buffer

將插入點移到緩衝區的末尾。(在某些版本中,這個鍵被預設定義為移動到當前行的末尾。)

C-a

beginning-of-line

將插入點移到本行的開始處。

C-e

end-of-line

將插入點移到本行的結尾。

M-a

beginning-of-sentence

將插入點移到句子的開始處。

M-e

end-of-sentence

將插入點移到句子的結尾處。

C-{

beginning-of-paragraph

將插入點移到段落的開始處。

C-}

end-of-paragraph

將插入點移到段落的結尾處。

 

4. 常用 Emacs 編輯命令

鍵盤輸入

函式

描述

Ins

overwrite-mode

切換改寫模式(預設為關閉)。

Backspace
Del

delete-backward-char

刪除插入點前的字元。

C-d

delete-char

刪除插入點處的字元。

M-d

kill-word

從插入點開始向前刪除字元,直到單詞末尾。

M-Backspace,
M-Del

backward-kill-word

從插入點開始向回刪除字元,直至單詞的開始處。

C-_

undo

撤消您的上一次鍵入或操作

C-q 字元 或XXX

quoted-insert

在插入點插入按鍵本身代表的字元 或由八進位制數字(XXX )表示的字元。

C-u 次數 命令

universal-argument

按總的次數 (預設為 4 次)連續執行命令 。

 

5用來標記和刪除文字的 Emacs 函式

鍵盤輸入

函式

描述

C-Space

set-mark-command

在插入點設定標記。

C-k

kill-line

刪除從插入點到行末的所有文字。

C-w

kill-region

刪除區域。

M-w

kill-ring-save

將區域儲存在 kill ring 中,但不刪除它。

C-y

yank

恢復來自 kill ring 的文字。

 

6滑鼠操作

滑鼠命令

描述

B1

這一命令將設定插入點位置;拖動滑鼠左鍵以設定區域。

B1-B1

這一命令標記一個單詞。

B1-B1-B1

這一命令標記一行。

B2

這一命令插入最近被殺死的內容,並把游標移動到插入內容的末尾。

B3

這一命令會設定並突出顯示區域,然後無需刪除就將其放在 kill 緩衝區中。如果某個區域已經被突出顯示並設定,該區域的末尾將移動到您單擊的位置。

B3-B3

這個命令將突出顯示區域,然後刪除它。如果某個區域已經被突出顯示並設定,該區域的末尾將移動到您單擊的位置,此後該區域將被刪除。

 

7. query-replace 函式的選項

鍵(M-%)

描述

空格、y

替換這個匹配。

Del、n

跳過這一匹配到下一個匹配。

Enter、q

退出 query-replace 。

.

進行本次替換,然後退出 query-replace 。

進行本次替換,將游標移動到此處,然後退出 query-replace 。

C-r

指定遞迴編輯。

C-w

刪除這個匹配並遞迴編輯。

C-l

重繪螢幕,並使這一行位於螢幕正中位置。

!

繼續進行所有的替換,而無需再次詢問。

E

編輯替換的字串。

^

退回到前一次替換。

replace-regexp 和 query-replace-regexp 函式的工作方式是類似的,但是它們使用正則表示式作為要進行替換的字串。

 

8. Emacs 搜尋和替換命令

繫結

命令或者函式

描述

C-s [字串 ] [C-w ] [C-y ]

isearch-forward

前向增量地在整個緩衝區中搜索字串(在預設情況下,將搜尋您上一次給出的搜尋字串,如果存在),C-w 使用從游標處到游標所在單詞的詞尾之間的文字,以及 C-y 使用從游標處到游標所在行的行尾之間的全部內容。

C-r [字串 ] [C-w ] [C-y ]

isearch-backward

後向增量地在整個緩衝區中搜索字串 (在預設情況下,將搜尋您上一次給出的搜尋字串,如果存在),C-w 使用從游標處到游標所在單詞的詞尾之間的文字,C-y 使用從游標處到游標所在行的行尾之間的全部內容。

C-s Enter C-w 單詞或者短語

word-search-forward

在整個緩衝區中前向搜尋給定的單詞或者短語(不管它們之間如何分隔)。

C-r Enter C-w 單詞或者短語

word-search-backward

在整個緩衝區中後向搜尋給定的單詞或者短語(不管它們之間如何分隔)。

C-M-s

isearch-forward-regexp

在整個緩衝區中前向增量搜尋給定的正則表示式。

C-M-r

isearch-backward-regexp

在整個緩衝區中後向增量搜尋給定的正則表示式。

 

replace-string

從游標處到緩衝區末尾搜尋給定的字串,並使用給定的字串來替換它。

 

replace-regexp

從游標處到緩衝區末尾搜尋給定的正則表示式,並使用給定的字串來替換它。

M-%

query-replace

從游標處到緩衝區末尾搜尋給定的字串,對於搜尋到的每個例項,詢問是否使用給定的字串來進行替換。

C-M-%

query-replace-regexp

從游標處到緩衝區末尾搜尋給定的正則表示式,對於搜尋到的每個例項,詢問是否使用給定的字串來進行替換。

 

9. 高階 Emacs 標記和選擇命令

鍵盤輸入

功能

描述

C-u C-space

 

移動到標記環中的前一個標記。

C-x C-x

exchange-point-and-mark

交換游標和標記的位置。

[email protected]

mark-word

標記從游標到當前詞尾的所有文字。

M-h

mark-paragraph

標記當前段落,不管游標處在什麼位置。

 

transient-mark-mode

切換臨時標記模式。

C-x h

mark-whole-buffer

標記整個緩衝區,不管游標處在什麼位置。

M-B1

 

設定二次選擇的開始,拖曳滑鼠以進行二次選擇。

M-B3

 

設定二次選擇的結尾。

M-B1-B1

 

將一個單詞標記為二次選擇。

M-B1-B1-B1

 

將一行標記為二次選擇。

 

10. 高階 Emacs 剪下和貼上命令

鍵盤輸入

功能

描述

 M-(num)

C-k

kill-line

剪下行的整數 數目。如果是 0,剪下從游標到該行開頭的全部內容;如果是負數,則反向剪下。

M-k

kill-sentence

剪下從游標到句子的結尾處的內容。

M-z

zap-to-char

刪除從游標到指定的字元之間的所有文字。

M-y

yank-pop

移動到剪下環中的下一個槽位。

M-(num)

C-y

yank

貼上剪下環中指定槽位的內容。

 

11. 使用書籤的 Emacs 命令

鍵盤輸入

功能

描述

C-x r mBookmark

bookmark-set

設定一個名為 Bookmark 的書籤。

C-x r l

bookmarks-bmenu-list

列出所有已儲存的書籤。

M-x bookmark-delete

bookmark-delete

刪除一個書籤。

C-x r bBookmark

bookmark-jump

跳轉至名為 Bookmark 的書籤中所設定的位置。

M-x bookmark-save

bookmark-save

將所有的書籤儲存到書籤檔案 ~/.emac.bmk 中。

 

12. 常見的 Emacs 視窗操作命令

功能

繫結

描述

split-window-vertically

C-x 2

從中間將當前視窗劃分為兩半,垂直地堆疊新的緩衝區。

switch-to-buffer-other-window

C-x 4 b

垂直地將當前視窗劃分為兩半,提示輸入緩衝區以使用底部的視窗,並將其作為活動視窗。

display-buffer

C-x 4 C-o

在另一個視窗中顯示一個緩衝區,提示輸入緩衝區以使用另一個視窗,但保持當前視窗為活動視窗。(如果僅存在一個視窗,那麼垂直地劃分該視窗以顯示另一個緩衝區。)

find-file-other-window

C-x 4 f

在新的緩衝區中開啟新的檔案,在新的垂直視窗中繪製它。

find-file-read-only-other-window

C-x 4 r

在一個新的只讀緩衝區中開啟新的檔案,在新的垂直視窗中繪製它。

scroll-other-window

C-M-v

滾動到下一個由 C-x o 切換到的視窗。

scroll-all

切換 scroll-all 次要模式。當它處於開啟狀態時,將同時滾動顯示當前視窗中的緩衝區的所有視窗,並滾動均等的相應距離。

other-window

C-x o

將游標移動到下一個視窗,並使其成為活動視窗。

windmove-up

移動到恰好位於當前視窗上方的視窗,如果它存在的話。

windmove-down

移動到恰好位於當前視窗下方的視窗,如果它存在的話。

windmove-left

移動到恰好位於當前視窗左邊的視窗,如果它存在的話。

windmove-right

移動到恰好位於當前視窗右邊的視窗,如果它存在的話。

delete-window

C-x 0

刪除當前視窗,並將游標移動到使用 C-x o 將切換到的下一個視窗。

delete-other-windows

C-x 1

刪除當前視窗之外的所有視窗。

kill-buffer-and-window

C-x 4 0

刪除當前視窗,並剪下它的緩衝區。

split-window-horizontally

C-x 3

將當前視窗從中間劃分為兩半,水平地堆疊新的緩衝區。

follow-mode

切換 follow 次要模式。當它在緩衝區中處於開啟狀態時,將所有顯示該緩衝區的視窗連線為一個較大的虛擬視窗。

enlarge-window

C-x ^

使當前視窗增加一行的高度;在其之前使用一個負數,將使得當前視窗減少一行的高度。

shrink-window-horizontally

C-x }

使當前活動視窗減少一列的寬度。

enlarge-window-horizontally

C-x {

使當前活動視窗增加一列的寬度。

shrink-window-if-larger-than-buffer

C-x -

將當前活動視窗的大小縮小到對於它所包含的緩衝區來說可能的最小尺寸。

balance-windows

C-x +

平衡所有視窗的尺寸,使它們的大小大致相等。

compare-windows

將當前視窗與下一個視窗進行比較,在兩個視窗中從游標處開始比較,並在兩個緩衝區中將游標移動到第一個不同的字元處,直到到達緩衝區的末尾為止。

 

設定EMACS變數

1.有些變數可以包含數值或者字串,而其他的變數則是“真”或者“假”:如果將一個變數的值設定為 nil ,那麼它的值是“假”,值 t 表示“真”。

2.使用 describe-variable 函式以得到變數的值。當您執行這個函式的時候,Emacs 將開啟一個新視窗,該視窗中包含該變數的給定當前 

   值。如果有的話,還將提供關於該變數的描述。這個函式與 C-h v 按鍵進行了繫結。

3.使用M-x set-variable來進行變數設定

 

13. Emacs 鍵盤輸入幫助命令彙總

鍵盤輸入

函式

描述

Tab

如果給出了某個命令的一部分,那麼這個命令將執行命令完成功能,顯示給定命令的所有可能的輸入值。

command prefix 或者keystroke C-h

這個命令用於描述給定命令字首 或者鍵盤輸入 的所有可能的命令和函式。

C-h c keystroke

describe-key-briefly

這個命令將在迷你緩衝區中報告與給定鍵盤輸入 進行了繫結的函式名稱。

C-h k keystroke

describe-key

這個命令將開啟新的幫助緩衝區視窗,其中描述了與給定鍵盤輸入進行了繫結的函式。

C-h l

view-lossage

這個命令將開啟新的緩衝區,並顯示最後鍵入的 100 個字元。

open-dribble-file

這個命令將開啟指定的檔案,並將所有鍵盤輸入的副本記錄到該檔案。

 

14. Emacs 函式幫助命令彙總

鍵盤輸入

函式

描述

apropos

對於一個給定的正則表示式,這個命令將給出 apropos 命令和變數的列表。

C-h a regexp

command-apropos

對於給定的正則表示式 ,這個命令將給出 apropos 命令的列表。

C-h b

describe-bindings

這個命令將在一個新的幫助緩衝區視窗中描述當前主要模式的所有有效的鍵繫結。

C-h ffunction

describe-function

這個命令將在一個新的幫助緩衝區視窗中描述給定函式 的用途。

C-h vvariable

describe-variable

這個命令將在一個新的幫助緩衝區視窗中描述給定變數 的用途。

C-h wfunction

where-is

這個命令將描述某個特定函式所繫結到的鍵盤輸入(如果有的話)。