版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
附录三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<[email protected]>”);如果取值为“’parens”,把电子邮件地址用圆括号括起来(Dave Roberts([email protected])”) |
表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会显示堆栈内容。这是非常方便的给你足够的信息,而无需学习调试器接口 |
备注:本文大部分内容摘自学习GNU Emacs(第二版),文中紫色部分摘自Learning GNU Emacs, 3rd Edition,并由本人翻译整理而得。