学习GNU Emacs命令速查表(一)

    版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。

    博客地址http://blog.csdn.net/shuxiao9058

    原始作者:季亚


第一章  Emacs的基本概念

1-1Emacs编辑器的主模式

模式

功能

基本模式(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-2Emacs编辑器的副模式

模式

功能

自动换行模式(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-ySHIFT-INSERT     
  Edit
Paste Most Recent

yank

恢复被删除的文本


 

C-wSHIFT-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-wSHIFT-DELETE
  Edit
Cut

kill-region

删除文本块

C-ySHIFT-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-undoundo之间并没有真正的不同。它们的工作情况都是一样的。

第三章  查找和替换操作

3-1:递增查找命令速查表

键盘操作

命令名称

动作

C-s
  Edit
Search IncrementalForward String

isearch-forward

向前(朝文件尾方向)开始递增查找操作;后面是查找字符串。另外,(向前)查找下一个出现查找字符串的地方

C-s
  Edit
Search IncrementalBackward 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
SearchString Forward

向前(朝文件尾方向)开始一次非递增查找操作

C-s

向前查找下一个

C-r Entersearchstring Enter
  Edit
SearchString Backwards

向前(朝文件头方向)开始一次非递增查找操作

C-r

向后查找下一个

 

3-3:查询-替换操作中的响应

键盘操作

操作

M-%
  Edit
ReplaceReplace String

开始查询-替换操作

Spacey

用新字符串替换查询字符串searchstring,然后前进到下一个位置

Deln

不替换;前进到一个位置

.

在当前位置做替换后退出查询-操作

,

替换并显示替换情况(再按空格键或“y”后才移动到下一个位置)

!

对后面的文件内容全部进行替换,不再提问是否要进行替换

^

返回上一次进行了替换的位置

Enterq

退出查询-替换操作

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
SearchRegexp Forward

re-search-forward

向前(朝文件尾方向)查找一个正则表达式

C-M-r Enter
  Edit
SearchRegexp Backwards

re-search-backward

向后(朝文件头方向)查找一个正则表达式

C-M-s Enter
  Edit
Search IncrementalForwardRegexp

isearch-forward-regexp

向前(朝文件尾方向)递增查找一个正则表达式

C-M-r Enter
  Edit
Search IncrementalBackwardRegexp

isearch-backward-regexp

向后(朝文件头方向)递增查找一个正则表达式

C-M-% Enter
  Edit
ReplaceReplaceRegexp

query-replace-regexp

查询-替换一个与正则表达式

()

replace-regexp

无条件地对一个正则表达式做全局性替换(谨慎使用)

 

3-6Ispell命令速查表

键盘操作

命令名称

动作

M-$ Enter
  Tools
Spell CheckingSpell-Check Word

ispell-word

检查光标位置上的单词或者光标后面的单词

()
  Tools
Spell CheckingSpell-
Check Region

ispell-region

检查文本块里的单词

()
  Tools
Spell CheckingSpell-
Check Buffer

ispell-buffer

检查缓冲区里的单词

()
  Tools
Spell CheckingSpell-
Check Message

ispell-message

检查电子邮件正文里的单词

()
  Tools
Spell CheckingSpell-
Check Comments

ispell-comments-and-strings

检查程序里的注释和字符串

C-u M-$
  Tools
Spell CheckingContinue Spell-Checking

ispell-continue

Ispell重新开始继续执行;这个命令只有在运行过Ispell并用“C-g”组合键暂停过它的执行时才有效

()
  Tools
Spell CheckingKill Process

ispell-kill-ispell

杀死(即结束)Ispell进程

M-Tab
  Tools
Spell CheckingComplete Word

ispell-complete-word

在文本模式下,自动补足当前单词

()
  Tools
Spell CheckingAutomatic Spell-Checking (Flyspell)

flyspell-mode

进入Flyspell副模式,该模式下会突出显示错误拼写单词。

()

flyspell-buffer

拼写检查当前缓冲区,突显出所有拼错的单词。使用鼠标中键来纠正。

 

3-7UNIX拼写检查命令速查表

键盘操作

命令名称

动作

()

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) WindowThis 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-oo

打开当前行的书签到另一个窗口;按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
BookmarksSet Bookmark

bookmark-set

在当前光标位置处设置一个书签

C-x r b
  Edit
BookmarksJump to Bookmark

bookmark-jump

跳转到书签指示位置

(无)
  Edit
BookmarksRename Bookmark

bookmark-rename

重新命名一个书签

(无)
  Edit
BookmarksDelete Bookmark

bookmark-delete

删除一个书签

(无)
  Edit
BookmarksSave Bookmarks

bookmark-save

把书签全都保存到默认的书签

C-x r l
  Edit
BookmarksEdit Bookmark List

bookmark-menu-list

进入“*Bookmark List*”编辑缓冲区

(无)
  Edit
BookmarksInsert Contents

bookmark-insert

插入与给定书签关联着的文件的完整内容

(无)
  Edit
BookmarksSave Bookmarks As

bookmark-write

把书签全都保存到一个指定的文件里

(无)
  Edit
BookmarksLoad a Bookmark File

bookmark-load

从指定文件里加载书签

(无)
  Edit
BookmarksInsert 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,并由本人翻译整理而得。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值