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

Emacs 快捷鍵

快捷鍵組合:

c-x : Ctrl+x

m-x: Alt+x


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

交換光標和標記的位置。

M-@

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

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

Copyright © Linux教程網 All Rights Reserved