Emacs基本的按键与命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emacs基本的按键与命令相关的知识,希望对你有一定的参考价值。
参考技术AC- :表示键盘上的 Ctrl 键
M- :表示键盘上的 Alt 键
S- :表示键盘上的 Shift 键
DEL :表示键盘上的 Backspace 键,注意,不是 Delete 键
RET :表示键盘上的 Enter 键
SPC :表示键盘上的 Space 键
ESC :表示键盘上的 Esc 键
TAB :表示键盘上的 Tab 键
C-x C-f :打开一个文件,或者创建一个不存在的文件
M-x find-file :作用同上
C-x k :关闭一个 buffer ,作用等于关闭已经打开的文件
C-x C-s :保存文件内容,即将修改的文件内容写入磁盘
M-x save-buffer :作用同上
C-x C-w :将当前文档保存为另一个文件,即另存为
M-x write-file :作用同上
C-x b :切换文件,即切换缓冲区 buffer
说明:实际上在 Emacs 中,文件与 buffer 是不同的实体,文件一般指的是磁盘上的数据体,而 buffer 是 Emacs 中作为文件修改临时缓存的缓冲区,注意区别。
Emacs具有一个被称为 ido 的模式,全称为 interactively do things ,在 ido 模式下,可以更加方便地选择列表元素,相比使用Tab进行自动补全更加便利。
M-x ido-mode :使能或者禁止 ido 模式
可以在 Emacs 的启动配置中添加以下语句,以默认打开 ido 模式:
(setq ido-enable-flex-matching t) (setq ido-everywhere t) (ido-mode 1)
C-x C-b :列出buffer列表
M-x list-buffers :作用同上
在 Emacs 中,还存在功能更灵活的 buffer 管理模式,被称为 ibuffer 。可以通过以下命令进入 ibuffer :
M-x ibuffer :进入 ibuffer 管理模式
一般我们可以在Emacs的配置文件中进行ibuffer的命令键绑定:
(global-set-key (kbd "C-x C-b") \'ibuffer)
ibuffer 的过滤命令包括:
/m :以 major mode 方式添加过滤
/n :以 buffer 名称的方式添加过滤
/c :以 buffer 内容的方式添加过滤
/f :以文件名称的方式添加过滤
/> :以 buffer 大小的方式添加过滤
/< :以 buffer 大小的方式添加过滤
// :删除当前所有有效的过滤
ibuffer 的过滤组的命令包括:
/g :创建一个过滤组
TAB :移动到下一个过滤组
M-p :移动到上一个过滤组
/\\ :删除当前所有的过滤组
/S :将当前过滤组保存为一个名称
/R :恢复之前保存的过滤组
/X :删除之前保存的过滤组
ibuffer的排序命令包括:
s a :以字母顺序排序
s f :以文件名称顺序排序
s v :以上次访问时间排序
s s :以 buffer 大小排序
s m :以 major mode 排序
s i :反序当前的 buffer 顺序
可以在文件的任何地方设置书签,后续可快速跳转到书签处,书签相关的命令为:
C-x r m :在当前光标处设置书签,需输入书签名称
M-x bookmark-set :作用同上
C-x r b :跳转到某个书签处
M-x bookmark-jump :作用同上
C-x r l :列出当前所有的书签列表
M-x bookmark-bmenu-list :作用同上
在书签列表状态下,可以使用以下的命令:
RET :打开书签标识的区域
s :将当前书签列表保存至文件中
r :修改光标所在的书签的名称
d :将书签打上删除标识
x :删除已打标识的书签
u :取消已经打标识的书签
主要的光标移动操作命令包括:
C-f :向前移动一个字符, f 表示为 forward
C-b :向后移动一个字符, b 表示 backward
C-p :向上移动一行, p 表示 previous
C-n :向下移动一行, n 表示 next
C-a :移动至行首
C-e :移动至行尾
M-f :向前移动一个单词
M-b :向后移动一个单词
C-v :向前滚动一个屏幕的内容
M-v :向后滚动一个屏幕的内容
M-a :移动至句首
M-e :移动至句尾
C-l :将光标重定位至屏幕中间一行,光标所在内容位置不变
M-r :将光标重定位至屏幕的顶部,中部,底部,光标所在内容位置不变
M-< :移动至 buffer 的开头处,注意,按键 < 可能需要 Shift 键
M-> :移动至 buffer 的结尾处,注意,按键 > 可能需要 Shift 键
M-g c n :移动至第 n 个字符
M-g g n :移动至第 n 行(高于23.2版本的 Emacs 有效)
C-M-f :向前移动一个整的表达式,比如,光标可从函数开头的左 处移动到函数结尾的 处,按键绑定的命令是 forward-sexp
C-M-b :向后移动一个整的表达式,比如,光标可从函数结尾的右 处移动到函数开头的 处,按键绑定的命令是 backward-sexp
C-M-k :剪切一个整的表达式,按键绑定的命令是 kill-sexp
C-M-@ :选择一个整的表达式,按键绑定的命令是 mark-sexp
在 Emacs 中, kill 的意思就是 cut ,即剪切,剪切操作的命令包括:
C-d :剪切当前光标所在的字符
C-S-DEL :剪切整个行, DEL 就是键盘上的 Backspace 键
M-d :剪切光标当前位置至词结尾的内容
M-DEL :剪切光标当前位置至词开头的内容
M-\\ :剪切光标所在的所有空白符
M-SPC :剪切光标所在的所有空白符,除了光标所在的位置
C-k :剪切光标当前位置至行尾
M-k :剪切当前的整个句
C-y :粘贴操作
一般在 Emacs 中,默认的选择操作,需要使用 C-SPC 按键,但是通常在 Win 中,此按键与系统默认的切换输入法的按键冲突,如果无法修改系统的按键,则可以修改 C-SPC 按键,在 Emacs 的启动脚本中添加以下的语句:
(global-unset-key (kbd "C-SPC")) (global-set-key (kbd "M-SPC") \'set-mark-command)
以下以 M-SPC 作为默认的选择命令:
M-SPC :以光标所在位置为起点,移动光标,所选区域被高亮选中
C-w :剪切高亮选中的区域
M-w :复制高亮选中的区域
C-y :粘贴高亮选中的区域
C-/ :撤销操作
C-x u :作用同上
Emacs 具有多种查找方式。
增量查找 :通过按键 C-s 来执行增量查找,反复执行 C-s ,可逐个定位各个匹配点。
C-s :执行增量查找,输入查找字符后,重复执行 C-s 可逐个定位匹配点,按键绑定的命令是 isearch-forward
C-r :执行增量查找,是从文档的后端往前查找,重复执行 C-r 可逐个定位匹配点,按键绑定的命令是 isearch-backward
C-u C-s :按照正则表达式执行增量查找
Occur查找 :使用增量查找,若匹配点比较多,只能通过反复执行按键,逐个越过各个匹配点,才能定位到我们需要的匹配点,为了解决这个问题, Emacs 提供了 Occur 查找,执行后,可在 Occur 缓冲区列出一个匹配点的列表,可更加直观地查看所有的匹配点。
M-s o :执行Occur查找
M-g n :定位到下一个匹配点
M-g p :定位到上一个匹配点
在 Occur 缓存区,可以执行的命令主要包括:
C-n :移动至下一行
C-p :移动至上一行
o :跳转至匹配点,光标也移动至匹配点
C-o :跳转至匹配点,但是光标还停留在 Occur 缓冲区
e :编辑当前的 Occur 缓冲区
C-c C-c :退出编辑 Occur 缓冲区
M-% :执行查找替换,该命令需要两个输入,即需要被替换的字符串,与替换后的字符串。输入字符串后执行 RET , Emacs 会询问是否确定执行替换操作,若输入 ! ,则执行所有匹配点的替换,若输入 yes ,则只执行当前光标所在的匹配点的替换。注意,输入 % 可能需要执行 Shift 键
C-x 2 :将当前窗口切为上下两个窗口,该按键绑定了命令 split-window-below
C-x 3 :将当前窗口切为左右两个窗口,该按键绑定了命令 split-window-right
C-x o :在多个窗口之间切换,注意,按键中的是小写字母 o ,该按键绑定了命令 other-window
C-x 1 :关闭其他的窗口,只保留当前光标所在的窗口
Emacs 具有一个内置的 Dired 模块,是 Directory Editor 的简称,顾名思义,该模块是对目录进行管理编辑的模块。
Dired 模块的主要命令包括:
C-x d :选择一个目录,并在那个目录上启动 Dired
C-x C-f :选择当前目录下的某个目录,并在那个目录上启动 Dired
在 Dired 目录下可以执行:
n :向下移动一个
p :向上移动一个
C-s :使用增量查找,查询 Dired 入口
C-x C-f :创建一个新的文件
f :打开光标所在的文件
e :作用同上
RET :作用同上
o :在另一个窗口上打开光标所在的文件
C-o :在另一个窗口上打开光标所在的文件,但是光标不会移动到新的窗口
v :以只读的方式打开文件
^ :在新的Dired Buffer中打开父目录
m :标识文件或者目录入口
%m :标识那些名称匹配正则表达式的文件
%g :标识那些内容匹配正则表达式的文件
C :拷贝文件(或者是 S-c ),拷贝的是当前光标所在的文件,或者已经标识的文件
R :移动文件(或者是 S-r ),移动的是当前光标所在的文件,或者已经标识的文件
H :创建一个硬链接(或者是 S-h )
S :创建一个符号链接(或者是 S-s )
M :改变文件的权限位(或者是 S-m ),改变的文件是当前光标所在的文件,或者已经标识的文件
d :将文件打上删除的标识
u :删除文件已经打上的标识
x :确认并执行删除已经打上删除标识的文件
~ :给所有的 backup 文件打上标识
= :比较文件
GNU Emacs命令速查表
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 |
find-file |
查找文件并在一个新缓冲区里打开它 |
C-x C-v |
find-alternate-file |
读入另外一个文件替换掉用“C-x C-f”读入的文件 |
C-xi |
insert-file |
把文件插入到光标的当前位置 |
C-x C-s |
save-buffer |
保存文件 |
C-x C-w |
write-file |
把缓冲区内容写入一个文件 |
C-x C-c |
save-buffers-kill-emacs |
退出Emacs |
C-h |
help-command |
进入Emacs的在线帮助系统 |
C-h f |
describe-function |
给出某个给定命令名的在线帮助信息 |
C-h k |
describe-key |
给出某个给定击键序列的在线帮助信息 |
C-ht |
help-with-tutorial |
启动Emacs教程 |
C-hi |
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 |
yank |
恢复被删除的文本 |
C-w或SHIFT-DELETE |
kill-region |
删除文本块 |
(无) |
kill-paragraph |
删除光标后面的段落 |
(无) |
backward-kill-paragraph |
删除光标前面的段落 |
表2-3:文本块操作命令速查表
键盘操作 |
命令名称 |
动作 |
[email protected]或 C- Space |
set-mark-command |
标记文本块的开始(或结束)位置 |
C-xC-x |
exchange-point-and-mark |
互换插入点和文本标记的位置 |
C-w或SHIFT-DELETE |
kill-region |
删除文本块 |
C-y或SHIFT-INSERT |
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 |
yank-pop |
在用过“C-y”命令以后粘贴更早删除的文本 |
表2-4:段落重排命令速查表
键盘操作 |
命令名称 |
动作 |
ESC q |
fill-paragraph |
重排段落 |
(无) |
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 |
表2-8:命令的中止和撤销
键盘操作 |
命令名称 |
动作 |
C-g |
keyboard-quit |
放弃当前命令 |
C-x u |
advertised-undo[a] |
撤销上一次编辑(可以重复使用) |
C-_或C-/ |
undo |
撤销上一次编辑 |
(无) |
revert-buffer |
把缓冲区恢复到上次对文件进行存盘(或者自动存盘)时的状态 |
[a]advertised-undo和undo之间并没有真正的不同。它们的工作情况都是一样的。
第三章 查找和替换操作
表3-1:递增查找命令速查表
键盘操作 |
命令名称 |
动作 |
C-s |
isearch-forward |
向前(朝文件尾方向)开始递增查找操作;后面是查找字符串。另外,(向前)查找下一个出现查找字符串的地方 |
C-s |
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 |
向前(朝文件尾方向)开始一次非递增查找操作 |
C-s |
向前查找下一个 |
C-r Entersearchstring Enter |
向前(朝文件头方向)开始一次非递增查找操作 |
C-r |
向后查找下一个 |
表3-3:查询-替换操作中的响应
键盘操作 |
操作 |
M-% |
开始查询-替换操作 |
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 |
re-search-forward |
向前(朝文件尾方向)查找一个正则表达式 |
C-M-r Enter |
re-search-backward |
向后(朝文件头方向)查找一个正则表达式 |
C-M-s Enter |
isearch-forward-regexp |
向前(朝文件尾方向)递增查找一个正则表达式 |
C-M-r Enter |
isearch-backward-regexp |
向后(朝文件头方向)递增查找一个正则表达式 |
C-M-% Enter |
query-replace-regexp |
查询-替换一个与正则表达式 |
(无) |
replace-regexp |
无条件地对一个正则表达式做全局性替换(谨慎使用) |
表3-6:Ispell命令速查表
键盘操作 |
命令名称 |
动作 |
M-$ Enter |
ispell-word |
检查光标位置上的单词或者光标后面的单词 |
(无) |
ispell-region |
检查文本块里的单词 |
(无) |
ispell-buffer |
检查缓冲区里的单词 |
(无) |
ispell-message |
检查电子邮件正文里的单词 |
(无) |
ispell-comments-and-strings |
检查程序里的注释和字符串 |
C-u M-$ |
ispell-continue |
让Ispell重新开始继续执行;这个命令只有在运行过Ispell并用“C-g”组合键暂停过它的执行时才有效 |
(无) |
ispell-kill-ispell |
杀死(即结束)Ispell进程 |
M-Tab |
ispell-complete-word |
在文本模式下,自动补足当前单词 |
(无) |
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 |
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 |
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 |
在其他缓冲区里选择一个编辑缓冲区 |
(无) |
compare-windows |
对两个编辑缓冲区的内容进行比较,并显示它们之间的第一个不同之处 |
表4-2:编辑缓冲区操作命令速查表
键盘操作 |
命令名称 |
动作 |
C-x b |
switch-to-buffer |
移动到指定的编辑缓冲区 |
C-x |
next-buffer |
移动到编辑缓冲区清单里的下一个编辑缓冲区 |
C-x |
previous-buffer |
移动到编辑缓冲区清单里的上一个编辑缓冲区 |
C-x C-b |
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 |
bookmark-set |
在当前光标位置处设置一个书签 |
C-x r b |
bookmark-jump |
跳转到书签指示位置 |
(无) |
bookmark-rename |
重新命名一个书签 |
(无) |
bookmark-delete |
删除一个书签 |
(无) |
bookmark-save |
把书签全都保存到默认的书签 |
C-x r l |
bookmark-menu-list |
进入“*Bookmark List*”编辑缓冲区 |
(无) |
bookmark-insert |
插入与给定书签关联着的文件的完整内容 |
(无) |
bookmark-write |
把书签全都保存到一个指定的文件里 |
(无) |
bookmark-load |
从指定文件里加载书签 |
(无) |
bookmark-insert-location |
插入路径到给定的书签在当前的光标位置 |
表4-6:窗格命令速查表
键盘操作 |
命令名称 |
动作 |
C-x 5 o |
other-frame |
移动到其他窗格 |
C-x 5 0 |
delete-frame |
删除当前窗格 |
C-x 5 2 |
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 |
comint-interrupt-subjob |
中断当前作业;相当于UNIX的shell中的“C-c”组合键 |
C-d |
comint-delchar-or-maybe-eof |
如果是在编辑缓冲区的末尾,送出EOF字符;如果是其他位置,删除一个字符 |
C-c C-d |
comint-send-eof |
送出EOF字符 |
C-c C-u |
comint-kill-input |
删除当前行;相当于UNIX的shell中的“C-u”组合键 |
C-c C-z |
comint-stop-subjob |
对非X用户,挂起或者停止一个作业;相当于UNIX的shell中的“C-z”组合键 |
M-p |
comint-previous-input |
检索此前的上一个命令(可以重复执行以找回更早的命令) |
M-n |
comint-next-input |
检索此后的下一个命令(可以重复执行以找回更近的命令) |
Enter |
comint-send-input |
送出输入在当前行上的命令 |
Tab |
comint-dynamic-complete |
自动补足当前命令、文件名或者变量名 |
C-c C-o |
comint-kill-output |
删除最后一条命令的输出 |
C-c C-r |
comint-show-output |
把输出内容的第一行移到窗口的顶部 |
C-c C-e |
comint-show-maximum-output |
把输出内容的最后一行移动窗口的底部 |
C-c C-p |
comint-previous-prompt |
移动到前一条命令 |
C-c C-n |
comint-next-prompt |
移动到后一条命令 |
表5-2:Dired命令速查表
键盘操作 |
命令名称 |
动作 |
C-x d |
dired |
启动Dired |
A |
dired-do-search |
对加有待操作标记的文件做一个正则表达式搜索;第一次匹配时停下,按“M-”键发现下一个匹配。 |
B |
dired-do-byte-compile |
字节编译文件 |
C |
dired-do-copy |
复制文件 |
d |
dired-flag-file-deletion |
给文件加上待删除标记 |
D |
dired-do-delete |
以问答方式立刻删除某个文件 |
e |
dired-find-file |
编辑文件 |
f |
dired-advertised-find-file |
查找文件(以对它进行编辑) |
g |
revert-buffer |
从磁盘上重新读入目录 |
G |
dired-do-chgrp |
改变文件的组权限 |
h |
describe-mode |
为Dired显示描述性的帮助文本。 |
H |
dired-do-hardlink |
为该文件创建硬链接,Emacs要求你为硬链接命名(并不是所有的操作系统都支持硬链接) |
i |
dired-maybe-insert-subdir |
将这个子目录清单添加到当前的Dired缓冲;如果它已经存在,只是移动到它 |
k |
dired-do-kill-lines |
从画面上删除光标所在的那一行 |
L |
dired-do-load |
加载文件 |
m或* m |
dired-mark |
给文件加上“*”待操作标记 |
M |
dired-do-chmod |
对当前文件使用chmod命令 |
n |
dired-next-line |
移动到下一行 |
o |
dired-find-file-other-window |
在另一个窗口里查找文件,但不移动到新窗口 |
C-o |
dired-display-file |
在另外一个窗口里查找文件,移动到新窗口 |
O |
dired-do-chown |
改变文件的所有权 |
p |
dired-previous-line |
上移一行 |
P |
dired-do-print |
打印文件 |
q |
quit-window |
退出Dired |
Q |
dired-do-query-replace |
对加有待操作标记的文件做查找-替换字符串操作 |
R |
dired-do-rename |
重新命名文件 |
S |
dired-do-symlink |
为该文件创建符号链接,Emacs要求你为符号链接命名 |
s |
dired-sort-toggle-or-edit |
对Dired编辑缓冲区里的文件清单按日期或按文件名重新排序(在两者之间切换) |
t |
dired-toggle-marks |
对文件和目录切换待操作标记;按t标记所有没有待操作标记过的文件和目录,再次按t恢复原有待操作标记 |
u |
dired-unmark |
去掉待操作标记 |
v |
dired-view-file |
查看文件内容(只读) |
w |
dired-copy-filename-as-kill |
将文件名复制到剪切环;如果多个文件被标记,将复制所有被标记文件的名字到剪切环 |
x |
dired-do-flagged-delete |
删除加有待删除标记“D”的文件 |
y |
dired-show-file-type |
使用file命令显示文件的类型信息 |
Z |
dired-do-compress |
对文件进行压缩或者解压缩操作 |
~ |
dired-flag-backup-files |
给备份文件加上待删除标记;去掉这些标记的命令是“C-u ~” |
# |
dired-flag-auto-save-files |
给自动保存文件加上待删除标记;去掉这些标记的命令是“C-u #” |
& |
dired-flag-garbage-files |
给文件加上待删除标记“garbage” |
. |
dired-clean-directory |
给带编号的备份文件(如果有的话)加上待删除标记 |
= |
dired-diff |
把这个文件与(文本标记处的)另一个文件进行比较 |
M-= |
dired-backup-diff |
将这个文件与它的备份文件进行比较 |
!或 X |
dired-do-shell-command |
以问答方式执行shell命令;命令的操作对象是加有待操作标记的文件 |
+ |
dired-create-directory |
创建一个目录 |
> |
dired-next-dirline |
移动到下一个目录 |
< |
dired-prev-dirline |
移动到上一个目录 |
^ |
dired-up-directory |
在一个新的Dired缓冲区中查找父目录 |
$ |
dired-hide-subdir |
隐藏或者显示当前目录或者子目录 |
M-$ |
dired-hide-all |
隐藏所有子目录,只留下他们的名字;重复命令来显示 |
C-M-n |
dired-next-subdir |
移动到下一个子目录(如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区) |
C-M-p |
dired-prev-subdir |
移动到上一个子目录(如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区) |
C-M-u |
dired-tree-up |
如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区,,将在当前缓冲区移动到父目录 |
C-M-d |
dired-tree-down |
如果你已经使用“i”命令将子目录清单添加到当前的Dired缓冲区,将在当前缓冲区移动到第一个子目录 |
* c |
dired-change-marks |
改变指定文件的标记,例如,从*(一般标记)到D(待删除标记) |
* !或M-Del |
dired-unmark-all-files |
从所有文件中删除所有标记 |
* * |
dired-mark-executables |
给可执行文件加上标记;去掉这些标记的命令是“C-u *” |
* / |
dired-mark-directories |
给目录加上标记;去掉这些标记的命令是“C-u /” |
* @ |
dired-mark-symlinks |
给符号链接加上标记;去掉这些标记的命令是“C-u * @” |
M-} |
dired-next-marked-file |
移动到下一个有“*”或 “D”标记的文件 |
M-{ |
dired-prev-marked-file |
移动到上一个有“*”或 “D”标记的文件 |
% d |
dired-flag-files-regexp |
为匹配正则表达式的文件添加待删除标记 |
% g |
dired-mark-files-containing-regexp |
为其内容匹配正则表达式的文件添加标记 |
% l |
dired-downcase |
小写标记的文件 |
% R |
dired-do-rename-regexp |
用“filenames”重新命名匹配正则表达式的文件 |
% u |
dired-upcase |
大写标记的文件 |
表5-3:打印命令速查表
键盘操作 |
动作 |
M-x print-buffer |
打印编辑缓冲区(类似于UNIX中的“pr | lpr”命令) |
M-x print-region |
打印文本块(类似于UNIX中的“pr | lpr”命令) |
M-x lpr-buffer |
打印编辑缓冲区,但不带页码(类似于UNIX的“lpr”命令) |
M-x lpr-region |
打印文本块,但不带页码(类似于UNIX的“lpr”命令) |
P |
在Dired里,把默认的打印命令放到辅助输入缓冲区里;按回车执行它之前还可以对它进行修改 |
M-x ps-print-buffer-with-faces |
打印带有文本属性的编辑缓冲区 |
M-x ps-print-region-with-faces |
打印带有文本属性的文本块 |
表5-4:日历移动命令速查表
键盘操作 |
命令名称 |
动作 |
(无) |
calendar |
显示日历 |
. |
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 ] |
calendar-forward-year |
向前移动一年 |
C-x [ |
calendar-backward-year |
向后移动一年 |
C-a |
calendar-beginning-of-week |
移动到本星期的开始 |
C-e |
calendar-end-of-week |
移动到本星期的结束 |
M-a |
calendar-beginning-of-month |
移动到本月的开始 |
M-e |
calendar-end-of-month |
移动到本月的结束 |
M-< |
calendar-beginning-of-year |
移动到本年的开始 |
M-> |
calendar-end-of-year |
移动到本年的结束 |
g d |
calendar-goto-date |
移动到指定日期 |
o |
calendar-other-month |
把指定月份放在日历画面中间 |
C-x < |
scroll-calendar-left |
前卷一个月 |
C-x > |
scroll-calendar-right |
后卷一个月 |
C-v |
scroll-calendar-left-three-months |
前卷三个月 |
M-v |
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 |
list-calendar-holidays |
显示日历画面期间的假期 |
h |
calendar-cursor-holidays |
在辅助缓冲区中显示今天的节假日(如果有节假日) |
x |
mark-calendar-holidays |
突出显示节假日,节假日将被显示另外一种字体、另外一种颜色或者在它们旁边加上一个星号(*) |
u |
calendar-unmark |
去掉用来突出节假日的标记(与x命令的功能正好相反) |
i w |
insert-weekly-diary-entry |
根据此时是星期几添加一项以一星期为循环周期的日记条目 |
i y |
insert-yearly-diary-entry |
添加一项以一年为循环周期的日记条目 |
i d |
insert-diary-entry |
为指定日期添加一项日记条目 |
i m |
insert-monthly-diary-entry |
添加一项以一个月为循环周期的日记条目 |
i c |
insert-cyclic-diary-entry |
添加一项以n天为循环周期的日记条目 |
i a |
insert-anniversary-diary-entry |
添加一项以一年为循环周期的日记条目 |
i b |
insert-block-diary-entry |
添加一项日期段条目 |
m |
mark-diary-entries |
突出显示日记条目,它们被显示为另外一种字体、另外一种颜色或者在它们旁边加上一个加号(+) |
d |
view-diary-entries |
显示当前日期的日记条目 |
s |
show-all-diary-entries |
显示“.diary”文件的内容 |
M-= |
calendar-count-days-region |
计算某个时间段里的天数 |
M |
calendar-phases-of-moon |
显示3个月期间的月相情况 |
S |
calendar-sunrise-sunset |
根据给定的经度和纬度,显示当前日期的日出、日落时间 |
C-Space或[email protected] |
calendar-set-mark |
以时间日期为对象设置(时间)块标记,而不是按普通情况设置文本标记 |
第六章电子邮件和Usenet新闻
表6-1:邮件发送命令速查表
键盘操作 |
命令名称 |
动作 |
C-x m |
|
打开“*mail*”编辑缓冲区,以邮件模板为基础填写有关资料和邮件内容 |
C-x 4 m |
mail-other-window |
在一个新窗口打开“*mail*”编辑缓冲区 |
C-x 5 m |
mail-other-frame |
在一个新窗格里打开“*mail*”编辑缓冲区 |
C-c C-f C-t |
mail-to |
移动到“To:”栏 |
C-c C-f C-c |
mail-cc |
移动到“CC:”栏(如果没有就创建之) |
C-c C-f C-b |
mail-bcc |
移动到“BCC:”栏(如果没有就创建之) |
C-c C-f C-f |
mai-fcc |
提示输入一个文件名,然后向这个文件发送一份邮件副本 |
C-c C-f C-r |
mai-reply-to |
指定一个地址,而这封邮件的回复都将被发到这个地址上去 |
C-c C-f C-s |
mai-subject |
移动到信头中的主题栏 |
C-c C-t |
mai-text |
移动到可以开始输入信体的地方去 |
C-c C-w |
mail-signature |
插入“.signature”文件的内容 |
C-c C-c |
mail-send-and-exit |
发送邮件并退出“*mail*”编辑缓冲区 |
C-c C-s |
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 |
rmail-next-undeleted-message |
移动到下一条消息 |
p |
rmail-previous-undeleted-message |
移动到上一条消息 |
< |
rmail-first-message |
移动到第一条消息 |
> |
rmail-last-message |
移动到最后一条消息 |
j |
rmail-show-message |
如果这个命令的前面有一个数字“n”,跳到第n条消息 |
表6-4:邮件删除命令速查表
键盘操作 |
命令名称 |
动作 |
d Delete→Delete |
rmail-delete-forward |
给邮件加上待删除标记,然后移动到下一个 |
C-d |
rmail-delete-backward |
给邮件加上待删除标记,然后移动到上一个 |
M-n |
rmail-next-message |
移动到下一条消息;不管它是否已经加上待删除标记 |
M-p |
rmail-previous -message |
移动到上一条消息;不管它是否已经加上待删除标记 |
u |
rmail-undelete- previous -message |
去掉邮件信息上的待删除标记 |
x |
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 |
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 |
在光标位置处分拆文本行,并把它的后半截缩进到光标所在的那一列 |
(无) |
increase-left-margin |
增加编辑缓冲区左缩进层次,默认为四个字符 |
(无) |
decrease-left-margin |
减少编辑缓冲区左缩进层次,默认为四个字符 |
(无) |
decrease-right-margin |
减少编辑缓冲区右缩进层次,默认为四个字符 |
(无) |
increase-right-margin |
增加编辑缓冲区右缩进层次,默认为四个字符 |
C-x . |
set-fill-prefix |
把左边界到光标位置之间的字符串设置为加在段落每一行之前的缩进前导字符串;在第一列输入这个命令,表示此后将不再插入缩进前导字符串 |
表8-3:居中命令速查表
键盘操作 |
命令名称 |
动作 |
M-s |
center-line |
把光标所在的文本行居中 |
M-S |
center-paragraph |
把光标所在的段落居中 |
(无) |
center-region |
把当前定义的文本块居中 |
(无) |
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 |
outline-next-visible-heading |
移动到下一个标题 |
C-c C-p |
outline-previous-visible-heading |
移动到上一个标题 |
C-c C-f |
outline-forward-same-level |
移动到下一个同级的标题 |
C-c C-b |
outline-backward-same-level |
移动到上一个同级的标题 |
C-c C-u |
outline-up-heading |
移动到上一级别的标题层次 |
C-c C-t |
hide-body |
隐藏全体正文行 |
C-c C-a |
show-all |
显示被隐藏起来的所有东西 |
C-c C-q |
hide-sublevels |
只显示第一级标题 |
C-c C-o |
hide-other |
隐藏当前子树以外的所有文字和标题。显示第一级别标题 |
C-c @ |
outline-mark-subtree |
标记当前标题和下级所有文字和标题 |
C-c C-^ |
outline-promote |
提升当前标题一个级别 |
C-c C-v |
outline-demote |
降低当前标题一个级别 |
C-c C-d |
hide-subtree |
隐藏某标题的全体下级小标题及其相关正文 |
C-c C-c |
hide-entry |
隐藏某标题的正文部分(不包括它的下级小标题和那些小标题的正文部分) |
C-c C-l |
hide-leaves |
隐藏某标题的正文部分,同时隐藏它全体下级小标题的正文部分(只留下标题) |
C-c C-s |
show-subtree |
显示某给定标题的下级的下级小标题和它的相关文本 |
C-c C-e |
show-entry |
显示某给定标题的相关文本(不包括它的下级小标题及它们的正文部分) |
C-c C-k |
show-branches |
显示某标题的正文及全体下级小标题的全部正文 |
C-c Tab |
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-select-op-flood-fill |
选择填充操作 |
C-c C-a C-k |
artist-select-op-cut-rectangle |
在某一区域周围绘制一个矩形,然后剪切之 |
C-c C-a M-w |
artist-select-op-copy-rectangle |
在某一区域周围绘制一个矩形,然后复制之 |
C-c C-a C-y |
artist-select-op-paste |
粘贴你所复制的,不管是不是使用鼠标操作的 |
C-c C-a v |
artist-select-op-vaporize-line |
清除所选择的一条线(文字行,而不是文件中的一行) |
C-c C-a C-d |
artist-select-op-erase-char |
选择擦除操作(鼠标将是清除器) |
C-c C-a S |
artist-select-op-spray-can |
选择油漆桶操作 |
C-c C-a e |
artist-select-op-ellipse |
绘制椭圆 |
C-c C-a p |
artist-select-op-poly-line |
绘制折线 |
C-c C-a r |
artist-select-op-rectangle |
绘制矩形 |
C-c C-a l |
artist-select-op-line |
绘制直线 |
C-c C-a C-r |
artist-toggle-rubber-banding |
如果开启(默认),当拉伸图形时显示形状;否则(没有开启),将显示端点 |
C-c C-a C-l |
artist-select-line-char |
选择画线时所使用的字符(默认是“-”) |
C-c C-a C-f |
artist-select-fill-char |
选择字符来填充形状(默认是空格) |
第九章用Emacs设置排版标记
表9-1:各种标记模式下的注释
如果在下列模式里敲入“M-;” |
Emacs将插入 |
HTML模式 |
<!-- --> |
HTML helper模式 |
<!-- --> |
SGML模式 |
<!-- --> |
nxml模式 |
<!-- --> |
psgml模式 |
<!-- --> |
LaTeX模式 |
%% (在空行上) % (在有内容的行上) |
表9-2:nroff配对模式支持的配对命令组
起始标记 |
收尾标记 |
|
.(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-region |
检查文本块有无语法错误 |
C-c C-f |
tex-file |
保存当前文件,然后对其进行TEX或LATEX排版处理 |
C-c C-b |
tex-buffer |
对编辑缓冲区进行TEX或LATEX排版处理 |
C-c C-l |
tex-recenter-output-buffer |
把排版信息画面显示在屏幕上,(至少)会显示最后一条出错信息 |
C-c C-k |
tex-kill-job |
中断TEX或LATEX排版处理工作 |
C-c C-p |
tex-print |
打印TEX或LATEX的排版输出 |
C-c C-q |
tex-show-print-queue |
查看打印队列 |
C-c C-e |
latex-close-block |
只能用在LATEX模式里,自动插入某个命令组中的第二个命令 |
(无) |
tex-close-latex-block |
提供关闭元素命令对 |
C-c Tab` |
tex-bibtex-file |
对编辑缓冲区进行BIBTEX排版处理(一个自动创建目录索引的系统) |
C-c C-v |
tex-view |
查看DVI输出 |
(无) |
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 |
browse-url-of-file |
在默认浏览器中显示该文件 |
C-c C-z u |
browse-url-default-browser |
在默认浏览器中打开光标位置处超链接的URL地址 |
C-c M-h 1 |
tempo-template-html-header-1 |
插入<h1></h1>标签 |
C C-c M-h 2 |
tempo-template-html-header-2 |
插入<h2></h2>标签 |
C-c M-h 3 |
tempo-template-html-header-3 |
插入<h3></h3>标签 |
C-c M-h 4 |
tempo-template-html-header-4 |
插入<h4></h4>标签 |
C-c M-h 5 |
tempo-template-html-header-5 |
插入<h5></h5>标签 |
C-c M-h 6 |
tempo-template-html-header-6 |
插入<h6></h6>标签 |
M-Enter |
tempo-template-html-paragraph |
插入<p></p>标签 |
C-c C-a l |
tempo-template-html-hyperlink |
插入<a href=""></a>标签 |
C-c C-a n |
tempo-template-html-link-target |
插入<a name=""></a>标签 |
C-c Enter |
tempo-template-html-line-break |
插入一个换行符“<br>” |
C-c = |
tempo-template-html-horizontal-line |
插入一个换行符水平标尺“<hr>” |
C-c C-z t |
html-helper-insert-timestamp-delimiter-at-point |
插入时间戳分隔符 |
C-c C-h t |
tempo-template-html-title |
插入<title></title>标签 |
C-c Tab a |
tempo-template-html-image |
插入<img src="">标签 |
C-c C-l u |
tempo-template-html-unordered-list |
插入<ul><li></li></ul>标签 |
C-c C-l o |
tempo-template-html-ordered-list |
插入<ol><li></li></ol>标签 |
C-c C-l t |
tempo-template-html-definition-item |
插入<dt><dd>标签 |
C-c C-l l |
tempo-template-html-item |
插入<li></li>标签 |
C-c C-l d |
tempo-template-html-definition-list |
插入<dl><dt><dd></dl>标签 |
C-c C-l m |
tempo-template-html-menu-list |
插入<menu><li></li></menu>标签 |
C-c C-l r |
tempo-template-html-directorylist |
插入<dir><li></li></dir>标签 |
C-c C-l i |
html-helper-smart-insert-item |
插入<li></li>标签 |
C-c C-f z |
tempo-template-html-reset-form |
插入<input type="RESET">标签 |
C-c C-f b |
tempo-template-html-button |
插入<input type="BUTTON">标签 |
C-c C-f m |
tempo-template-html- submit-form |
插入<input type="SUBMIT">标签 |
C-c C-f s |
tempo-template-html-selections |
插入<select><option></select>标签 |
C-c C-f o |
tempo-template-html-option |
插入<option>标签 |
C-c C-f v |
tempo-template-html-option-with-value |
插入<option value="">标签 |
C-c C-f i |
tempo-template-html-input-image-field |
插入<input type="IMAGE">标签 |
C-c C-f r |
tempo-template-html-input-radiobutton |
插入<input type="RADIO">标签 |
C-c C-f c |
tempo-template-html-checkbox |
插入<input type="CHECKBOX">标签 |
C-c C-f p |
tempo-template-html-text-area |
插入<textarea></textarea>标签 |
C-c C-f f |
tempo-template-html-form |
插入<form></form>标签 |
C-c C-f t ` |
tempo-template-html-text-field |
插入<input type="TEXT">标签 |
C-c C-f h |
tempo-template-html-hidden-field |
插入<input type="HIDDEN">标签 |
C-c M-l s |
tempo-template-html-strong |
插入<strong></strong>标签 |
C-c M-l e |
tempo-template-html-emphasized |
插入<em></em>标签 |
C-c M-l b |
tempo-template-html-blockquote |
插入<blockquote></blockquote>标签 |
C-c M-l p |
tempo-template-html-preformatted |
插入<pre></pre>标签 |
C-c C-p s |
tempo-template-html-strikethru |
插入<s></s>标签 |
C-c C-p f |
tempo-template-html-fixed |
插入<tt></tt>标签 |
C-c C-p u |
tempo-template-html-underline |
插入<u></u>标签 |
C-c C-p i |
tempo-template-html-italic |
插入<i></i>标签 |
C-c C-p b |
tempo-template-html-bold |
插入<b></b>标签 |
C-c C-p c |
tempo-template-html-center |
插入<center></center>标签 |
C-c C-p l |
tempo-template-html-spanning-class |
插入<span class=""></span>标签 |
C-c C-p 5 |
tempo-template-html-spanning-style |
插入<span style=""></span>标签 |
C-c C-s a |
tempo-template-html-address |
插入<address></address>标签 |
C-c M-l d |
tempo-template-html-definition |
插入<dfn></dfn>标签 |
C-c M-l v |
tempo-template-html-variable |
插入<var></var>标签 |
C-c M-l k |
tempo-template-html-keyboard |
插入<kbd></kbd>标签 |
C-c M-l r |
tempo-template-html-citation |
插入<cite></cite>标签 |
C-c M-l x |
tempo-template-html-sample |
插入<samp></samp>标签 |
C-c M-l c |
tempo-template-html-code |
插入<code></code>标签 |
C-c C-h b |
tempo-template-html-base |
插入<base href="">标签 |
C-c C-h l |
tempo-template-html-link |
插入<link href="">标签 |
C-c C-h m |
tempo-template-html-meta-name |
插入<meta content="">标签 |
C-c C-h n |
tempo-template-html-nextid |
插入<nextid>标签 |
C-c C-h i |
tempo-template-html-isindex |
插入<isindex>标签 |
C-c C-h B |
tempo-template-html-body |
插入<body></body>标签 |
C-c C-h H |
tempo-template-html-head |
插入<head></head>标签 |
C-c C-t t |
tempo-template-html-table |
插入<table></table>标签 |
C-c C-t p |
tempo-template-html-html-table-caption |
插入<caption></caption>标签 |
C-c C-t d |
tempo-template-html-table-data |
插入<TD></TD>标签 |
C-c C-t h |
tempo-template-html-table-header |
插入<TH></TH>标签 |
C-c C-t r |
tempo-template-html-table-row |
插入<TR></TR>标签 |
第三版新增内容
表9-6:HTMLHelper模式插入字符实体速查表
|
|
|
网页上呈现 |
C-c > |
tempo-template-html-greater-than |
> |
> |
C-c < |
tempo-template-html-less-than |
< |
< |
C-c & |
tempo-template-html-ampersand |
& |
& |
C-c u |
tempo-template-html-u`-(&ù) |
ù |
ù |
C-c i |
tempo-template-html-i`-(&ì) |
ì |
ì |
C-c o |
tempo-template-html-o`-(&ò) |
ò |
ò |
C-c E |
tempo-template-html-e‘-(&é) |
é |
é |
C-c e |
tempo-template-html-e`-(&è) |
è |
è |
C-c a |
tempo-template-html-a`-(&à) |
à |
à |
C-c SPC |
tempo-template-html-nonbreaking-space |
|
nonbreaking space |
C-c - |
tempo-template-html-soft-hyphen |
­ |
soft hyphen |
C-c @ |
tempo-template-html-copyright |
© |
? |
C-c $ |
tempo-template-html-registered |
® |
? |
C-c " |
tempo-template-html-quotation-mark |
" |
" |
C-c # |
tempo-template-html-ascii-code |
Enter the 3-digit code for the desired character |
specified character |
表9-7:字符编码对照表
C-x 8前缀 按键操作 |
|
|
|
C-x 8 " |
" |
´ |
′ |
C-x 8 ‘ a |
‘ a |
á |
á |
C-x 8 ‘A |
‘A |
Á |
á |
C-x 8 ‘ e |
‘ e |
é |
é |
C-x 8 ‘ E |
‘ E |
É |
é |
C-x 8 ‘ i |
‘ i |
í |
í |
C-x 8 ‘ I |
‘ I |
Í |
í |
C-x 8 ‘ o |
‘ o |
ó |
ó |
C-x 8 ‘ O |
‘ O |
Ó |
ó |
C-x 8 ‘ u |
‘ u |
ú |
ú |
C-x 8 ‘ U |
‘ U |
Ú |
ú |
C-x 8 ‘ y |
‘ y |
ý |
|
C-x 8 ‘ Y |
‘ Y |
Ý |
|
C-x 8 ` a |
` a |
à |
à |
C-x 8 ` A |
` A |
À |
à |
C-x 8 ` e |
` e |
è |
è |
C-x 8 ` E |
` E |
È |
è |
C-x 8 ` i |
` i |
ì |
ì |
C-x 8 ` I |
` I |
Ì |
ì |
C-x 8 ` o |
` o |
ò |
ò |
C-x 8 ` O |
` O |
Ò |
ò |
C-x 8 ` u |
` u |
ù |
ù |
C-x 8 ` U |
` U |
Ù |
|
C-x 8 ^ a |
^ a |
â |
a |
C-x 8 ^ A |
^ A |
 |
? |
C-x 8 ^ e |
^ e |
ê |
ê |
C-x 8 ^ E |
^ E |
Ê |
ê |
C-x 8 ^ i |
^ i |
î |
? |
C-x 8 ^ I |
^ I |
Î |
? |
C-x 8 ^ o |
^ o |
ô |
? |
C-x 8 ^ O |
^ O |
Ô |
? |
C-x 8 ^ u |
^ u |
û |
? |
C-x 8 ^ U |
^ U |
Û |
? |
C-x 8 " " |
" " |
¨ |
¨ |
C-x 8 " a |
" a |
ä |
? |
C-x 8 " A |
" A |
Ä |
? |
C-x 8 " e |
" e |
ë |
? |
C-x 8 " E |
" E |
Ë |
? |
C-x 8 " i |
" i |
ï |
? |
C-x 8 " I |
" I |
Ï |
? |
C-x 8 " o |
" o |
ö |
? |
C-x 8 " O |
" O |
Ö |
? |
C-x 8 " u |
" u |
ü |
ü |
C-x 8 " U |
" U |
Ü |
ü |
C-x 8 " s |
" s |
ß |
? |
C-x 8 " y |
" y |
ÿ |
? |
C-x 8 " Y |
" Y |
Ÿ |
|
C-x 8 ~ ~ |
¬ |
? |
|
C-x 8 ~ a |
~ a |
ã |
? |
C-x 8 ~ A |
~ A |
à |
? |
C-x 8 ~ d |
~ d |
ð |
|
C-x 8 ~ D |
~ D |
Ð |
|
C-x 8 ~ n |
~ n |
ñ |
? |
C-x 8 ~ N |
~ N |
Ñ |
? |
C-x 8 ~ o |
~ o |
õ |
? |
C-x 8 ~ O |
~ O |
Õ |
? |
C-x 8 ~ t |
~ t |
þ |
|
C-x 8 ~ T |
~ T |
Þ |
|
C-x 8 / / |
÷ |
÷ |
|
C-x 8 o |
/ / |
˚ |
° |
C-x 8 / a |
/ a |
å |
? |
C-x 8 / A |
/ A |
Å |
? |
C-x 8 / e |
/ e |
æ |
? |
C-x 8 / E |
/ E |
Æ |
? |
C-x 8 / o |
/ o |
ø |
? |
C-x 8 / O |
/ O |
Ø |
? |
C-x 8 , , |
~~ |
¸ |
? |
C-x 8 , c |
~c |
ç |
? |
C-x 8 , C |
~C |
Ç |
? |
表9-8:标点符号编码对照表
C-x 8前缀 按键操作 |
符号实体 |
网页上呈现字符 |
C-x 8 1 / 2 |
½ |
1/2 |
C-x 8 1 / 4 |
¼ |
1/4 |
C-x 8 3 / 4 |
¾ |
3/4 |
C-x 8 SPC |
|
nonbreaking space |
C-x8 ! |
¡ |
? |
C-x 8 $ |
¤ |
¤ |
C-x 8 + |
± |
± |
C-x 8 - |
­ |
soft hyphen |
C-x8 . |
· |
· |
C-x 8 < |
« |
? |
C-x 8 = |
¯ |
ˉ |
C-x 8 > |
» |
? |
C-x8 ? |
¿ |
? |
C-x 8 | |
¦ |
| |
C-x 8 c |
¢ |
¢ |
C-x 8 C |
© |
? |
C-x 8 L |
£ |
£ |
C-x 8 P |
¶ |
? |
C-x 8 R |
® |
? |
C-x 8 S |
§ |
§ |
C-x 8 u |
µ |
μ |
C-x 8 x |
× |
x |
C-x 8 Y |
¥ |
¥ |
C-x 8 ^ 1 |
¹ |
1 |
C-x 8 ^ 2 |
² |
2 |
C-x 8 ^ 3 |
³ |
3 |
C-x 8 _ a |
ª |
a |
C-x 8 _ o |
º |
o |
表9-9:HTML模式插入字符实体速查表
|
|
|
网页上呈现 |
C-c > |
tempo-template-html-greater-than |
> |
> |
C-c < |
tempo-template-html-less-than |
< |
< |
C-c & |
tempo-template-html-ampersand |
& |
& |
C-c u |
tempo-template-html-u`-(&ù) |
ù |
ù |
C-c i |
tempo-template-html-i`-(&ì) |
ì |
ì |
C-c o |
tempo-template-html-o`-(&ò) |
ò |
ò |
C-c E |
tempo-template-html-e‘-(&é) |
é |
é |
C-c e |
tempo-template-html-e`-(&è) |
è |
è |
C-c a |
tempo-template-html-a`-(&à) |
à |
à |
C-c SPC |
tempo-template-html-nonbreaking-space |
|
nonbreaking space |
C-c - |
tempo-template-html-soft-hyphen |
­ |
soft hyphen |
C-c @ |
tempo-template-html-copyright |
© |
? |
C-c $ |
tempo-template-html-registered |
® |
? |
C-c " |
tempo-template-html-quotation-mark |
" |
" |
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命令
|
第十一章对Emacs进行定制
表11-1:特殊字符的表达记号
特殊字符表达记号 |
定义情况 |
C-x |
C-x (其中“x”是任意字符) |
C-[或e |
Esc;转义符 |
M |
Meta |
C-j或 |
Newline;转行符 |
C-m或 |
Enter;回车符 |
C-i或 |
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-表达式的位置 |
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 |
|
;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 |
|
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 |
光标的字符位置 |
point-min |
最小字符位置(通常是1) |
bolp |
光标是否位于行首(取值为“t”或“nil”) |
insert |
把任意个数的参数(字符串或字符)插入到编辑缓冲区光标位置之后 |
number-to-string |
把一个数值参数转换为一个字符串 |
表13-5:正则表达式基本操作符
|
表13-6:正则表达式操作符速查表
操作符 |
作用 |
. |
匹配任意一个字符 |
* |
匹配其前面的字符或字符组出现零次或更多次的情况 |
+ |
匹配其前面的字符或字符组出现一次或更多次的情况 |
? |
匹配其前面的字符或字符组出现零次或一多次的情况 |
[...] |
字符的集合,参见下面的说明 |
\( |
开始一个字符组 |
\) |
结束一个字符组 |
\| |
匹配“\|”前、后的子表达式 |
^ |
如果出现在正则表达式的开始,匹配文本行首或字符串的开始 |
$ |
如果出现在正则表达式的末尾,匹配文本行首或字符串的末尾 |
|
在正则表达式里匹配换行符LINEFEED |
|
在正则表达式里匹配制表符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”将被显示为八进制“ 10” |
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<[email protected]>”);如果取值为“’parens”,把电子邮件地址用圆括号括起来(Dave Roberts([email protected])”) |
表C-6:文本编辑(参见第二、三、六、九、十一章)
变量 |
缺省值 |
说明 |
sentence-end |
(见第十三章) |
匹配句尾的正则表达式 |
sentence-end-double-space |
t |
如果取值不为“nil”,则不把句号后面的单个空格看做句尾 |
paragraph-separate |
"[ f]*$" |
匹配段落分隔行行首的正则表达式 |
paragraph-start |
"f\|[ ]*$" |
匹配段落分隔行或段落第一行行首的正则表达式 |
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 |
" " |
在大纲模式里,用来匹配文本标题行行尾的正则表达式 |
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会显示堆栈内容。这是非常方便的给你足够的信息,而无需学习调试器接口 |