GNU Emacs命令速查表

时间:2021-08-10 02:10:31

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

创建新窗格并在其中显示另外一个编辑缓冲区

第五章 Emacs工作环境

表5-1:shell模式命令速查表

键盘操作

命令名称

动作

(无)

shell

进入shell模式

C-c C-c
  Signals→BREAK

comint-interrupt-subjob

中断当前作业;相当于UNIX的shell中的“C-c”组合键

C-d

comint-delchar-or-maybe-eof

如果是在编辑缓冲区的末尾,送出EOF字符;如果是其他位置,删除一个字符

C-c C-d
  Signals→EOF

comint-send-eof

送出EOF字符

C-c C-u

comint-kill-input

删除当前行;相当于UNIX的shell中的“C-u”组合键

C-c C-z
  Signals→STOP

comint-stop-subjob

对非X用户,挂起或者停止一个作业;相当于UNIX的shell中的“C-z”组合键

M-p
  In/Out→Previous Input

comint-previous-input

检索此前的上一个命令(可以重复执行以找回更早的命令)

M-n
  In/Out→Next Input

comint-next-input

检索此后的下一个命令(可以重复执行以找回更近的命令)

Enter

comint-send-input

送出输入在当前行上的命令

Tab
  Complete→Complete Before Point

comint-dynamic-complete

自动补足当前命令、文件名或者变量名

C-c C-o
  In/Out→Delete Current Output Group

comint-kill-output

删除最后一条命令的输出

C-c C-r

comint-show-output

把输出内容的第一行移到窗口的顶部

C-c C-e
  In/Out→Show Maximum Output

comint-show-maximum-output

把输出内容的最后一行移动窗口的底部

C-c C-p
  In/Out→Backward Output Group

comint-previous-prompt

移动到前一条命令

C-c C-n
  In/Out→Forward Output Group

comint-next-prompt

移动到后一条命令

表5-2:Dired命令速查表

键盘操作

命令名称

动作

C-x d
  File→Open Directory

dired

启动Dired

A
  Operate→Search Files

dired-do-search

对加有待操作标记的文件做一个正则表达式搜索;第一次匹配时停下,按“M-”键发现下一个匹配。

B
  Operate  Byte→compile

dired-do-byte-compile

字节编译文件

C
  Operate  Byte→Copy to

dired-do-copy

复制文件

d
  Mark→Flag

dired-flag-file-deletion

给文件加上待删除标记

D
  Operate→Delete

dired-do-delete

以问答方式立刻删除某个文件

e
  Immediate→Find This File

dired-find-file

编辑文件

f

dired-advertised-find-file

查找文件(以对它进行编辑)

g
  Immediate→Refresh

revert-buffer

从磁盘上重新读入目录

G
  Operate→Change Group

dired-do-chgrp

改变文件的组权限

h

describe-mode

为Dired显示描述性的帮助文本。

H
  Operate→Hardlink to ...

dired-do-hardlink

为该文件创建硬链接,Emacs要求你为硬链接命名(并不是所有的操作系统都支持硬链接)

i
  Subdir→Insert This Subdir

dired-maybe-insert-subdir

将这个子目录清单添加到当前的Dired缓冲;如果它已经存在,只是移动到它

k

dired-do-kill-lines

从画面上删除光标所在的那一行

L
  Operate→Load

dired-do-load

加载文件

m或* m
  Mark→Mark

dired-mark

给文件加上“*”待操作标记

M
  Operate→Change Mode

dired-do-chmod

对当前文件使用chmod命令

n

dired-next-line

移动到下一行

o
  Immediate→Find in Other Window

dired-find-file-other-window

在另一个窗口里查找文件,但不移动到新窗口

C-o
  Immediate→Display in Other Window

dired-display-file

在另外一个窗口里查找文件,移动到新窗口

O
  Operate→Change Owner

dired-do-chown

改变文件的所有权

p

dired-previous-line

上移一行

P
  Operate→Print

dired-do-print

打印文件

q

quit-window

退出Dired

Q
  Operate→Query Replace in Files

dired-do-query-replace

对加有待操作标记的文件做查找-替换字符串操作

R
  Operate→Rename to

dired-do-rename

重新命名文件

S
  Operate→Symlink to

dired-do-symlink

为该文件创建符号链接,Emacs要求你为符号链接命名

s

dired-sort-toggle-or-edit

对Dired编辑缓冲区里的文件清单按日期或按文件名重新排序(在两者之间切换)

t
  Mark→Toggle Marks

dired-toggle-marks

对文件和目录切换待操作标记;按t标记所有没有待操作标记过的文件和目录,再次按t恢复原有待操作标记

u
  Mark→Unmark

dired-unmark

去掉待操作标记

v
  Immediate→View This File

dired-view-file

查看文件内容(只读)

w

dired-copy-filename-as-kill

将文件名复制到剪切环;如果多个文件被标记,将复制所有被标记文件的名字到剪切环

x

dired-do-flagged-delete

删除加有待删除标记“D”的文件

y

dired-show-file-type

使用file命令显示文件的类型信息

Z
  Operate→Compress

dired-do-compress

对文件进行压缩或者解压缩操作

~
  Mark→Flag Backup Files

dired-flag-backup-files

给备份文件加上待删除标记;去掉这些标记的命令是“C-u ~”

#
  Mark→Flag Auto-save Files

dired-flag-auto-save-files

给自动保存文件加上待删除标记;去掉这些标记的命令是“C-u #”

&
  Mark→Flag Garbage Files

dired-flag-garbage-files

给文件加上待删除标记“garbage”

.
  Mark→Mark Old Backups

dired-clean-directory

给带编号的备份文件(如果有的话)加上待删除标记

=
  Immediate→Diff

dired-diff

把这个文件与(文本标记处的)另一个文件进行比较

M-=
  Immediate→Compare With Backup

dired-backup-diff

将这个文件与它的备份文件进行比较

!或 X
  Operate→Shell Command

dired-do-shell-command

以问答方式执行shell命令;命令的操作对象是加有待操作标记的文件

+
  Immediate→Create Directory

dired-create-directory

创建一个目录

>
  Subdir→Next Dirline

dired-next-dirline

移动到下一个目录

<
  Subdir→Prev Dirline

dired-prev-dirline

移动到上一个目录

^

dired-up-directory

在一个新的Dired缓冲区中查找父目录

$
  Subdir→Hide/Unhide Subdir

dired-hide-subdir

隐藏或者显示当前目录或者子目录

M-$
  Subdir→Hide All

dired-hide-all

隐藏所有子目录,只留下他们的名字;重复命令来显示

C-M-n
  Subdir→Next Subdir

dired-next-subdir

移动到下一个子目录(如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区)

C-M-p
  Subdir→Prev Subdir

dired-prev-subdir

移动到上一个子目录(如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区)

C-M-u
  Subdir→Tree Up

dired-tree-up

如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区,,将在当前缓冲区移动到父目录

C-M-d
  Subdir→Tree Down

dired-tree-down

如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区,将在当前缓冲区移动到第一个子目录

* c
  Mark→Change Marks

dired-change-marks

改变指定文件的标记,例如,从*(一般标记)到D(待删除标记)

* !或M-Del
  Mark→Unmark All

dired-unmark-all-files

从所有文件中删除所有标记

* *
  Mark→Mark Executables

dired-mark-executables

给可执行文件加上标记;去掉这些标记的命令是“C-u *”

* /
  Mark→Mark Directories

dired-mark-directories

给目录加上标记;去掉这些标记的命令是“C-u /”

* @
  Mark→Mark Symlinks

dired-mark-symlinks

给符号链接加上标记;去掉这些标记的命令是“C-u * @”

M-}
  Mark→Next Marked

dired-next-marked-file

移动到下一个有“*”或 “D”标记的文件

M-{
  Mark→Previous Marked

dired-prev-marked-file

移动到上一个有“*”或 “D”标记的文件

% d
  Regexp→Flag

dired-flag-files-regexp

为匹配正则表达式的文件添加待删除标记

% g
  Regexp→Mark Containing

dired-mark-files-containing-regexp

为其内容匹配正则表达式的文件添加标记

% l
  Regexp→Downcase

dired-downcase

小写标记的文件

% R
  Regexp→ Mark

dired-do-rename-regexp

用“filenames”重新命名匹配正则表达式的文件

% u
  uRegexp→Upcase

dired-upcase

大写标记的文件

表5-3:打印命令速查表

键盘操作

动作

M-x print-buffer
  File→Print Buffer

打印编辑缓冲区(类似于UNIX中的“pr | lpr”命令)

M-x print-region
  File→Print Region

打印文本块(类似于UNIX中的“pr | lpr”命令)

M-x lpr-buffer

打印编辑缓冲区,但不带页码(类似于UNIX的“lpr”命令)

M-x lpr-region

打印文本块,但不带页码(类似于UNIX的“lpr”命令)

P
  Operate→Print

在Dired里,把默认的打印命令放到辅助输入缓冲区里;按回车执行它之前还可以对它进行修改

M-x ps-print-buffer-with-faces
  File→Postscript Print Buffer

打印带有文本属性的编辑缓冲区

M-x ps-print-region-with-faces
  File→Postscript Print Region

打印带有文本属性的文本块

表5-4:日历移动命令速查表

键盘操作

命令名称

动作

(无)
  Tools→Calendar

calendar

显示日历

.
  Goto→Today

calendar-goto-today

移动到今天的日期

C-f

calendar-forward-day

向前移动一天

C-b

calendar-backward-day

向后移动一天

C-n

calendar-forward-week

向前移动一星期

C-p

calendar-backward-week

向后移动一星期

M-}

calendar-forward-month

向前移动一个月

M-{

calendar-backward-month

向后移动一个月

C-x ]
  Scroll→Forward 1 Year

calendar-forward-year

向前移动一年

C-x [
  Scroll→Backward 1 Year

calendar-backward-year

向后移动一年

C-a 
  Goto→Beginning of Week

calendar-beginning-of-week

移动到本星期的开始

C-e 
  Goto→End of Week

calendar-end-of-week

移动到本星期的结束

M-a 
  Goto→Beginning of Month

calendar-beginning-of-month

移动到本月的开始

M-e 
  Goto→End of Month

calendar-end-of-month

移动到本月的结束

M-< 
  Goto→Beginning of Year

calendar-beginning-of-year

移动到本年的开始

M-> 
  Goto→End of Year

calendar-end-of-year

移动到本年的结束

g d
  Goto→Other Date

calendar-goto-date

移动到指定日期

o

calendar-other-month

把指定月份放在日历画面中间

C-x <
  Scroll→Forward 1 Month

scroll-calendar-left

前卷一个月

C-x >
  Scroll→Backward 1 Month

scroll-calendar-right

后卷一个月

C-v
  Scroll→Forward 3 Months

scroll-calendar-left-three-months

前卷三个月

M-v
  Scroll→Forward 3 Months

scroll-calendar-right-three-months

后卷三个月

Space

scroll-other-window

卷动另外一个窗口

表5-5:日历和日记命令速查表

键盘操作

命令名称

动作

p d

calendar-print-day-of-year

显示今天是本年度的第几天(比如365天里的第364天)

p o

calendar-print-other-dates

显示这个日期的所有日历信息

Space

scroll-other-window

卷动另一个窗口

q

exit-calendar

退出日历功能

a
  Holidays→For Window

list-calendar-holidays

显示日历画面期间的假期

h
  Holidays→For Cursor Date

calendar-cursor-holidays

在辅助缓冲区中显示今天的节假日(如果有节假日)

x
  Holidays→Mark

mark-calendar-holidays

突出显示节假日,节假日将被显示另外一种字体、另外一种颜色或者在它们旁边加上一个星号(*)

u
  Holidays→Unmark Calendar

calendar-unmark

去掉用来突出节假日的标记(与x命令的功能正好相反)

i w
  Diary→Insert Weekly

insert-weekly-diary-entry

根据此时是星期几添加一项以一星期为循环周期的日记条目

i y
  Diary→Insert Yearly

insert-yearly-diary-entry

添加一项以一年为循环周期的日记条目

i d
  Diary→Insert Daily

insert-diary-entry

为指定日期添加一项日记条目

i m
  Diary→Insert Monthly

insert-monthly-diary-entry

添加一项以一个月为循环周期的日记条目

i c
  Diary→Insert Cyclic

insert-cyclic-diary-entry

添加一项以n天为循环周期的日记条目

i a
  Diary→Insert Anniversary

insert-anniversary-diary-entry

添加一项以一年为循环周期的日记条目

i b
  Diary→Insert Block

insert-block-diary-entry

添加一项日期段条目

m

mark-diary-entries

突出显示日记条目,它们被显示为另外一种字体、另外一种颜色或者在它们旁边加上一个加号(+)

d

view-diary-entries

显示当前日期的日记条目

s
  Diary→Show All

show-all-diary-entries

显示“.diary”文件的内容

M-=

calendar-count-days-region

计算某个时间段里的天数

M
  Moon→Lunar Phases

calendar-phases-of-moon

显示3个月期间的月相情况

S

calendar-sunrise-sunset

根据给定的经度和纬度,显示当前日期的日出、日落时间

C-Space或C-@

calendar-set-mark

以时间日期为对象设置(时间)块标记,而不是按普通情况设置文本标记

第六章电子邮件和Usenet新闻

表6-1:邮件发送命令速查表

键盘操作

命令名称

动作

C-x m

mail

打开“*mail*”编辑缓冲区,以邮件模板为基础填写有关资料和邮件内容

C-x 4 m

mail-other-window

在一个新窗口打开“*mail*”编辑缓冲区

C-x 5 m

mail-other-frame

在一个新窗格里打开“*mail*”编辑缓冲区

C-c C-f C-t
  Headers→To

mail-to

移动到“To:”栏

C-c C-f C-c
  Headers→Cc

mail-cc

移动到“CC:”栏(如果没有就创建之)

C-c C-f C-b
  Headers→Bcc

mail-bcc

移动到“BCC:”栏(如果没有就创建之)

C-c C-f C-f
  Headers→Fcc

mai-fcc

提示输入一个文件名,然后向这个文件发送一份邮件副本

C-c C-f C-r
  Headers→Reply-To

mai-reply-to

指定一个地址,而这封邮件的回复都将被发到这个地址上去

C-c C-f C-s
  Headers→Subject

mai-subject

移动到信头中的主题栏

C-c C-t
  Headers→Text

mai-text

移动到可以开始输入信体的地方去

C-c C-w
  Mail→Insert Signature

mail-signature

插入“.signature”文件的内容

C-c C-c
  Mail→Send Message

mail-send-and-exit

发送邮件并退出“*mail*”编辑缓冲区

C-c C-s
  Mail→Send,Keep Editing

mail-send

发送邮件,但不退出“*mail*”编辑缓冲区

(无)

define-mail-alias

为某个名字或某个邮件表定义一个缩写的假名

(无)

Mail→Cancel

mail-dont-send

取消正在书写的邮件信息

表6-2:邮件信头中的信息栏

信头中的信息栏

作用

To:

收信人:此邮件将被发送给这些人

CC:

抄送:这些人将收到此邮件的一个副本

FCC:

文件抄送:此邮件的一个副本将被追加到这个文件的末尾

BCC:

密抄:这些人将收到此邮件的一个副本,但他们的名字不会出现在此邮件的信头里

Subject

主题:此邮件信息的主题

From:

发信人:发出这封邮件的人(如果与自己的用户名不一样);这一栏只有在用别人的帐户发邮件消息时才需要填写

Reply-to:

回信地址:此邮件的回信应该被发到的地址

表6-3:RMAIL命令速查表

键盘操作

命令名称

动作

SPACE

scroll-up

卷屏,查看此消息的下一个画面

DEL

srloll-down

卷屏,查看此消息的上一个画面

.

rmail-beginning-of-message

移动到此消息的开头

n
  Move→Next

rmail-next-undeleted-message

移动到下一条消息

p
  Move→Previous

rmail-previous-undeleted-message

移动到上一条消息

<
  Move→First

rmail-first-message

移动到第一条消息

>
  Move→Last

rmail-last-message

移动到最后一条消息

j

rmail-show-message

如果这个命令的前面有一个数字“n”,跳到第n条消息

表6-4:邮件删除命令速查表

键盘操作

命令名称

动作

d

Delete→Delete

rmail-delete-forward

给邮件加上待删除标记,然后移动到下一个

C-d

rmail-delete-backward

给邮件加上待删除标记,然后移动到上一个

M-n
  Move→Next

rmail-next-message

移动到下一条消息;不管它是否已经加上待删除标记

M-p
  Move→Previous

rmail-previous -message

移动到上一条消息;不管它是否已经加上待删除标记

u
  Delete→Undelete

rmail-undelete- previous -message

去掉邮件信息上的待删除标记

x
  Delete→Expunge

rmail- Expunge

删除已经加有待删除标记的全部信息

s

Delete→Expunge/Save

rmail- Expunge-and-save

删除已经加有待删除标记的全部信息并保存RMAIL文件

表6-5:邮件文件操作命令速查表

键盘操作

命令名称

动作

o filename ENTER

Classify→Output(Rmail)

rmail-output-to-rmail-file

把邮件消息保存为RMAIL文件格式

C-o filename ENTER

Classify→Output(inbox)

rmail-output

把邮件消息保存为UNIX邮件文件格式(一个标准的ASCII文本文件)

i filename ENTER
  Move→Next

rmail-input

从文件里读出邮件消息并把该文件转换为RMAIL格式

(无)

unrmail

创建RMAIL文件的ASCII版本

表6-6:邮件清单操作命令速查表

键盘操作

命令名称

动作

SPACE

rmail-summary-scroll-msg-up

向前卷动RMAIL窗口里的邮件消息

DEL

rmail-summary-scroll-msg-down

向后卷动RMAIL窗口里的邮件消息

d

Delete→Delete

rmail-summary-delete-forward

给消息加上待删除标记(在消息序号前出现字母“D”标记)

e

rmail-summary-edit-current-message

编辑当前信息(完成时要按下“C-c C-c”组合键

u

Delete→Undelete

rmail-summary-undelete

去掉当前消息上的待删除标记

n

rmail-summary-next-msg

移动到下一条消息并把它显示在RMAIL窗口里

p

rmail-summary-previous-msg

移动到上一条消息并把它显示在RMAIL窗口里

x

Delete→Expunge

rmail-summary-expunge

删除所有加有待删除标记的消息

q

rmail-summary-quit

退出RMAIL

w

rmail-summary-wipe

删除RMAIL邮件清单窗口

表6-7:内置的邮件消息分类标签

分类标签

含义

field

此消息已经被保存到一个邮件文件里

unseen

还没有读过这条消息

answered

已经(用“r”命令)给这条邮件发了封回信

forwarded

已经把这条消息转发给别人

deleted

已经给这条消息加上了待删除标记

表6-8:邮件排序命令速查表

键盘操作

命令名称

动作

h

Summary→All

rmail-summary

显示邮件清单

ESC C-t

Summary→By Topic

rmail-summary-by-topic

按指定主题列出一个邮件清单;相应的查找操作是对“Subject:”栏进行的

ESC C-s

Summary→By Regexp

rmail-summary-by-regexp

按指定正则表达式列出一个邮件清单;相应的查找操作是对信头的所有信息栏进行的

ESC C-s

Summary→By Recipients

rmail-summary-by-recipientsa

按用户列出一个邮件清单

l

Summary→By Labels

rmail-summary-by-labels

按分类标签列出一个邮件清单

(无)

rmail-sort-by-date

按日期对RMAIL文件进行排序

(无)

rmail-sort-by-subject

按主题对RMAIL文件进行排序

(无)

rmail-sort-by-author

按作者对RMAIL文件进行排序

(无)

rmail-sort-by-recipient

按收信人对RMAIL文件进行排序

(无)

rmail-sort-by-lines

按消息长度对RMAIL文件进行排序(从短到长)

(无)

rmail-sort-by-correspondents

按对应关系对RMAIL文件进行排序

C-u

universial-argument

颠倒排序顺序

a.这里用“recipient(收信人)”一词有些误导成份。这个命令给出的邮件清单其实是按用户排列的,不管他是发出邮件的人、收到邮件的人,还是收到邮件抄送副本的人。

表6-9:“Goup”编辑缓冲区操作命令速查表

键盘操作

命令名称

动作

(无)

Tools→Read Net News

gnus

启动Gnus

SPACE

Group→Read

gnus-group-read-group

阅读光标位置处的新闻组里的文章

j

Groups→Jump to group

gnus-group-jump-to-group

提示输入一个新闻组名称以转到它那里去(可以转到未曾订阅的新闻组)

n

gnus-group-next-unread-group

移动到下一个有尚未阅读过的新闻的新闻组

p

gnus-group-prev-unread-group

移动到上一个有尚未阅读过的新闻的新闻组

N

gnus-group-next-group

移动到下一个新闻组

P

gnus-group-prev-group

移动到上一个新闻组

<

beginning-of-buffer

移动到编辑缓冲区的开始

>

end-of-buffer

移动到编辑缓冲区的末尾

u

Group→Toggle subscription

gnus-group-unsubscribe-current-group

订阅或者撤销订阅这个新闻组

U

gnus-group-unsubscribe-group

订阅或者撤销订阅一个指定的新闻组

c

gnus-group-catchup-current

给这个新闻组里的所有文章都加上已阅读标记并删除它们

C

Group→Catch up all articles

gnus-group-catchup-current-all

给这个新闻组里的所有文章都加上已阅读标记并删除它们,包括那些带惊叹号(表示文章已保存)的文章

A k

gnus-group-list-killed

列出那些被“.newsrc.eld”文件里的语句所排除掉的新闻组

l

gnus-group-list-groups

列出已订阅并且有新闻可读的新闻组

L

gnus-group-list-all-groups

列出此服务器上的全体新闻组

g

Misc→Check for new news

gnus-group-get-new-news

取回启动Gnus后新收到的新闻

R

Misc→Restart Gnus

gnus-group-restart

读“.newsrc”文件并重新启动Gnus(同时取回最新的新闻)

b

Misc→Delete bogus groups

gnus-group-check-blogus-groups

找出不存在的新闻组并删除它们

a

Misc→Post an article

gnus-group-post-news

为这个新闻组写一篇新文章

C-x C-t

gnus-group-transpose-groups

交换当前行和上一行的位置

s

Misc→Save .newsrc files

gnus-group-save-newsrc

保存“.newsrc”文件

z

Misc→Suspend Gnus

gnus-group-suspend

临时性地挂起Emacs和Gnus

q

Misc→Exit from Gnus

gnus-group-exit

退出新闻功能并刷新“.newsrc”文件

Q

Misc→Exit without saving

gnus-group-quit

退出新闻功能但不刷新“.newsrc”文件

V

Misc→Gnus version

gnus-version

显示Gnus的版本号

表6-10:“Summary”编辑缓冲区操作命令速查表

键盘操作

命令名称

动作

.

gnus-summary-first-unread-article

移动到此新闻组里尚未读过的第一篇文章处

<

Article→Beginning of the article

gnus-summary-beginning-of-article

移动到当前文章的开始

>

Article→End of the article

gnus-summary-end-of-article

移动到当前文章的末尾

n

gnus-summary-next-unread-article

移动到下一篇文章

N

gnus-summary- next-article

移动到下一篇文章(即使已经读过)

p

gnus-summary-prev-unread-article

移动到上一篇文章

P

gnus-summary-prev-article

移动到上一篇文章(即使已经读过)

l

gnus-summary-goto-last-article

移动到刚读过的最后一篇文章(如果移动得太快,可以用这条命令返回去)

H f

Misc→Fetch group FAQ

gnus-summary-fetch-faq

取回这个新闻组的常见问题答疑文件

ESC C-t

Threads→Toggle threding

gnus-summary-toggle-threads

打开/关闭线索功能

ESC C-k

Threads→Mark thread as read

gnus-summary-kill-thread

排除当前线索,包括其子线索

ESC C-d

Threads→Go down thread

gnus-summary-down-thread

移动到这个线索的下一篇文章处

ESC C-u

Threads→Go up thread

gnus-summary-up-thread

移动到这个线索的上一篇文章处

ESC C-f

Threads→Go to next thred

gnus-summary-next-thread

移动到下一个线索(即移动到另外一个主题)

ESC C-b

Threads→Go to previous thred

gnus-summary-prev-thread

移动到上一个线索(即移动到另外一个主题)

ESC C-h

Threads→Hide thread

gnus-summary-hide-thread

隐藏当前线索

ESC C-s

Threads→Display hidden thread

gnus-summary-show-thread

显示当前线索

q

gnus-summary-exit

返回“Group”编辑缓冲区

Q

gnus-summary-exit-no-update

返回“Group”编辑缓冲区,但不删除读过的文章

c

Group→Catch up

gnus-summary-catchup-and-exit

给此新闻组里的文章都加上已阅读标记并返回“News-group”编辑缓冲区

u

gnus-summary-tick-article-forward

给当前文章加上未阅读标记,在它旁边放上一个惊叹号以保留它供今后阅读。如果重复输入此命令,则保存下一篇文章

U

gnus-summary-tick-article-backward

给当前文章加上未阅读标记,在它旁边放上一个惊叹号以保留它供今后阅读。如果重复输入此命令,则保存上一篇文章

C-o

gnus-summary-save-article-mail

以UNIX格式保存当前文章

o

gnus-summary-save-article

以RMAIL格式保存当前文章

d

gnus-summary-mark-as-read-forward

给当前文章加上已阅读标记,从当前行开始向下移动

D

gnus-summary-mark-as-read-backward

给当前文章加上已阅读标记,从当前行开始向回移动

j

gnus-summary-goto-subject

要求指定在屏幕上显示的文章篇数

ESC n

gnus-summary-next-unread-subject

移动到下一个尚未读过的主题

ESC p

gnus-summary-prev-unread-subject

移动到上一个尚未读过的主题

ESC C-n

gnus-summary-next-same-subject

移动到同一主题的下一篇尚未读过的主题

ESC C-p

gnus-summary-prev-same-subject

移动到同一主题的上一篇尚未读过的主题

m

Post→Send a mail

gnus-summary-mail-other-window

打开一个电子邮件消息的编辑缓冲区

C-c C-f

gnus-summary-mail-forward

把这篇文章的副本发送给某人

=

gnus-summary-expand-window

扩展“Summary”窗口,让它充满整个屏幕

g

Article→Redisplay

gnus-summary-show-article

显示当前文章(特别适用于扩展了的“Summary”窗口或者需要在这个窗口里移动的情况)

g

Article→Isearch article

gnus-summary-isearch-article

用isearch功能查找当前文章中的文本

ESC s

Article→Search all articles

gnus-summary-search-article-forward

对当前文章进行正方向的正则表达式查找

ESC r

gnus-summary-search-article-backward

对当前文章进行反方向的正则表达式查找

t

gnus-summary-toggle-header

打开/关闭文章信息头的详细显示状态

w

gnus-summary-stop-page-breaking

不在文章中出现换页符的地方进行分布

x

gnus-summary-remove-lines-marked-as-read

把带已阅读标记的文章全部删除

C-c TAB

gnus-info-find-node

显示Gnus的Info帮助信息

C-c C-r

gnus-summary-caesar-message

加密/解密这篇文章

C-x C-s

gnus-summary-reselect-current-group

重启这个新闻组,不给文章加上已阅读标记

ESC t

gnus-summary-toggle-mime

进入MIME模式

ESC U

gnus-summary-clear-mark-backward

清除当前行上的所有标记,包括连字符、排除标记“K”、待删除标记“D”。如果重复输入这个命令,则清除前一行上的标记

ESC u

gnus-summary-clear-mark-forward

清除当前行上的所有标记。如果重复输入这个命令,则清除后一行上的标记

C-t

Misc→Toggle line truncation

gnus-summary-toggle-truncation

打开/关闭针对长文本行的截断功能

&

Misc→Filter articles

gnus-summary-execute-command

在信头部分里查找指定的正则表达式

|

gnus-summary-pipe-output

把这篇文章经管道输出到一个子进程去,比如送去打印等

C-d

Article→Enter digest buffer

gnus-summary-rmail-digest

如果这篇文章是一份文摘,分析并阅读之

表6-11:与过滤文件有关的命令速查表

键盘操作

命令名称

动作

C-k

Group→Kill

gnus-summary-kill-same-subject

排除这个主题下的所有文章;其反操作是“C-u C-k”组合键

k

gnus-summary-kill-same-subject-and-select

排除这个主题下的所有文章,并选择下一个主题;其反操作是“C-u k”组合键

ESC k

Group→Edit kill file

gnus-summary-edit-local-kill

编辑一个局部过滤文件(只对当前新闻组有影响)

ESC k

Group→Edit global kill file

gnus-summary-edit-global-kill

编辑一个全局过滤文件(对所有的新闻组有影响)

C-c C-k C-a

gnus-kill-file-kill-by-author

插入排除此作者全部文章的LISP代码

C-c C-k C-s

gnus-kill-file-kill-by-subject

插入排除此主题全部文章的LISP代码

C-c C-c

gnus-kill-file-exit

保存过滤文件并退出“kill”编辑缓冲区

表6-12:投稿命令速查表

键盘操作

命令名称

动作

a

Post→Post an article

gnus-summary-post-news

张贴一篇新文章

r

gnus-summary-reply

直接回复文章的作者

R

Post→Reply and yank

gnus-summary-reply-with-original

直接回复文章的作者并附带一份原文的副本

f

gnus-summary-followup

把对当前文章的回应张贴到Usenet上

F

Post→Followup and yank

gnus-summary-followup-with-original

把对当前文章的回应张贴到Usenet上并附带一份原文的副本

C-c C-f C-n

news-reply-newsgroups

移动到“News”编辑缓冲区的“Newsgroups:”栏;如果它不存在,就创建它

C-c C-f C-f

news-reply-followup-to

移动到“News”编辑缓冲区的“Flowup-To:”栏,如果它不存在,就创建它

C-c C-f C-k

news-reply-keywords

移动到“News”编辑缓冲区的“Keywords:”栏,如果它不存在,就创建它

C-c C-f C-d

news-reply-distribution

移动到“News”编辑缓冲区的“Distribution:”栏,如果它不存在,就创建它

C-c C-f C-a

news-reply-summary

移动到“News”编辑缓冲区的“Summary:”栏,如果它不存在,就创建它

C-c C-y

news-reply-yank-original

在“News”编辑缓冲区里插入原始文章

C-c C-q

mail-fill-yanked-message

对插入到“News”编辑缓冲区里的原始文章进行段落重排(以便它们有统一的文本行长度)

C-c C-r

gnus-summary-caesar-message

在“News”编辑缓冲区里对文章进行简单的加密(采用rot13算法)

C-c C-c

news-inews

把文章张贴到Usenet上(如果在“News”编辑缓冲区里)或把它作为电子邮件发出去(如果在“mail”编辑缓冲区里)

C

gnus-summary-cancel-article

在“Summary”编辑缓冲区里,撤回投稿

第七章 Emacs的因特网工具箱

表7-1:Telnet命令速查表

键盘操作

命令名称

动作

(无)

telnet

进入Telnet模式

C-d

comint-delchar-or-maybe-eof

根据上下文,发送EOF字符或删除光标位置下的字符

RETURN

telnet-send-input

处理Telnet输入

C-c C-c

telnet-interrupt-subjob

中断当前作业,相当于shell中的“C-c”组合键

C-c C-q

send-process-next-char

发送紧随其后的控制字符,相当于shell中的“C-q”组合键

C-c C-d

comint-send-eof

发送EOF(文件尾)字符

C-c C-r

comint-show-output

让输出内容的第一行显示在窗口的顶部

ESC C-l

comint-show-output

让输出内容的第一行显示在窗口的顶部

C-c C-e

comint-show-maximum-output

让输出内容的最后一行显示在窗口的底部

C-c C-o

comint-kill-output

删除上一个命令的输出内容

C-c C-z

telnet-c-z

挂起或暂停一个作业,相当于shell中的“C-z”组合键

C-c C-w

backward-kill-word

删除前一个单词

C-c C-u

comint-kill-input

删除当前行,相当于shell中的“C-u”组合键

ESC n

comint-next-input

查看此后输入的命令(重复时可查看到更靠后的命令)

ESC P

comint-previous-input

查看此前输入的命令(重复时可查看到更靠前的命令)

表7-2:W3命令速查表

键盘操作

命令名称

动作

(无)

w3-follow-URL-at-point

取回光标位置处的URL并进入W3(在Emacs的任何组件里都能使用这个命令进入W3)

(无)

w3

进入w3,并把默认起始页面显示在屏幕上

C-o

w3-fetch

提示输入一个URL,然后把它取回来

SPACE

scroll-up

向后卷动屏显内容

DEL

sroll-down

向前卷动屏显内容

RETURN

w3-follow-link

选中一个超链接

<

w3-start-of-document

前进到当前页的最开始

>

w3-end-of-document

前进到当前页的最末尾

TAB或n

w3-forward-link

移动到下一个超链接

b

w3-back-link

移动到前一个超链接

m

w3-complete-link

提示输入一个要移动到的超链接

I

w3-goto-last-buffer

前进到访问过的最后页

B

w3-backward-in-historya

退回到上一页

F

w3-forward-in-history

前进到历史记录里的下一页

C-c C-b

w3-show-history-list

把历史记录显示为超链接

a

w3-hotlist-add-document

把当前页面添加到收藏夹里

A

w3-hotlist-add-document-at-point

把光标位置上的URL添加到收藏夹里

d

w3-hotlist-delete

提示指定一个收藏夹条目以删除它

H

w3-show-hotlist

把收藏夹显示为超文本

h

w3-use-hotlist

指示指定一个收藏夹条目以显示它

(无)

w3-rename-hotlist-entry

指示指定一个收藏夹条目以重新命名

ESC RETURN

w3-follow-inlined-image

尝试显示插入点处的链接图片

v

url-view-url

显示当前页的URL地址

V

w3-view-this-url

显示光标位置处超链接的URL地址

k或C-k

w3-save-url

把当前页的URL地址复制到删除环里

K

w3-save-this-url

把光标位置处的URL地址复制到删除环里

s

w3-source-document

显示这一页的HTML源码

S

w3-source-document-at-point

显示光标位置处URL的HTML源代码

o

w3-open-local

在W3中打开一个本地HTML文件

U

w3-use-links

前进到下一个<LINK>标记处

?

w3-help

查阅W3的在线手册

Q或u

w3-leave-buffer

退出W3,但不删除当前编辑缓冲区

q

w3-quit

退出W3,并删除当前编辑缓冲区

g或r

w3-reload-document

删除编辑缓冲区,然后再重新取回这一页

l

w3-goto-last-buffer

前进到刚才访问过的前一个编辑缓冲区

P

p3-print-url-under-point

以HTML或LATEX格式把光标位置处URL指示的主页打印出来

p

w3-print-this-url

以HTML或LATEX格式把当前主页打印出来

w

w3-submit-bug

提交一份在W3里发现的程序漏洞报告

C-c C-v

w3-version

显示W3版本号

ESC s

w3-search

查找(如果这是一个可查找数据项)。用Emacs的查找命令进行本地查找

ESC m

w3-mail-current-document

把这个主页以电子邮件方式发送给某人,具体格式由用户自己选定

ESC M

w3-mail-document-under-point

取回光标位置处URL指示的主页并把它发送给某人

ESC TAB

w3-insert-this-url

提示指定一个用来放置此URL的编辑缓冲区;如果带有“C-u”前缀,就把URL插入到光标位置处

w3-point-netscape-boolmarks

导入Netscape的收藏夹文件并把它转换为W3格式(原始文件不会被修改)

a.只有在变量url-keep-history被设置为“t”时,与历史记录有头的命令才能用。要想对该变量做它永久性的设置,请把下面这条语句添加到“.emacs”文件里:

(setq url-keep-history t)

第八章简章的文字排版和特效编辑

表8-1:制表位命令速查表

键盘操作

命令名称

动作

(无)

edit-tab-stops

打开一个名为“*Tab Stops*”的编辑缓冲区以便改变制表位的设置情况

(无)

untabify

把全部制表位都转换为对应个数的空格

(无)

tabify

在不影响文本版面的情况下把3个及3个以上的空格视需要转换为制表位间隔

表8-2:缩进命令速查表

键盘操作

命令名称

动作

C-j

newline-and-indent

移动到下一行并缩进使其与当前行有相同的缩进级别

(无)

paragraph-indent-text-mode

第一行缩进且段落之间没有空行的一个主模式

(无)

paragraph-indent-minor-mode

相当于文本缩进模式的副模式

(无)

fill-individual-paragraphs

根据段落的缩进情况对它们进行段落重排

C-x Tab

indent-rigidly

缩进一列;前面加上“C-u”或“M-n”以进行指定的列数缩进

C-M-\

indent-region

按第一行的缩进设置把文本块作整体的缩进

M-m

back-to-indentation

把光标移动到文本行的第一个字符

C-M-o

split-line

在光标位置处分拆文本行,并把它的后半截缩进到光标所在的那一列

(无)
  Edit→Text Properties→Indentation→Indent More

increase-left-margin

增加编辑缓冲区左缩进层次,默认为四个字符

(无)
  Edit→Text Properties→Indentation→Indent Less

decrease-left-margin

减少编辑缓冲区左缩进层次,默认为四个字符

(无)
  Edit→Text Properties→Indentation→Indent Right More

decrease-right-margin

减少编辑缓冲区右缩进层次,默认为四个字符

(无)
  Edit→Text Properties→Indentation→Indent Left More

increase-right-margin

增加编辑缓冲区右缩进层次,默认为四个字符

C-x .

set-fill-prefix

把左边界到光标位置之间的字符串设置为加在段落每一行之前的缩进前导字符串;在第一列输入这个命令,表示此后将不再插入缩进前导字符串

表8-3:居中命令速查表

键盘操作

命令名称

动作

M-s

center-line

把光标所在的文本行居中

M-S

center-paragraph

把光标所在的段落居中

(无)

center-region

把当前定义的文本块居中

(无)
  Edit→Text Properties→Justification→Center

set-justification-center

把选定的文本居中

表8-4:矩形编辑命令速查表

键盘操作

命令名称

动作

C-x r k

kill-rectangle

删除一个矩形并把它保存起来

C-x r d

delete-rectangle

删除一个矩形但不把它保存起来

C-x r y

yank-rectangle

在光标位置插入最后一次删除的矩形

C-x r c

clear-rectangle

使用空格清除矩形区域的内容,并且不保存它

C-x r o

open-rectangle

在矩形区域里插入一个空白矩形

C-x r r r

copy-rectangle-to-register

复制矩形区域到寄存区r(这时r是任何字符)

C-x r i r

insert-register

把保存在寄存区r里的矩形区域内容插入到当前位置(这时r是任何字符)

(无)

delete-whitespace-rectangle

如果一个矩形包含空白字符,将其删除,并缩小矩形

C-x r t string Enter

string-rectangle

改变被标记的矩形,将其内容发放字符串(如果字符串比矩形太宽或太窄,尺寸将做相应的改变)

(无)

string-insert-rectangle

提示输入字符串,并插入矩形

表8-5:图形模式与文本模式的对比

键盘操作

文本模式

图形模式

图形模式下的等价命令

Enter

插入一个空白行

把光标移动到下一行

“C-o”组合键插入一个空白行

C-d

删除字符并把其余文本左移

把字符替换为一个空格,不移动其余文本

“C-c C-d”组合键相当于文本模式下的“C-d”组合键

Space

把文本向右移,插入一个空格

把光标向右移,沿途经过的所有字符都将被替换为空格

无;请回到文本模式去插入空格a

C-k

删除当前行上的文本;按两次“C-k”组合键将删除这一行

删除当前行上的文本,但不删除这一行

删除某行需回到文本模式进行操作或者使用delete-rectangle命令

Tab

插入制表符并把后续文本向右移

向右移动光标,但不影响沿途经过的文本

要想插入与一个制表位等价的空格,请回到文本模式进行操作

C-n

移动到下一行

向下移动,但光标的列坐标保持不变

(无)

C-p

移动到上一行

向上移动,但光标的列坐标保持不变

(无)

C-f

向文件尾方向移动一个字符

向右移动一个字符

(无)

C-b

向文件头方向移动一个字符

向左移动一个字符;到达行首后就不再移动

(无)

a.如果想插入的是一个空白块,就得使用open-rectangle之类的命令。具体用法请参考本章前面对这一命令的介绍。另外,如果想在行尾插入空格,就得使用“C-f”之类的组合键。

表8-6:图形模式编辑命令速查表

键盘操作

命令名称

动作

(无)

picture-modeoredit-picture

进入图形模式

C-c C-c

picture-mode-exit

退出图形模式,返回此前的编辑模式

C-c ^

picture-movement-up

把默认绘制方向的设置为上

C-c .

picture-movement-down

把默认绘制方向的设置为下

C-c >

picture-movement-right

把默认绘制方向的设置为右

C-c <

picture-movement-left

把默认绘制方向的设置为左

C-c `

picture-movement-nw

把默认绘制方向的设置为左上

C-c `

picture-movement-ne

把默认绘制方向的设置为右上

C-c /

picture-movement-sw

把默认绘制方向的设置为左下

C-c \

picture-movement-se

把默认绘制方向的设置为右下

C-c C-f

picture-motion

沿默认绘制方向向前移动光标

C-c C-b

picture-motion-reverse

沿默认绘制方向向后移动光标

C-f

picture-forward-column

把光标向右移动一个字符

C-b

picture-backward-column

把光标向左移动一个字符

C-n

picture-move-down

把光标向下移动一个字符

C-p

picture-move-up

把光标向上移动一个字符

C-d

picture-clear-column

把光标下的字符转换为一个空格,不把其右侧的文本向左移

C-c C-d

delete-char

删除光标下的字符,把其右侧的文本向左移

C-k

picture-clear-line

删除当前行上的文本,但即使连续按两次也不会删除这一行

C-o

picture-open-line

插入一个空白行

C-c C-wr

picture-clear-rectangle-to-register

清除矩形区域的内容并把它保存到寄存区r里

C-u C-c C-wr

picture-clear-rectangle-to-register

删除矩形区域并把它保存到寄存区r里

C-c C-xr

picture-yank-rectangle-from-register

把保存在寄存区r里的矩形区域内容粘贴到到当前位置

C-c C-r

picture-draw-rectangle

在当前区域周围绘制一个矩形

C-c C-y

picture-yank-rectangle

粘贴矩形

C-c C-k

picture-clear-rectangle

清除矩形

C-c Tab

picture-set-tab-stops

设置制表位只在图形模式下适用 (“!”、“-”、 和“~”指默认制表位)

M-Tab

picture-tab-search

移动到下一个图形模式选项卡

表8-7:大纲模式命令速查表

键盘操作

命令名称

动作

(无)

outline-mode

切换大纲模式

C-c C-n
  Headings→Next

outline-next-visible-heading

移动到下一个标题

C-c C-p
  Headings→Previous

outline-previous-visible-heading

移动到上一个标题

C-c C-f
  Headings→Next Same Level

outline-forward-same-level

移动到下一个同级的标题

C-c C-b
  Headings→Previous Same Level

outline-backward-same-level

移动到上一个同级的标题

C-c C-u
  Headings→Up

outline-up-heading

移动到上一级别的标题层次

C-c C-t
  Hide→Hide Body

hide-body

隐藏全体正文行

C-c C-a
  Show→Show All

show-all

显示被隐藏起来的所有东西

C-c C-q
  Hide→Hide Sublevels All

hide-sublevels

只显示第一级标题

C-c C-o
  Hide→Hide Other

hide-other

隐藏当前子树以外的所有文字和标题。显示第一级别标题

C-c @

outline-mark-subtree

标记当前标题和下级所有文字和标题

C-c C-^

outline-promote

提升当前标题一个级别

C-c C-v

outline-demote

降低当前标题一个级别

C-c C-d
  Hide→Hide Subtree

hide-subtree

隐藏某标题的全体下级小标题及其相关正文

C-c C-c
  Hide→Hide Entry

hide-entry

隐藏某标题的正文部分(不包括它的下级小标题和那些小标题的正文部分)

C-c C-l
  Hide→Hide Leaves

hide-leaves

隐藏某标题的正文部分,同时隐藏它全体下级小标题的正文部分(只留下标题)

C-c C-s
  Show→Show Subtree

show-subtree

显示某给定标题的下级的下级小标题和它的相关文本

C-c C-e
  Show→Show Entry

show-entry

显示某给定标题的相关文本(不包括它的下级小标题及它们的正文部分)

C-c C-k
  Show→Show Branches

show-branches

显示某标题的正文及全体下级小标题的全部正文

C-c Tab
  Show→Show Children

show-children

显示某标题的下一级小标题(不包括正文文本)

第三版新增内容

表8-8:绘图模式编辑命令速查表

键盘操作

命令名称

动作

(无)

artist-mode

进入绘图模式

C-c C-c

artist-mode-off

退出绘图模式,返回此前的编辑模式

C-f

artist-forward-char

向右移动一个字符(如果在一行的末尾,就在当前行中添加字符)

C-b

artist-backward-char

向左移动一个字符(如果在一行的开始,就什么事都不做)

C-n

artist-next-line

下移一列(如果在缓冲区的末尾,就添加新行到当前缓冲区)

C-p

artist-previous-line

上移一列(如果在缓冲区的开始,就什么事都不做)

C-c C-a C-o或按鼠标中键

artist-select-operation

选择一个操作(按“TAB”键显示操作清单)

C-c C-a f`
  Artist menu→Edit→Flood-fill

artist-select-op-flood-fill

选择填充操作

C-c C-a C-k
  Artist menu→Edit→Cut

artist-select-op-cut-rectangle

在某一区域周围绘制一个矩形,然后剪切之

C-c C-a M-w
  Artist menu→Edit→Copy

artist-select-op-copy-rectangle

在某一区域周围绘制一个矩形,然后复制之

C-c C-a C-y
  Artist menu→Edit→Paste

artist-select-op-paste

粘贴你所复制的,不管是不是使用鼠标操作的

C-c C-a v
  Artist menu→Drawing→Vaporize

artist-select-op-vaporize-line

清除所选择的一条线(文字行,而不是文件中的一行)

C-c C-a C-d
  Artist menu→Drawing→Erase

artist-select-op-erase-char

选择擦除操作(鼠标将是清除器)

C-c C-a S
  Artist menu→Drawing→Spray-can

artist-select-op-spray-can

选择油漆桶操作

C-c C-a e
  Artist menu→Drawing→Ellipse

artist-select-op-ellipse

绘制椭圆

C-c C-a p
  Artist menu→Drawing→Poly-line

artist-select-op-poly-line

绘制折线

C-c C-a r
  Artist menu→Drawing→Rectangle

artist-select-op-rectangle

绘制矩形

C-c C-a l
  Artist menu→Drawing→Line

artist-select-op-line

绘制直线

C-c C-a C-r
  Artist menu→Settings→Rubber banding

artist-toggle-rubber-banding

如果开启(默认),当拉伸图形时显示形状;否则(没有开启),将显示端点

C-c C-a C-l
  Artist menu→Settings→Set Line

artist-select-line-char

选择画线时所使用的字符(默认是“-”)

C-c C-a C-f
  Artist menu→Settings→Set Fill

artist-select-fill-char

选择字符来填充形状(默认是空格)

第九章用Emacs设置排版标记

表9-1:各种标记模式下的注释

如果在下列模式里敲入“M-;”

Emacs将插入

HTML模式

<!-- -->

HTML helper模式

<!-- -->

SGML模式

<!-- -->

nxml模式

<!-- -->

psgml模式

<!-- -->

LaTeX模式

%% (在空行上)

% (在有内容的行上)

表9-2:nroff配对模式支持的配对命令组

起始标记
(由用户输入)

收尾标记
(由Emacs自动插入)


使用情况

.(b

.)b

me宏定义包

.(l

.)l

me宏定义包

.(c

.)c

me宏定义包

.(x

.)x

me宏定义包

.(z

.)z

me宏定义包

.(d

.)d

me宏定义包

.(q

.)q

me宏定义包

.(f

.)f

me宏定义包

.LG

.NL

ms宏定义包

.LD

.DE

ms宏定义包

.CD

.DE

ms宏定义包

.BD

.DE

ms宏定义包

.DS

.DE

ms宏定义包

.DF

.DE

ms宏定义包

.FS

.FE

ms, mm宏定义包

.KS

.KE

ms宏定义包

.KF

.KE

ms宏定义包

.LB

.LE

mm宏定义包

.AL

.LE

mm宏定义包

.BL

.LE

mm宏定义包

.DL

.LE

mm宏定义包

.ML

.LE

mm宏定义包

.RL

.LE

mm宏定义包

.VL

.LE

mm宏定义包

.RS

.RE

ms宏定义包

.TS

.TE

tbl预处理器

.EQ

.EN

eqn预处理器

.PS

.PE

pic预处理器

.BS

.BE

mm宏定义包

.na

.ad b

torff指令

.nf

.fi

torff指令

.de

..

torff指令

表9-3:nroff模式命令速查表

键盘操作

命令名称

功能

(无)

nroff-mode

进入nroff模式

ESC n

forward-text-line

把光标移动到下一个文本行

ESC p

backward-text-line

把光标移动到上一个文本行

ESC ?

cout-text-lines

统计文本块中的文本行数

(无)

electric-nroff-mode

进入一个副编辑模式。在这个模式里,输入必须配对出现的nroff命令组中的第一个,按“C-j”组合键,Emacs就会自动插入该配对命令组中的第二个命令

C-j

electric-nroff-newline

只能用在nroff配对模式里,自动插入一组必须配对出现的troff宏定义标记中的第二个

ESC ;

indent-for-comment

在文本里插入一个注释标记

表9-4:TEX和LATEX命令速查表

键盘操作

命令名称

功能

(无)

tex-mode

根据文件内容进入TEX模式或LATEX模式

(无)

plain-tex-mode

进入TEX模式

(无)

latex-mode

进入LATEX模式

C-j

tex-terminate-paragraph

插入两个硬回车(标准的段落结束标记),并检查段落的语法

C-c {

tex-insert-braces

插入两个花括号,然后把光标放在它们中间

C-c }

up-list

插入光标在两个花括号中间,就把光标移到紧跟右括号的后面

(无)
  TeX→Validate Buffer

tex-validate-buffer

检查编辑缓冲区有无语法错误

(无)
  TeX→Validate Region

tex-validate-region

检查文本块有无语法错误

C-c C-f
  TeX→TeX File

tex-file

保存当前文件,然后对其进行TEX或LATEX排版处理

C-c C-b
  TeX→TeX Buffer

tex-buffer

对编辑缓冲区进行TEX或LATEX排版处理

C-c C-l
  TeX→TeX Recenter

tex-recenter-output-buffer

把排版信息画面显示在屏幕上,(至少)会显示最后一条出错信息

C-c C-k
  TeX→TeX Kill

tex-kill-job

中断TEX或LATEX排版处理工作

C-c C-p
  TeX→TeX Print

tex-print

打印TEX或LATEX的排版输出

C-c C-q
  TeX→Show Print Queue

tex-show-print-queue

查看打印队列

C-c C-e

latex-close-block

只能用在LATEX模式里,自动插入某个命令组中的第二个命令

(无)

tex-close-latex-block

提供关闭元素命令对

C-c Tab`
  TeX→BibTeX File

tex-bibtex-file

对编辑缓冲区进行BIBTEX排版处理(一个自动创建目录索引的系统)

C-c C-v
  TeX→TeX View

tex-view

查看DVI输出

(无)
  TeX→Print (alt printer)

tex-alt-print

使用自定义变量“tex-alt-dvi-print-command”指定的打印机打印.dvi输出文件

C-c C-o

latex-insert-block

插入块(提示输入块的名称和选项)

C-c C-u

tex-goto-last-unclosed-latex-block

向后查找文件未闭合块,并将光标移动最近的未闭合块

M-Enter

latex-insert-item

插入“\”项目

(无)

latex-split-block

插入结束到当前块,开始到新块

"

tex-insert-quote

插入的TeX风格的引号

表9-5:Html-helper模式命令速查表

键盘操作

命令名称

动作

C-u

universal-argument

当加在其他标记命令的前面时,把标签插入到文本块的两端

M-Tab

tempo-complete-tag

补足当前标签

C-c C-z v
  HTML→Load This Buffer in Browser

browse-url-of-file

在默认浏览器中显示该文件

C-c C-z u
  HTML→Browse URL at Point

browse-url-default-browser

在默认浏览器中打开光标位置处超链接的URL地址

C-c M-h 1
  HTML→Insert Headers→Header 1

tempo-template-html-header-1

插入<h1></h1>标签

C C-c M-h 2
  HTML→Insert Headers→Header 2

tempo-template-html-header-2

插入<h2></h2>标签

C-c M-h 3
  HTML→Insert Headers→Header 3

tempo-template-html-header-3

插入<h3></h3>标签

C-c M-h 4
  HTML→Insert Headers→Header 4

tempo-template-html-header-4

插入<h4></h4>标签

C-c M-h 5
  HTML→Insert Headers→Header 5

tempo-template-html-header-5

插入<h5></h5>标签

C-c M-h 6
  HTML→Insert Headers→Header 6

tempo-template-html-header-6

插入<h6></h6>标签

M-Enter
  HTML→Insert Text Elements→Paragraph

tempo-template-html-paragraph

插入<p></p>标签

C-c C-a l
  HTML→Insert Hyperlinks→Hyperlink

tempo-template-html-hyperlink

插入<a href=""></a>标签

C-c C-a n
  HTML→Insert Hyperlinks→Target

tempo-template-html-link-target

插入<a name=""></a>标签

C-c Enter
  HTML→Insert Text Elements→Line Break

tempo-template-html-line-break

插入一个换行符“<br>”

C-c =
  HTML→Insert Text Elements→Horizontal Line

tempo-template-html-horizontal-line

插入一个换行符水平标尺“<hr>”

C-c C-z t
  HTML→Insert Timestamp→Delimiter

html-helper-insert-timestamp-delimiter-at-point

插入时间戳分隔符

C-c C-h t
  HTML→Insert Structural Elements→Title

tempo-template-html-title

插入<title></title>标签

C-c Tab a
  HTML→Insert Inlined Images→Image

tempo-template-html-image

插入<img src="">标签

C-c C-l u
  HTML→Insert List Elements→Unordered List

tempo-template-html-unordered-list

插入<ul><li></li></ul>标签

C-c C-l o
  HTML→Insert List Elements→Ordered List

tempo-template-html-ordered-list

插入<ol><li></li></ol>标签

C-c C-l t
  HTML→Insert List Elements→Definition Item

tempo-template-html-definition-item

插入<dt><dd>标签

C-c C-l l
  HTML→Insert List Elements→List Item

tempo-template-html-item

插入<li></li>标签

C-c C-l d
  HTML→Insert List Elements→ Definition List

tempo-template-html-definition-list

插入<dl><dt><dd></dl>标签

C-c C-l m
  HTML→Insert List Elements→ Menu List

tempo-template-html-menu-list

插入<menu><li></li></menu>标签

C-c C-l r
  HTML→Insert List Elements→Directory List

tempo-template-html-directorylist

插入<dir><li></li></dir>标签

C-c C-l i
  HTML→Insert List Elements→List Item

html-helper-smart-insert-item

插入<li></li>标签

C-c C-f z
  HTML→Insert Form Elements→Rest Form

tempo-template-html-reset-form

插入<input type="RESET">标签

C-c C-f b
  HTML→Insert Form Elements→Button

tempo-template-html-button

插入<input type="BUTTON">标签

C-c C-f m
  HTML→Insert Form Elements→Submit Form

tempo-template-html- submit-form

插入<input type="SUBMIT">标签

C-c C-f s
  HTML→Insert Form Elements→Selections

tempo-template-html-selections

插入<select><option></select>标签

C-c C-f o
  HTML→Insert Form Elements→Option

tempo-template-html-option

插入<option>标签

C-c C-f v
  HTML→Insert Form Elements→Option with Value

tempo-template-html-option-with-value

插入<option value="">标签

C-c C-f i
  HTML→Insert Form Elements→Image Field

tempo-template-html-input-image-field

插入<input type="IMAGE">标签

C-c C-f r
  HTML→Insert Form Elements→Radiobutton

tempo-template-html-input-radiobutton

插入<input type="RADIO">标签

C-c C-f c
  HTML→Insert Form Elements→Checkbox

tempo-template-html-checkbox

插入<input type="CHECKBOX">标签

C-c C-f p
  HTML→Insert Form Elements→Text Area

tempo-template-html-text-area

插入<textarea></textarea>标签

C-c C-f f
  HTML→Insert Form Elements→Form

tempo-template-html-form

插入<form></form>标签

C-c C-f t `
  HTML→Insert Form Elements→Text Field

tempo-template-html-text-field

插入<input type="TEXT">标签

C-c C-f h
  HTML→Insert Form Elements→Hidden Field

tempo-template-html-hidden-field

插入<input type="HIDDEN">标签

C-c M-l s
  HTML→Insert Logical Styles→Strong

tempo-template-html-strong

插入<strong></strong>标签

C-c M-l e
  HTML→Insert Logical Styles→Emphasized

tempo-template-html-emphasized

插入<em></em>标签

C-c M-l b
  HTML→Insert Logical Styles→Blockquote

tempo-template-html-blockquote

插入<blockquote></blockquote>标签

C-c M-l p
  HTML→Insert Logical Styles→Preformatted

tempo-template-html-preformatted

插入<pre></pre>标签

C-c C-p s
  HTML→Insert Physical Styles→Strikethru

tempo-template-html-strikethru

插入<s></s>标签

C-c C-p f
  HTML→Insert Physical Styles→Fixed

tempo-template-html-fixed

插入<tt></tt>标签

C-c C-p u
  HTML→Insert Physical Styles→Underline

tempo-template-html-underline

插入<u></u>标签

C-c C-p i
  HTML→Insert Physical Styles→Italic

tempo-template-html-italic

插入<i></i>标签

C-c C-p b
  HTML→Insert Physical Styles→Bold

tempo-template-html-bold

插入<b></b>标签

C-c C-p c
  HTML→Insert Physical Styles→Center

tempo-template-html-center

插入<center></center>标签

C-c C-p l
  HTML→Insert Physical Styles→Spanning Class

tempo-template-html-spanning-class

插入<span class=""></span>标签

C-c C-p 5
  HTML→Insert Physical Styles→Spanning Style

tempo-template-html-spanning-style

插入<span style=""></span>标签

C-c C-s a
  HTML→Insert Logical Styles→Address

tempo-template-html-address

插入<address></address>标签

C-c M-l d
  HTML→Insert Logical Styles→Definition

tempo-template-html-definition

插入<dfn></dfn>标签

C-c M-l v
  HTML→Insert Logical Styles→Variable

tempo-template-html-variable

插入<var></var>标签

C-c M-l k
  HTML→Insert Logical Styles→Keyboard Input

tempo-template-html-keyboard

插入<kbd></kbd>标签

C-c M-l r
  HTML→Insert Logical Styles→Citation

tempo-template-html-citation

插入<cite></cite>标签

C-c M-l x
  HTML→Insert Logical Styles→Sample

tempo-template-html-sample

插入<samp></samp>标签

C-c M-l c
  HTML→Insert Logical Styles→Code

tempo-template-html-code

插入<code></code>标签

C-c C-h b
  HTML→Insert Structural Elements→Base

tempo-template-html-base

插入<base href="">标签

C-c C-h l
  HTML→Insert Structural Elements→Link

tempo-template-html-link

插入<link href="">标签

C-c C-h m
  HTML→Insert Structural Elements→Meta Name

tempo-template-html-meta-name

插入<meta content="">标签

C-c C-h n
  HTML→Insert Structural Elements→Nextid

tempo-template-html-nextid

插入<nextid>标签

C-c C-h i
  HTML→Insert Structural Elements→Isindex

tempo-template-html-isindex

插入<isindex>标签

C-c C-h B
  HTML→Insert Structural Elements→Body

tempo-template-html-body

插入<body></body>标签

C-c C-h H
  HTML→Insert Structural Elements→Head

tempo-template-html-head

插入<head></head>标签

C-c C-t t
  HTML→Insert Tables→Table

tempo-template-html-table

插入<table></table>标签

C-c C-t p
  HTML→Insert Tables→html table caption

tempo-template-html-html-table-caption

插入<caption></caption>标签

C-c C-t d
  HTML→Insert Tables→Table Data

tempo-template-html-table-data

插入<TD></TD>标签

C-c C-t h
  HTML→Insert Tables→Table Header

tempo-template-html-table-header

插入<TH></TH>标签

C-c C-t r
  HTML→Insert Tables→Table Row

tempo-template-html-table-row

插入<TR></TR>标签

第三版新增内容

表9-6:HTMLHelper模式插入字符实体速查表


按键操作


命令名称


字符实体

网页上呈现
字符

C-c >

tempo-template-html-greater-than

&gt;

>

C-c <

tempo-template-html-less-than

&lt;

<

C-c &

tempo-template-html-ampersand

&amp;

&

C-c u

tempo-template-html-u`-(&&ugrave;)

&ugrave;

ù

C-c i

tempo-template-html-i`-(&&igrave;)

&igrave;

ì

C-c o

tempo-template-html-o`-(&&ograve;)

&ograve;

ò

C-c E

tempo-template-html-e'-(&&eacute;)

&eacute;

é

C-c e

tempo-template-html-e`-(&&egrave;)

&egrave;

è

C-c a

tempo-template-html-a`-(&&agrave;)

&agrave;

à

C-c SPC

tempo-template-html-nonbreaking-space

&nbsp;

nonbreaking space

C-c -

tempo-template-html-soft-hyphen

&shy;

soft hyphen

C-c @

tempo-template-html-copyright

&copy;

©

C-c $

tempo-template-html-registered

&reg;

®

C-c "

tempo-template-html-quotation-mark

&quot;

"

C-c #

tempo-template-html-ascii-code

Enter the 3-digit code for the desired character

specified character

表9-7:字符编码对照表

C-x 8前缀

按键操作


ISO
简写风格


符号实体


网页上呈现字符

C-x 8 "

"

&acute;

´

C-x 8 ' a

' a

&aacute;

á

C-x 8 'A

'A

&Aacute;

Á

C-x 8 ' e

' e

&eacute;

é

C-x 8 ' E

' E

&Eacute;

É

C-x 8 ' i

' i

&iacute;

í

C-x 8 ' I

' I

&Iacute;

Í

C-x 8 ' o

' o

&oacute;

ó

C-x 8 ' O

' O

&Oacute;

Ó

C-x 8 ' u

' u

&uacute;

ú

C-x 8 ' U

' U

&Uacute;

Ú

C-x 8 ' y

' y

&yacute;

 

C-x 8 ' Y

' Y

&Yacute;

 

C-x 8 ` a

` a

&agrave;

à

C-x 8 ` A

` A

&Agrave;

À

C-x 8 ` e

` e

&egrave;

è

C-x 8 ` E

` E

&Egrave;

È

C-x 8 ` i

` i

&igrave;

ì

C-x 8 ` I

` I

&Igrave;

Ì

C-x 8 ` o

` o

&ograve;

ò

C-x 8 ` O

` O

&Ograve;

Ò

C-x 8 ` u

` u

&ugrave;

ù

C-x 8 ` U

` U

&Ugrave;

 

C-x 8 ^ a

^ a

&acirc;

â

C-x 8 ^ A

^ A

&Acirc;

Â

C-x 8 ^ e

^ e

&ecirc;

ê

C-x 8 ^ E

^ E

&Ecirc;

Ê

C-x 8 ^ i

^ i

&icirc;

î

C-x 8 ^ I

^ I

&Icirc;

Î

C-x 8 ^ o

^ o

&ocirc;

ô

C-x 8 ^ O

^ O

&Ocirc;

Ô

C-x 8 ^ u

^ u

&ucirc;

û

C-x 8 ^ U

^ U

&Ucirc;

Û

C-x 8 " "

" "

&uml;

¨

C-x 8 " a

" a

&auml;

ä

C-x 8 " A

" A

&Auml;

Ä

C-x 8 " e

" e

&euml;

ë

C-x 8 " E

" E

&Euml;

Ë

C-x 8 " i

" i

&iuml;

ï

C-x 8 " I

" I

&Iuml;

Ï

C-x 8 " o

" o

&ouml;

ö

C-x 8 " O

" O

&Ouml;

Ö

C-x 8 " u

" u

&uuml;

ü

C-x 8 " U

" U

&Uuml;

Ü

C-x 8 " s

" s

&szlig;

ß

C-x 8 " y

" y

&yuml;

ÿ

C-x 8 " Y

" Y

&Yuml;

 

C-x 8 ~ ~

 

&not;

¬

C-x 8 ~ a

~ a

&atilde;

ã

C-x 8 ~ A

~ A

&Atilde;

Ã

C-x 8 ~ d

~ d

&eth;

 

C-x 8 ~ D

~ D

&ETH;

 

C-x 8 ~ n

~ n

&ntilde;

ñ

C-x 8 ~ N

~ N

&Ntilde;

Ñ

C-x 8 ~ o

~ o

&otilde;

õ

C-x 8 ~ O

~ O

&Otilde;

Õ

C-x 8 ~ t

~ t

&thorn;

 

C-x 8 ~ T

~ T

&THORN;

 

C-x 8 / /

 

&divide;

÷

C-x 8 o

/ /

&ring;

°

C-x 8 / a

/ a

&aring;

å

C-x 8 / A

/ A

&Aring;

Å

C-x 8 / e

/ e

&aelig;

æ

C-x 8 / E

/ E

&AElig;

Æ

C-x 8 / o

/ o

&oslash;

ø

C-x 8 / O

/ O

&Oslash;

Ø

C-x 8 , ,

~~

&cedil;

¸

C-x 8 , c

~c

&ccedil;

ç

C-x 8 , C

~C

&Ccedil;

Ç

表9-8:标点符号编码对照表

C-x 8前缀 按键操作

符号实体

网页上呈现字符

C-x 8 1 / 2

&frac12;

1/2

C-x 8 1 / 4

&frac14;

1/4

C-x 8 3 / 4

&frac34;

3/4

C-x 8 SPC

&nbsp;

nonbreaking space

C-x8 !

&iexcl;

¡

C-x 8 $

&curren;

¤

C-x 8 +

&plusmn;

±

C-x 8 -

&shy;

soft hyphen

C-x8 .

&middot;

·

C-x 8 <

&laquo;

«

C-x 8 =

&macr;

¯

C-x 8 >

&raquo;

»

C-x8 ?

&iquest;

¿

C-x 8 |

&brvbar;

|

C-x 8 c

&cent;

¢

C-x 8 C

&copy;

©

C-x 8 L

&pound;

£

C-x 8 P

&para;

C-x 8 R

&reg;

®

C-x 8 S

&sect;

§

C-x 8 u

&micro;

µ

C-x 8 x

×

x

C-x 8 Y

&yen;

¥

C-x 8 ^ 1

&sup1;

1

C-x 8 ^ 2

&sup2;

2

C-x 8 ^ 3

&sup3;

3

C-x 8 _ a

&ordf;

a

C-x 8 _ o

&ordm;

o

表9-9:HTML模式插入字符实体速查表


按键操作


命令名称


字符实体

网页上呈现
字符

C-c >

tempo-template-html-greater-than

&gt;

>

C-c <

tempo-template-html-less-than

&lt;

<

C-c &

tempo-template-html-ampersand

&amp;

&

C-c u

tempo-template-html-u`-(&&ugrave;)

&ugrave;

ù

C-c i

tempo-template-html-i`-(&&igrave;)

&igrave;

ì

C-c o

tempo-template-html-o`-(&&ograve;)

&ograve;

ò

C-c E

tempo-template-html-e'-(&&eacute;)

&eacute;

é

C-c e

tempo-template-html-e`-(&&egrave;)

&egrave;

è

C-c a

tempo-template-html-a`-(&&agrave;)

&agrave;

à

C-c SPC

tempo-template-html-nonbreaking-space

&nbsp;

nonbreaking space

C-c -

tempo-template-html-soft-hyphen

&shy;

soft hyphen

C-c @

tempo-template-html-copyright

&copy;

©

C-c $

tempo-template-html-registered

&reg;

®

C-c "

tempo-template-html-quotation-mark

&quot;

"

C-c #

tempo-template-html-ascii-code

Enter the 3-digit code for the desired character

specified character

表9-10:HTML模式命令速查表

键盘操作

命令名称

动作

(无)

html-mode

进入HTML模式

C-c C-tSGMLInsert Tag

sgml-tag

插入一个标签,提示输入属性。如果输入html作为标签名称,则插入一个html模板文件

C-c TabSGMLToggle Tag Visibility

sgml-tags-invisible

在文件中隐藏/显示标签

C-c C-vSGMLView Buffer Contents

browse-url-of-buffer

在默认浏览器中显示该编辑缓冲区

C-c C-s

html-autoview- mode

如果这个模式开启(这个命令可以切换),当文件在Emacs保存的时候,会自动在浏览器中显示

C-c 8

sgml-name-8bit-mode

如果打开,特定击键操作被捕捉插入Latin-1字符并被适当的实体。详情请参阅“在HTML模式下的字符编码”。

C-c C-fSGMLForward Tag

sgml-skip-tag-forward

向前移动到同一级别的下一个标签

C-c C-bSGMLBackward Tag

sgml-skip-tag-backward

向后移动到同一级别的下一个标签

C-c Del或C-c C-dSGMLDelete Tag

sgml-delete-tag

将光标放在标签上或标签前,删除单个标签或成对删除标签

C-c 1

html-headline-1

插入一个<h1>标签

C-c 2

html-headline-2

插入一个<h2>标签

C-c 3

html-headline-3

插入一个<h3>标签

C-c 4

html-headline-4

插入一个<h4>标签

C-c 5

html-headline-5

插入一个<h5>标签

C-c 6

html-headline-6

插入一个<h6>(用于脚注文本)标签

C-c Enter

html-paragraph

插入一个 <p>标签

C-c C-c hHTMLHref Anchor

html-href-anchor

插入一个超链接

C-c C-c nHTMLName Anchor

html-name-anchor

插入一个锚,这样可以创建链接到页面的锚定部分

C-c C-c u HTMLUnordered List

html-unordered-list

创建一个无序列表

C-c C-c o HTMLOrdered List

html-ordered-list

创建一个编号的列表

C-c C-c lHTMLList Item

html-list-item

添加一个项目至列表

C-c C-c iHTMLImage

html-image

插入 <img src="">标签 ,并且在光标放置输入图片的文件名

C-c C-jHTMLLine Break

html-line

插入一个换行符 (<br>).

C-c C-c - HTMLHorizontal Rule

html-horizontal-rule

插入一个水平标尺(<hr>).

C-c C-c r

html-radio-buttons

插入一组单选按钮。Emacs提示输入组的名字、值、是否应该进行检查,以及相关的文本。按“C-G”组合键完成组的创建.

C-c C-c c HTMLCheckboxes

html-checkboxes

插入一组复选框。 Emacs提示输入组的名字、值、是否应该进行检查,以及相关的文本。按“C-G”组合键完成组的创建.

C-c ?SGMLDescribe Tag

sgml-tag-help

在光标所在位置提供简短的标签文字描述

第十章 Emacs中的宏

表10-1:与宏有关的Emacs命令

键盘操作

命令名称

动作

C-x (

kmacro-start-macro

开始录制一个宏

F3

kmacro-start-macro-or-insert-counter

开始录制一个宏。如果在录制一个宏时,按下则插入一个计数器

C-x )

kmacro-end-macro

结束录制一个宏

F4

kmacro-end-or-call-macro

结束录制一个宏(如果宏还在录制)或调用最后一个键盘宏

C-x e

kmacro-end-and-call-macro

执行最后一次录制的宏

C-x C-k n

name-last-kbd-macro

给刚才录制的宏起个名字(做好保存这个宏的准备)

(无)

insert-kbd-macro

向一个文件中插入一个已命名的宏

(无)

macroname

执行一个已命名的键盘宏

C-x q

kbd-macro-query

在定义宏里插入一个查询

C-u C-x q

(无)

在宏定义里插入一个递归编辑

C-M-c

exit-recursive-edit

退出递归编辑

C-x C-k b

kmacro-bind-to-key

为一个宏绑定到一个按键(C-x C-k 0-9和a-z是预留给宏绑定用的)。持续到当前会话结束

C-x C-k Space

kmacro-step-edit-macro

当单步调试一个宏的时候,编辑该宏(在我们看来,接口过于复杂)

C-x C-k l

kmacro-edit-lossage

将最后100次按键设为宏(在这期间的鼠标点击事件不起作用)

C-x C-k e

edit-kbd-macro

按“C-x”组合键编辑最后录制的按键宏,“M-x”编辑已命名宏,“C-h l”编辑Lossage宏(最后键入的100个键盘输入称为Lossage),或者将宏绑定到按键

C-x C-k Enter

kmacro-edit-macro

编辑最后一个键盘宏

C-x C-k C-e

kmacro-edit-macro-repeat

再次编辑最后一个键盘宏

C-x C-k C-t

kmacro-swap-ring

将最后一个键盘宏与之前的键盘宏对调

C-x C-k C-d

kmacro-delete-ring-head

将最后一个键盘宏从宏环中删除

C-x C-k C-p

kmacro-cycle-ring-previous

将先前的宏移至宏环

C-x C-k C-n

kmacro-cycle-ring-next

将下一个宏移至宏环

C-x C-k r

apply-macro-to-region-lines

在某一区域内的每一行应用这个宏

第十一章对Emacs进行定制

表11-1:特殊字符的表达记号

特殊字符表达记号

定义情况

\C-x

C-x (其中“x”是任意字符)

\C-[或\e

Esc;转义符

\M

Meta

\C-j或\n

Newline;转行符

\C-m或\r

Enter;回车符

\C-i或\t

Tab;制表符

表11-2:富模式下字体命令

命令

被选择的字体

M-g d

默认

M-g b

粗体

M-g i

斜体

M-g l

粗斜体

M-g u

下划线

M-g o

其他 (允许你通过字体名称选择字体)

第三版新增内容

表11-3:特定键在ELISP中的命名

ELisp中的命名

 

ELisp中的命名

DEL或backspace

Backspace

 

kp-0 .. kp-9

键盘数字键0-9

delete

Delete键

 

kp-enter

数字键盘上的回车键

down

向下方向键

 

left

向左方向键

end

End按

 

next

Page Down

f1 .. f35

功能按键F1-F35

 

prior

Page Up

home

Home键

 

right

向右方向键

help

Help键

 

up

向上方向键

第十二章程序员的Emacs

表12-1:基本缩进命令速查表

键盘操作

命令名称

动作

C-M-\

indent-region

对光标和文本块标记之间的每一行进行缩进

M-m

back-to-indentation

把光标移到当前行的第一个非空白字符上

M-^

delete-indentation

把当前行合并到上一行去

表12-2:C模式高级移动命令速查表

键盘操作

命令名称

动作

M-a

c-beginning-of-statement

移动到当前语句的开头

M-e

c-end-of-statement

移动到当前语句的末尾

M-q

c-fill-paragraph

如果光标在注释文本中间,则进行段落重排,保留缩进和前导字符

C-M-a

beginning-of-defun

移动到光标所在函数的开头

C-M-e

end-of-defun

移动到光标所在函数的末尾

C-M-h

c-mark-function

把光标放到函数的开头,把文本块标记放到函数的末尾——即把函数整个选取为一个文本块

C-c C-q

c-indent-defun

按缩进样式对整个函数进行缩进

C-c C-u

c-up-conditional

移动到当前预处理器条件的开始位置

C-c C-p

c-backward-conditional

移动到上一个预处理器条件

C-c C-n

c-forward-conditional

移动到下一个预处理器条件

表12-3:C模式缩样式速查表

缩进样式

说明

bsd

BSD系列的UNIS版本使用的编程风格

cc-mode

默认的编程风格;其他样式都是从它推导出来的

ellemtel

瑞典Ellemtel电讯系统实验室的C++文档里使用的编程风格

gnu

Emacs自身和其他GNU程序所使用的C语言书写风格

java

在编写Java代码时使用的风格(Java模式的默认值)

k&r

Kernighan和Ritchie合著的《The C Programming Language》一书中使用的编程风格,这本书是C语言的开山之作

linux

部分Linux内核中C代码所使用的一种风格

python

Python扩展中使用的风格

stroustrup

Bjarne Stroustrup所著的《The C++ Programming Language》一书中使用的编程风格,这本书是C++语言的标准参考书

user

通过定制.emacs文件或自定义(参见第10章)。如果你设置所有其他了它们,所有其他样式将继承自这些自定义

whitesmith

Whitesmith公司在他们的C和C++编译器软件的文档里使用的编程风格

表12-4:S-表达式处理命令速查表

键盘操作

命令名称

动作

C-M-b

backward-sexp

移动到上一个S-表达式

C-M-f

forward-sexp

移动到下一个S-表达式

C-M-t

transpose-sexps

交换光标前后的两个S-表达式的位置

C-M-@

mark-sexp

把文本块标记设置在当前S-表达式的末尾,把光标设置在当前S-表达式的开头

C-M-k

kill-sexp

删除光标后面的那个S-表达式

(无)

backward-kill-sexp

删除光标前面的那个S-表达式

表12-5:列表处理命令速查表

键盘操作

命令名称

动作

C-M-n

forward-list

移动到上一个列表

C-M-p

backward-list

移动到下一个列表

C-M-d

down-list

向前移动,进入下一级括号层次

(无)

up-list

向前移动,退出当前的括号层次

C-M-u

backward-up-list

向后移动,退出当前的括号层次

表12-6:以函数定义(defun)为单位进行移动的命令速查表

键盘操作

命令名称

动作

C-M-a

beginning-of-defun

移动到当前函数的开头

C-M-e

end-of-defun

移动到当前函数的结尾

C-M-h

mark-defun

把光标放到函数的开头,把文本块标记放到函数的结尾

表12-7:FORTRAN模式中的移动命令速查表        

键盘操作

命令名称

动作

C-c C-n

fortran-next-statement

向前移动一个语句

C-c C-p

fortran-previous-statement

向前向移动一个语句

ESC C-a

beginning-of-fortran-subprogram

移动到当前子程序的开头

ESC C-e

end-of-fortran-subprogram

移动到当前子程序的结尾

ESC C-h

mark-fortran-subprogram

把光标放到子程序的开头,把文本块标记放到子程序的结尾

表12-8:FORTRAN模式中的Emacs变量

变量

默认值

说明

fortran-minimum-statement-indent

6

开始输入语句之前需要保留的缩进量(例如:缩进量为6时语句将从7列开始输入)

fortran-do-indent

3

do语句块里的语句还需要增加的缩进量

fortran-if-indent

3

if语句块里的语句还需要增加的缩进量

fortran-continuation-char

$

续行时放在第6列里的续行标记字符

fortran-continuation-indent

5

语句续行时的缩进量(比如从第6列开始再缩进5个字符的位置)

fortran-comment-line-column

6

占据一整行的注释所使用的缩进量;“ESC;”命令使用的就是这个值

fortran-comment-indent-style

‘fixed
(固定值)

这个变量的值可以取“nil”、“’fixed”或“’relative(相对值)”,注意后两个值的前面带有单引号;请参见下面的用法示例

comment-start

nil

与程序代码同在一行上的注释的前导字符;请参见下面的用法示例。如果这个变量取值为“nil”

fortran-line-unmber-indent

1

行号的最大缩进量,用来保证行号不会延伸到第5列(续行标记列)上。请参考后面对语句自动编号功能的讨论

fortran-comment-region

“c$$$”

由fortran-comment-region(“C-c;”)命令插入到每一行前面去的字符串

表12-9:FORTRAN模式下的一些缩略词汇

缩略词汇

关键字

;c

continue

;dp

double precision

;dw

do while

;f

format

;fu

function

;g

goto

;in

integer

;p

print

;rt

ENTER

;su

subroutine

表12-10:编译模式命令速查表

键盘操作

命令名称

动作

C-x ‘

next-error

移动到下一条出错信息并访问与之对应的源代码

M-n

compilation-next-error

移动到下一条出错信息

M-p

compilation-previous-error

移动到上一条出错信息

C-c C-c

compilation-goto-error

访问对应于当前出错信息的源代码

SPACE

scroll-down

下卷屏幕显示内容

DEL

scroll-up

上卷屏幕显示内容

第三版新增内容

表12-11:JDEEMakefile条目

Makefile条目

示例

说明

prefix

/usr/local

任何软件的“shared”和“info”*目录

datadir

$(prefix)/share

Emacs主目录所在的地方

locallisppath

$(datadir)/emacs/site-lisp

所有本地LISP文件应该放置的地方

ELIBDIR

$(locallisppath)/elib

ELIB LISP文件将放在这个目录

EMACS

/usr/bin/emacs

这个命令用来启动Emacs。可以是绝对路径或“emacs”能检测到你当前系统所安装的Emacs版本

表12-12:JDEE的环境变量

JDEE变量名

示例值

jde-global-classpath

/usr/local/j2se:.

jde-jdk-registry

Version = 1.4.2

Path = /usr/local/j2se

表12-13:生成代码菜单选项

键盘操作

菜单选项(M-x 命令)

动作

C-c C-v C-l(小写的“L”)

Println Wizard(jde-gen-println)

提示插入一个完整的System.out.println()方法

C-c C-v C-z

Import Class(jde-import-find-and-import)

提示输入(简单)类名,以自动导入,并在文件头添加适当的导入说明

C-c C-v i

Implement Interface(jde-wiz-implement-interface)

提示输入要实现的接口的名称。添加任何缺少的import语句(包括依赖导入,如方法参数的导入)。为每个接口中的方法提供注释框架

表12-14:JDEE调试控制

键盘操作

菜单选项

JDB命令

C-c C-a C-s

Step Into

step

C-c C-a C-n

Step Over

next

C-c C-a C-c

Continue

cont

C-c C-a C-b

Toggle Breakpoint

stop in/stop at/clear

C-c C-a C-p

Display Expression

print

C-c C-a C-d

Display Object

dump

第十三章用LISP语言对Emacs做进一步开发

表13-1:交互式函数的参数类型代码

参数类型代码

参数类型

b

一个现有编辑缓冲区的名字

e

事件(鼠标动作或功能键动作)

f

一个现有文件的名字

n

数字(整数)

s

字符串

这些代码还有相应的大写变体:

参数类型代码

参数类型

B

一个可能不存在的编辑缓冲区的名字

F

一个可能不存在的文件的名字

N

如果命令在调用时带有一个前缀参数,按前缀参数指示的情况办理;否则就是数字

S

符号

表13-2:LISP语言的基础函数

算术运算

+、 -、 *、 /(加、减、乘、除)

 

% (求余数)

 

1+ (递增)

 

1- (递减)

 

max(最大值)、 min(最小值)

比较运算

>、 <、 >=、 <=(大于、小于、不小于、不大于)

 

/= (不等于)

 

= (等于,用于数字和字符)

 

equal(等于,用于字符串和其他复杂的数据对象)

逻辑运算

and(与)、or(或)、not(非)

表13-3:ANSI方向键输出的字符代码

箭头键

字符代码

ESC O A

ESC O B

ESC O C

ESC O D

表13-4:与编辑缓冲区和文本有关的函数

函数名称

返回值或执行动作

point
mark

光标的字符位置
文本标记的字符位置

point-min
point-max

最小字符位置(通常是1)
最大字符位置(通常是编辑缓冲区的长度)

bolp
eolp
bobp
eobp

光标是否位于行首(取值为“t”或“nil”)
光标是否位于行尾
光标是否位于编辑缓冲区的开始
光标是否位于编辑缓冲区的末尾

insert

把任意个数的参数(字符串或字符)插入到编辑缓冲区光标位置之后

number-to-string
string-to-number
char-to-string
concat
substring

aref

把一个数值参数转换为一个字符串
把一个字符串转换为一个数字(整数或浮点数)
把一个字符数字转换为一个字符串
把任意个数的字符串合并到一起
给定一个字符串及两个整数索引start和end,返回从start指示的位置开始到end指示的位置前结束的子字符串。下标从0开始计算。比如说,函数“(substring “appropriate” 2 5)”将返回子字符串“pro”
数组索引函数,它可以用来从字符串里取出单个的字符;它的输入参数是一个整数,从函数返回的是一个以整数表示的字符,返回值(在大多数机器上)使用的是ASCII码。比如说,函数“aref “appropriate” 3”将返回数字“114”,即字母“r”的ASCII码

表13-5:正则表达式基本操作符

Emacs操作符

UNIX shell操作符

作用

.

?

匹配任意一个字符

.*

*

匹配任意一个字符串

[abc]

[abc]

匹配字母a、b或c

[a-z]

[a-z]

匹配任意一个小写字母

表13-6:正则表达式操作符速查表

操作符

作用

.

匹配任意一个字符

*

匹配其前面的字符或字符组出现零次或更多次的情况

+

匹配其前面的字符或字符组出现一次或更多次的情况

?

匹配其前面的字符或字符组出现零次或一多次的情况

[...]

字符的集合,参见下面的说明

\\(

开始一个字符组

\\)

结束一个字符组

\\|

匹配“\\|”前、后的子表达式

^

如果出现在正则表达式的开始,匹配文本行首或字符串的开始

$

如果出现在正则表达式的末尾,匹配文本行首或字符串的末尾

\n

在正则表达式里匹配换行符LINEFEED

\t

在正则表达式里匹配制表符TAB

\\<

匹配单词的开始

\\>

匹配单词的结尾

下面的操作符出现在字符集里时的含义:

操作符

作用

^

如果出现在字符集的开始,则该字符集将被用做不匹配字符集

- (dash)

用来设定字符范围

下面的操作符出现在regexp替换字符串里时的含义:

操作符

作用

\\n

替换第N个“\\(”和“\\)”之间的部分匹配,从左归组操作符“\\(”向右编号,编号从1开始

第十四章 Emacs编辑器和X窗口系统

表14-1:Emacs的窗格操作命令速查表

键盘操作

命令名称

动作

C-x 5 f

find-file-other-frame

访问另一窗格里的某个文件

C-x 5 d

dired-other-frame

在另一个窗格里运行Dired模式

C-x 5 0

delete-frame

删除当前窗格

C-c 5 b

switch-to-buffer-other-frame

切换到另一个窗格

第十五章 Emacs下的版本控制

表15-1:VC命令速查表

键盘操作

命令名称

动作

C-x v v

vc-next-action

前进到下一个合乎逻辑的版本控制状态

C-x v d

vc-directory

列出某个子目录下所有的已注册文件

C-x v =

vc-diff

生成一份版本差异报告

C-x v u

vc-revert-buffer

丢弃上次修订版之后的一切修改

C-x v ~

vc-version-other-window

在另外一个窗口打开指定的修订版

C-x v l

vc-print-log

显示某个文件的修改注释和修改记录

C-x v i

vc-register

把文件注册到版本控制系统

C-x v h

vc-insert-headers

给文件加上供版本控制系统使用的标题块

C-x v r

vc-retrieve-snapshot

签出一个已命名的项目快照

C-x v s

vc-create-snapshot

创建一个项目快照并给它起个名字

C-x v c

vc-cancel-version

丢弃一个已经保存起来的修订版

C-x v a

vc-update-change-log

刷新一个GNU格式的ChangLog文件

第三版新增内容

表15-2:Ediff命令速查表

键盘操作

命令名称

动作

Space或n

ediff-next-difference

移动到该文件下一个修改过的地方

Del或p

ediff-previous-difference

移动到该文件上一个修改过的地方

j

ediff-jump-to-difference

转到前缀数字参数所指定差异的地方

v或C-v

ediff-scroll-vertically

两个编辑缓冲区均向前移动一页

V或M-v

ediff-scroll-vertically

两个编辑缓冲区均向后移动一页

<

ediff-scroll-horizontally

将每个编辑缓冲区向左滚动

>

ediff-scroll-horizontally

将每个编辑缓冲区向右滚动

| (竖线)

ediff-toggle-split

切换查看缓冲区方式,是只查看当前文件,还是同时查看这两个编辑缓冲区

m

ediff-toggle-wide-display

在正常窗口与最宽窗口之间切换

a

ediff-copy-A-to-B

将编辑缓冲区A中与编辑缓冲区B不同的内容信息复制到编辑缓冲缓冲区B中

b

ediff-copy-B-to-A

将编辑缓冲区B中与编辑缓冲区A不同的内容信息复制到编辑缓冲缓冲区A中

r a或r b

ediff-restore-diff

恢复编辑缓冲区A(或B)从另一缓冲区复制之前的状态

A或B

ediff-toggle-read-only

对指定编辑缓冲区切换到(或退出)只读模式

g a或g b

ediff-jump-to-difference-at-point

在最近(当前光标位置)差异的地方与指定的编辑缓冲区进行比较,并将光标移动到有差异的地方

C-l

ediff-recenter

恢复比较显示,使所有编辑缓冲区被比较突出的地方是高亮的;如果你做别的东西,并要回去之前的光标位置的时候比较有用

!

ediff-update-diffs

重新计算并显示突出显示的区域;当手动且对编辑缓冲区有很大的修改时比较有用.

w a或w b

ediff-save-buffer

将指定的编辑缓冲区保存起来

E

ediff-documentation

打开Ediff手册

z

ediff-suspend

关闭Ediff的控制窗口,但当前会话还在活动,稍后你还可以恢复它

q

ediff-quit

关闭Ediff的控制窗口并结束当前比较的会话

第十六章在线帮助

表16-1:用来查找详细资料的帮助命令

键盘操作

命令名称

回答的问题

C-h c

describe-key-briefly

这个按键组合将运行哪个命令

C-h k

describe-key

这个按键组合将运行哪个命令?这个命令的作用是什么

C-h l

view-lossage

最近输入的100个字符是什么

C-h w

where-is

这个命令的按键绑定是什么

C-h f

describe-function

这个函数的作用是什么

C-h v

describe-variable

这个变量的含义是什么?它有哪些可取值

C-h m

describe-mode

查看当前编辑缓冲区所在编辑模式的有关资料

C-h b

describe-bindings

这个缓冲区都有哪些按键绑定

C-h s

describe-syntax

这个编辑缓冲区使用的是哪个语法表

表16-2:apropos命令

键盘操作

命令名称

回答的问题

C-h a

command-apropos

这个概念都涉及到哪些命令

(无)

apropos

这个概念都涉及到哪些函数和变量

(无)

super-apropos

哪些函数和变量的文档里提到了这个概念

表16-3:用来查找一般性资料的帮助命令

键盘操作

命令名称

动作

C-h t

help-with-tutorial

运行Emacs教程

C-h i

info

启动文档阅读器Info程序

C-h C-f

Info-goto-emacs-command-node

启动文档阅读器Info程序,并前进到指定的结点;这个帮助命令的参数是一个命令名

C-h C-k

Info-goto-emacs-key-command-node

启动文档阅读器Info程序,并前进到指定的结点;这个帮助命令的参数是对应于某个命令的按键组合

C-h n

view-emacs-news

查看关于Emacs新增和改进功能的信息

C-h F

view-emacs-FAQ

查看Emacs的常见问题答疑文件

C-h p

finder-by-keyword

沿着这个命令弹出的菜单可以查到关于安装在本系统上的Emacs LISP程序包资料

C-h c

describe-copying

阅读Emacs的“通用公共许可证”(General Public License)

C-h C-d

describe-distribution

阅读从*软件基金会订购的Emacs信息

C-h C-p

describe-project

查阅关于GNU软件开发项目的信息

C-h C-w

describe-no-warranty

查阅Emacs的免责条款

附录三Emacs变量

表C-1:备份、自动保存和版本控制(参见第二、十五章)

变量

缺省值

说明

make-backup-files

t

如果取值是“t”,则当前文件第一次存盘之前先给它创建一个备份文件

backup-by-copying

nil

如果取值为“t”,则不采用把将要保存的文件重命名为备份版本的做法,面是以复制的方法来创建备份文件。缺省的重命名办法比较有效率,而复制的办法则更安全——复制操作过程中发生的磁盘故障不会有什么损害,但在mv操作中“及时”出现磁盘故障却可能彻底毁坏备份文件a

version-control

nil

如果取值为“t”,则创建文件的编号版本作为备份(备份的文件格式是“filename~N~”。如果取值为“nil”,则只对已经有编号版本的文件这样做。如果取值为“’never”(注意前导的单引号),就不创建任何编号版本

kept-new-versions

2

Emacs在创建一个新的编号备份时将为文件保留的最新版本的个数

kept-old-versions

2

Emacs在创建一个新的编号备份时将为文件保留的最老版本的个数

delete-old-versions

nil

如果取值为“t”,则删除多余备份版本(根据上面两个变量的设置情况而需要保留的不算在内)时不需要用户确认;如果取值为“nil”,则需要经过用户确认

auto-save-default

t

如果取值为“t”,则对每个访问文件都进行自动保存

auto-save-visited-file-name

nil

如果取值为“t”,则自动保存为被访问文件而不是保存为另外一个特殊的自动保存文件

auto-save-interval

300

再次自动保存操作之间间隔的按键次数。如果取值为“0”,则关闭自动保存功能

auto-save-timeout

30

Emacs在用户没有操作情况下执行自动保存操作的时间间隔。如果取值为“nil”或“0”,则关闭此项功能

delete-auto-save-files

t

非“nil”值表示在保存“真正的”文件时删除其自动保存文件

buffer-offer-save

nil

非“nil”值表示在退出Emacs时提示用户保存当前编辑缓冲区,不论在它里面打开的是不是一个文件

vc-handled-backends

(RCS CVS SVN SCCS Arch MCVS)

VC程序包使用的版本控制系统。它的可取值是符号“’RCS”、“’CVS”、“’SVN” 、“’SCCS” 、“’Arch” 或“’MCVS”

vc-display-status

t

如果取值不为“nil”,则在状态行上给出版本号和版本控制状态

vc-keep-workfiles

t

如果取值不为“nil”,向版本控制系统注册所做的修改后,Emacs将不删除工作文件

vc-mistrust-permissions

nil

如果取值不为“nil”,则认为文件自身的属主ID和访问权限标志不代码版本控制系统对此的看法;VC将直接从版本控制系统那里获取这些信息

vc-suppress-confirm

nil

如果取值不为“nil”,则执行版本控制操作前不要求用户确认

vc-initial-comment

nil

如果取值不为“nil”,则在文件第一次向版本控制系统注册时提示输入一条注释

vc-make-backup-files

nil

如果取值不为“nil”则仍为已经用版本控制操作注册过的文件创建标准的Emacs备份版本

diff-switches

-c

如果取值不为“nil”,则根据嵌在工作文件时需 的版本控制信息来确定版本号;否则从主控文件里获取此项信息

a.因为文件备份操作的效果是创建一个新的版本,所以新文件的属主就是你。换句话说,不管原始文件的属主是不是你,只要这个变量的取值是“nil”,以重命名方式得到的备份版本的属主也将是你。因此,如果你是以根用户身份进行的登录而你所编辑的文件里的属主却不是根用户——比如uucp的配置文件,就可能引起一些问题。

表C-2:查找与替换(参见第三章)

变量

缺省值

说明

case-fold-search

t

如果取值不是“nil”,则在查找操作中不区分字母的大小写

case-replace

t

如果取值不是“nil”,则在替换时维持原来的大小写情况(对case-fold-search也不例外)

search-upper-case

'not-yanks

如果取值不是“nil”,则查找字符串中的大写字母将压制case-fold-search变量做出的设置(即强制查找操作区分字母的大小写)。符号“’not-yanks”的含义是把替换字符串中的大写字母转换为小写

search-exit-option

t

如果取值不为“nil”,则任何一个不是递增查找子命令(DEL、LINEFEED、C-q、C-r、C-s、C-w、C-y)的控制字符都将退出查找

search-slow-speed

1200

如果终端的通信速度等于或小于这个值,就将使用慢速递增查找——用一个小窗口来显示查找操作的部分结果a

search-slow-window-lines

1

慢速查找所用窗口的高度,计量单位是文本行。如果这个数字是一个负数,就表示要把这个窗口放在屏幕的顶部而不是底部

search-highlight

t

如果取值不为“nil”,则反显已经查到的部分匹配。适用于X窗口系统和其他具备反显功能的显示器

query-replace-highlight

t

如果取值不为“nil”,则在查询-替换模式中反显找到的匹配。适用于X窗口系统和其他具备反显功能的显示器

a.遗憾的是,只有当计算机认为终端的通信速度低时,这个选项才能发挥作用。如果你的终端是通过LAN、终端服务器或其他数据通信设备进行通信的,就可能出现因为计算机正在与“你的终端”进行高速通信而“忽略”“你的终端”速度慢的情况。

表C-3:屏幕显示(参见第二、四、六章)

变量

缺省值

说明

next-screen-context-lines

2

用“C-v”或“M-v”前、后卷屏时,Emacs保留的上、下文行数

scroll-step

0

当光标沿垂直方向移出当前窗口时,Emacs将前卷或后卷的文本行数。如果取值为“0”,则卷动足够多的行以便光标在卷动后出现在窗口*

hscroll-step

0

当光标沿水平方向移出当前窗口时,Emacs将左卷或右卷的文本列数。如果取值为“0”,则卷动足够多的列以便光标在卷动后出现在窗口*

tab-width

8

制表位的宽度;如果被设置,将只对当前编辑缓冲区起作用

left-margin

0

在基本模式和文本模式里按“C-j”组合键时的缩进量

standard-indent

4

当使用增加或减少缩进命令时的缩进量

truncate-lines

nil

如果取值不为“nil”,则不对超长文本进行自动换行,截断它并且用“$”表示这一行超出屏幕画面

truncate-partial-width-windows

t

如果取值不为“nil”,则把显示宽度小于显示宽度的全部窗口里的超长文本行截断(像上面那样)

window-min-height

4

窗口的最小高度(计量单位是文本行)

window-min-width

10

垂直分割窗口时,分割出来的窗口的最小宽度(计量单位是列)

split-window-keep-point

t

分割窗口时,非“nil”取值表示使两个窗口里的光标同步移动。如果取值为“nil”,则以使重新绘制屏幕画出的工作量最小为原则设置一个光标位置(这是为低速显示器准备的)

resize-minibuffer-mode

nil

如果取值不为“nil”,则允许辅助输入区增加高度以显示其中的内容

resize-minibuffer-window-exactly

t

允许辅助输入输入区的高度做动态改变,使之刚好能够显示其中的全部内容

resize-minibuffer-frame

nil

如果取值不为“nil”,则允许(X窗口系统显示器中的)辅助输入区窗格改变高度

resize-minibuffer-frame-exactly

t

允许(X窗口系统显示器中的)辅助输入区窗格的高度作动态改变,使之刚好能够显示其中的全部内容

resize-minibuffer-window-max-height

nil

resize-minibuffer-mode模式中辅助输入区所能到达的最大高度;在X窗口系统下,如果这个变量的取值小于1或不是数字,则辅助输入区的高度不能超过它所在窗格的高度

ctl-arrow

t

非“nil”取值表示把控制字符显示为“^X”样式,其中的“X”是“被控制”的字符。其他取值表示把控制字符显示为八进制数字,比如说,“C-h”将被显示为八进制“\010”

display-time-day-and-date

nil

如果取值不为“nil”,则“M-x display-time Enter”命令把星期八和日期都显示出来

line-number-mode

t

如果取值不为“nil”,则把行号显示在状态行上a

line-number-display-limit

nil

如果让Emacs显示行号,则编辑缓冲区的长度不能超过这个数字(计量单位是字符)

column-number-mode

nil

如果取值不为“nil”,则把列号显示在状态行上a

visible-bell

nil

如果取值不为“nil”,则在必要时以屏幕闪烁代替蜂鸣报警

track-eol

nil

如果取值不为“nil”,则当光标位于某文本行的行尾并做上、下移动时,它仍将移动到前、后文本的行尾;其他取值表示光标将固定在它此时所在的列位置

blink-matching-paren

t

如果取值不为“nil”,则用户输入一个需要配对出现的右括号类字符时,Emacs将快速“闪现”与之配对的左括号类字符

blink-matching-paren-distance

25600

当用户输入一个需要桎出现的右括号类字符时,向回查找其配对类字符的最大距离(计量单位是字符)

blink-matching-delay

1

闪现配对左括号类字符的持续时间

echo-keystrokes

1

如果用户输入命令时停顿了这个变量所设置的时间(计量单位是秒),则在辅助输入区里显示未完成命令的前缀(比如 “C-”)作为提示;取值为“0”时表示不提示

insert-default-directory

t

如果取值不为“nil”,则在要求用户输入文件名时,先把当前目录的路径插入到辅助输入区里

insert-video

nil

如果取值不为“nil”,则对整个显示画面进行反显(状态行呈正常显示)

mode-line-inverse-video

t

非“nil”取值表示状态行将反显

highlight-nonselected-windows

nil

如果取值不为“nil”,则把除当前窗口以外的所有里的文本块反显;适用于X窗口系统和其他具备反显功能的显示器

mouse-scroll-delay

0.25

当用户在某个窗口里按下鼠标并拖动到这个窗口边界以外的地方时,屏显画面将延迟这个变量所设置的时间(计量单位是秒)之后才发生卷动。如果取值为“0”,则表示以最快速度卷动

mouse-scroll-min-lines

1

当鼠标在窗口边界以外的地方被按下并做上、下拖动时,至少要卷动这个变量所设置的文本行数

a.可以用命令“ESC-x line-number-mode”和“ESC-x column-number-mode”切换行号、列号显示功能的开关状态。

表C-4:编辑模式(参见第二、五、六、九、十一章)

变量

缺省值

说明

major-mode

fundamental-mode

新编辑缓冲区的缺省编辑模式,除非根据文件名后缀而另有规定;设置这个变量的时候要注意在编辑模式名称的前面加上一个单引号(这个变量的值必须是一个符号)

default-major-mode

fundamental-mode

新编辑缓冲区的主模式

auto-mode-alist

(参见第十一章)

设置文件名和主编辑模式之间关联关系的列表

interpreter-mode-alist

(参见第十二章)

类似于auto-mode-alist的列表(除了像Perl和Python的解释语言)

indent-tabs-mode

t

如果取值不为“nil”,则用户使用“C-j”组合键对文本进行缩进行缩进时允许使用

find-file-run-dired

t

如果取值不为“nil”,则在访问文件时,如果用户文件名是一个目录,就运行dired

dired-kept-versions

2

在Dired里清理目录时,需要保留的文件版本个数

dired-garbage-files-regexp

"\\.\\(?:aux\\|bak\\|dvi\\|log\\|orig\\|rej\\|toc\\)\\'"

自定义在Dired里什么样的文件类型可以标记为垃圾文件

dired-listing-switches

"-al"

生成dired文件清单时传递给ls命令的选项;至少要要包含“-l”选项

dired-view-command-alist

(参见第十一章)

自定义在Dired里当某种类型的文件被打开时调用的辅助应用程序

shell-file-name

varies

shell的文件名;如果某个Emacs函数需要要调用shell——比如list-directory、dired和compile等,Emacs就人运行这个变量指定的shell。此缺省值表示将使用UNIX环境变量SHELL的值

load-path

 

这个列表变量设置的是加载LISP程序包(参见第十三章)时的搜索路径;通常就是Emacs源代码在系统的安装目录下的lisp子目录

lpr-switches

nil

定义命令行选项传给lpr

calendar-week-start-day

0

天被定义为星期的第一天。0是星期天,1是星期一等等。

picture-tab-characters

"!-~"

该字符被解释为图形模式下的制表位,如果它们出现在自己的行上

表C-5:电子邮件(参见第六章)

变量

缺省值

说明

mail-self-blind

nil

如果取值不为“nil”,则自动把你的名字加入到“BCC(密抄)”栏以保证能给自己留下一份邮件副本

rmail-mail-new-frame

nil

如果取值不为“nil”,则创建一个新窗格来编写外发邮件消息,仅适用于X窗口系统

mail-default-reply-to

nil

缺省插入到邮件消息“Reply-to:(回复地址)”栏里的字符串

mail-use-rfc822

nil

如果取值不为“nil”,则使用完全符合RFC822标准规定的地址解析器对邮件地址进行解析;这会多花上一点时间,但正确解析出复杂网络地址的概率会有所增加

mail-host-address

nil

你的机器名字;将被用来构造user-mail-address

user-mail-address

(你的邮件地址)

你的完整的电子邮件地址

rmail-primary-inbox-list

nil

保存新收(尚未阅读)邮件的文件清单。如果取值为“nil”,则使用环境变量$MAIL的值;如果$MAIL指定的路径不存在,就使用路径“/usr/spool/mail/yourname”

rmail-file-name

"~/RMAIL"

RMAIL用来保存邮件消息的文件

mail-archive-file-name

nil

用来保存所有外发邮件消息的文件名字符串;如果取值为“nil”,表示不保存外发邮件

mail-personal-alias-file

"~/.mailrc"

用来保存邮件假名的文件名;Emacs的邮件编辑模式与UNIX操作系统标准的mail和mailx程序使用的假名格式是一样的

mail-signature

nil

准备添加到外发邮件消息末尾的文本

rmail-dont-reply-to-names

nil

与这个正则表达式相匹配的名字将被排除在邮件回复地址名单之外;如果取值为“nil”,则把你本人排除在回复名单之外

rmail-displayed-headers

nil

与这个正则表达式相匹配的邮件消息标题栏将被显示出来;如果取值为“nil”,则把rmail-ignored-headers变量没有包括的标题栏都显示出来

rmail-ignored-headers

(复杂正则表达式)

不显示与这个正则表达式相匹配的邮件消息标题栏

rmail-highlighted-headers

"^From:\\|^Subject:"

反显与这个正则表达式相匹配的邮件消息标题栏;适用于X窗口系统和其他具备反显功能的显示器

rmail-delete-after-output

nil

如果取值不为“nil”,则自动删除已经被保存到某个文件里的邮件消息

mail-from-style

‘angles

Emacs为“From:(发信人)”栏生成的用户名的格式。如果取值为“nil”,则只包括电子邮件地址;如果取值为“’angles”,则把电子邮件地址用角括号括起来(例如:Dave Roberts<droberts@ed.com>”);如果取值为“’parens”,把电子邮件地址用圆括号括起来(Dave Roberts(droberts@ed.com)”)

表C-6:文本编辑(参见第二、三、六、九、十一章)

变量

缺省值

说明

sentence-end

(见第十三章)

匹配句尾的正则表达式

sentence-end-double-space

t

如果取值不为“nil”,则不把句号后面的单个空格看做句尾

paragraph-separate

"[ \t\f]*$"

匹配段落分隔行行首的正则表达式

paragraph-start

"\f\\|[ \t]*$"

匹配段落分隔行或段落第一行行首的正则表达式

page-delimiter

"^\f"

匹配分页符的正则表达式

tex-default-mode

'latex-mode

打开/创建TEX或LATEX文件时将被启动的编辑模式

tex-run-command

"tex"

在TEX模式下,用来运行TEX程序以排版某个文件的命令字符串;TEX程序将运行在一个子进程里

latex-run-command

"latex"

用来运行LATEX程序以排版某个文件的命令字符串;LATEX程序将运行在一个子进程里

slitex-run-command

"slitex"

用来运行SliTEX程序以排版某个文件的命令字符串;SliTEX程序将运行在一个子进程里

tex-dvi-print-command

"lpr -d"

在TEX模式里,用“C-c C-p”组合键打印文件时将调用的命令字符串

tex-alt-dvi-print-command

"lpr -d"

命令将.dvi文件直接发送到副打印机

tex-dvi-view-command

(if (eq window-system 'x) "xdvi" "dvi2tty * | cat -s")

用“C-c C-v”组合键查看“.dvi” TEX输出文件时将调用的命令字符串。在X窗口系统上,这个变量的值往往设置为“xdvi”

tex-offer-save

t

如果取值不为“nil”,则Emacs将在运行TEX之前提示用户保存尚未存盘的编辑缓冲区

tex-show-queue-command

"lpq"

在TEX模式里,用“C-c C-q”组合键查看打印队列时将被调用的命令字符串

tex-directory

"."

TEX存放临时文件的目录;默认为当前目录

outline-regexp

"[*\f]+"

在大纲模式里,用来匹配文本标题行的正则表达式

outline-heading-end-regexp

"\n"

在大纲模式里,用来匹配文本标题行行尾的正则表达式

selective-display-ellipses

t

如果取值为“t”,则把大纲模式里的隐藏文本显示为省略号“…”;其他取值表示什么也不显示

表C-7:自动补足功能(参见第十六章)

变量

缺省值

说明

completion-auto-help

t

如果取值不为“nil”,则在自动补足功能(辅助输入区里的TAB和ENTER键)无效或有二义时提供帮助

completion-ignored-extensions

(参见第十六章)

Emacs将不对这个列表的文件名后缀进行补足

completion-ignore-case

nil

如果取值不为“nil”,则进行自动补足时将忽略字母的大小写

表C-8:杂项

变量

缺省值

说明

kill-ring-max

60

保存在删除环里的被删除文本块数;如果没有剩余的空间,就是删除其中最“老”的那个

require-final-newline

nil

如果某个已经被保存起来的文件没有最末尾的LINEFEED字符,则这个变量取值为“nil”时不自动添加之;取值为“t”时则自动添加之;其他取值时询问用户是否想添加一个LINEFEED字符a

next-line-add-newlines

nil

如果取值不为“nil”,则在编辑缓冲区的末尾执行next-line命令(按下“C-n”组合键或向下方向键)时插入一个新行而不是报告出错

undo-limit, undo-strong-limit

20000, 30000

这两个变量共同控制Emacs分配多大的空间来支持undo命令。如果你发现自己想要撤消的比Emacs记得的多,你可能想要增加这些限制;对于现在内存的大小,它们或许要大得多

mac-command-key-is-meta

t

如果取值为“t”,则MAC命令键被用作Meta;如果取值为“nil”,则首选的键是Meta

a.注意,有些程序(比如troff)要求文件必须以LINEFEED字符结束。

第三版新增内容

表C-9:编程(参见第十二章)

变量

缺省值

说明

compile-command

"make -k"

通过Emacs的编程语言模式编译文件时所使用的默认编译命令。例如,将ant设置为默认的编译工具,应将其设为“ant-emacs”。

compilation-error-regexp-alist

(very long regular expression)

Emacs支持的所有编译器将其用作匹配错误信息的正则表达式

comment-column

32

Emacs插入注释的列。如果代码在这一列,在代码外插入注释

comment-multi-line

nil

如果取值为“t”,则继续在下一行注释。如果取值为“nil”,则在下一行开始新的注释行

c-style-alist

(参见第十二章)

设置代码的缩进风格

debug-on-error

nil

如果取值为“nil”,则当有错误发生在Lisp代码检查阶段,Emacs会进入debug模式。这是非常方便的在你测试一个新写的函数的时候,但是你可能需要先阅读调试器相关的帮助

c-macro-preprocessor

"/lib/cpp -C"

定义什么命令来调用C预处理命令,当你键入“C-c C-e”组合键的时候

stack-trace-on-error

nil

如果取值为“nil”,则当有错误发生在Lisp代码检查阶段时,Emacs会显示堆栈内容。这是非常方便的给你足够的信息,而无需学习调试器接口

=========== End