`
tansitongba
  • 浏览: 503742 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

博客地址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”,则任何一个不是递增查找子命令(DELLINEFEEDC-qC-rC-sC-wC-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的列表(除了像PerlPython的解释语言)

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-directorydiredcompile等,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操作系统标准的mailmailx程序使用的假名格式是一样的

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

打开/创建TEXLATEX文件时将被启动的编辑模式

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”,则在自动补足功能(辅助输入区里的TABENTER键)无效或有二义时提供帮助

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,并由本人翻译整理而得。
分享到:
评论

相关推荐

    GNU Emacs Pocket Reference

    第五章探讨了GNU Emacs如何成为一个完整的工作环境。这里介绍了如何利用GNU Emacs内置的计算器、日历、计划工具等功能,以及如何通过外部程序集成来增强其功能,使其成为一个强大的个人生产力工具。 ### 邮件和新闻...

    learning GNU emacs

    在学习GNU Emacs时,通常需要通过一系列的教程和手册来逐步掌握其丰富的命令和功能。GNU Emacs提供了大量预设的快捷键,用户可以通过这些快捷键快速完成各种复杂的编辑任务。对于初学者而言,可能首先需要了解如何...

    Writing GNU Emacs Extensions

    emacs 教程 Writing GNU Emacs Extensions pdf

    Learning GNU Emacs(EN) -- 3rd Edition.pdf

    《学习GNU Emacs(第三版)》是一本深入探讨Emacs编辑器使用与定制的书籍,由Debra Cameron、James Elliott和Marc Loy共同撰写,由O'Reilly出版社于2004年12月出版,ISBN号为0-596-00648-9,全书共计534页。...

    学习GNU Emacs

    《学习GNU Emacs》第二版作为一本权威指南,不仅提供了对GNU Emacs的详细介绍,还附有速查卡,为读者提供了书中介绍的所有功能的快速参考。本书适合任何水平的Emacs用户,无论是初学者还是希望提升自己Emacs使用技能...

    GNU Emacs Lisp编程入门(文本org)

    Programming in Emacs Lisp: An ...本书是一本GNU Emacs Lisp的编程入门,全书循序渐进地介绍了GNU Emacs Lisp编程的各种基础知识和方面,文笔流畅、讲解透彻,对GNU Emacs用户提高对它的理解和运用帮助极大。

    GNU Emacs for windows

    GNU Emacs for Windows是一款专为Windows操作系统设计的开源文本编辑器,它是GNU项目的一部分,由自由软件基金会维护。Emacs在编程社区中广受欢迎,因其强大的功能、高度可定制性和丰富的扩展性而闻名。 Emacs的...

    GNU Emacs Manual

    GNU Emacs 手册详细介绍了 Emacs 编辑器的使用方法,包括各种命令、功能、配置技巧等。它是学习和掌握 Emacs 功能的强大工具之一。手册不仅覆盖了基本编辑操作,还深入探讨了定制 Emacs 设置、使用 Lisp 编程语言...

    GNU Emacs Manual mobi

    这是GNU Emacs Manual的mobi版,Kindle用户大爱,不过Manual就是Manual不是什么实例教程。

    GNU Emacs Lisp编程入门

    GNU Emacs Lisp编程入门 GNU Emacs是一款著名的开源文本编辑器,以其高度可定制性和扩展性而闻名。Emacs的内核由C语言编写,但它的强大之处在于其内置的Lisp方言——Emacs Lisp(简称Elisp)。Elisp使得用户能够...

    学习GNU EMACS(中文、第二版)(无缺页、带书签)

    【自用完整书签系列】整理了所有页面,无缺页,并加入完整书签。

    Learn_GNU_Emacs.pdf.tar.gz

    Learn_GNU_Emacs.pdf 清晰资源 Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。 EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman...

    Learn GNU Emacs第二版

    Learn GNU Emacs第二版.pdf

    GNU_Emacs GNU_Emacs

    GNU_Emacs orelly出版 学习emacs的经典著作

    GnuEmacs

    在《GnuEmacs》教程的第三版中,读者将获得深入学习这一编辑器的宝贵知识。 Emacs不仅是文本处理的利器,它还支持多种编程语言,并且拥有海量的插件和扩展包。这意味着,无论你的工作需求是什么,Emacs很可能都已经...

    GNU Emacs Lisp 编程入门

    GNU Emacs Lisp 编程入门是一本非常专业的编程书籍,它详细地介绍了如何使用GNU Emacs Lisp这种编程语言来编写程序。GNU Emacs Lisp是一种用于GNU Emacs编辑器的编程语言,它是一种功能强大且灵活的编程工具,广泛...

Global site tag (gtag.js) - Google Analytics