emacs - GNU 项目 Emacs 编辑器
概要
emacs [ 命令行选项 ] [ 文件 ... ]
描述
GNU Emacs 是由原始 (PDP-10) Emacs 的作者 Richard Stallman 编写的 Emacs 版本。GNU Emacs 的用户功能涵盖了其他所有编辑器所具备的功能,并且由于其编辑命令是用 Lisp 编写的,因此可以轻松扩展。
GNU Emacs 的主要文档是 GNU Emacs 手册,您可以使用 Info 读取,无论是从 Emacs 内部还是作为独立程序。请查阅该手册以获取完整和最新的文档。此 man 页面仅在有人志愿更新时才会更新。
Emacs 具有广泛的交互式帮助功能,但此功能假定您知道如何操作 Emacs 窗口和缓冲区。按下 CTRL-h 或 F1 可以进入帮助功能。帮助教程 (CTRL-h t) 启动一个交互式教程,以快速教导初学者 Emacs 的基本知识。帮助查找 (CTRL-h a) 帮助您找到一个与给定模式匹配的名称的命令,帮助按键 (CTRL-h k) 描述给定的按键序列,帮助函数 (CTRL-h f) 描述给定的 Lisp 函数。
GNU Emacs 的许多特殊软件包处理邮件阅读 (RMail) 和发送 (Mail)、大纲编辑 (Outline)、编译 (Compile)、在 Emacs 窗口中运行子 shell (Shell)、运行 Lisp 解释器 (Lisp-Interaction-Mode)、自动心理治疗 (Doctor) 等。
Emacs 选项
以下选项通常很有用:
文件 编辑文件。
--file=文件, --find-file=文件, --visit=文件
与直接将文件指定为参数相同。
+数字
跳转到由数字指定的行(“+”符号和数字之间不要有空格)。这仅适用于下一个指定的文件。
+行:列
跳转到指定的行和列。
--chdir=目录
切换到目录。
-q, --no-init-file
不加载初始化文件。
-nl, --no-shared-memory
不使用共享内存。
--no-site-file
不加载站点范围的启动文件。
-nsl, --no-site-lisp
不将站点 lisp 目录添加到 load-path。
--no-desktop
不加载已保存的桌面。
-Q, --quick
类似于 "-q --no-site-file --no-splash"。此外,避免处理 X 资源。
--no-splash
在启动期间不显示启动画面。
--debug-init
在处理用户初始化文件 ~/.emacs 时启用 Emacs Lisp 调试器。
这对于调试初始化文件中的问题非常有用。
-u 用户, --user=用户
加载用户的初始化文件而不是您自己的初始化文件。
--init-directory=目录
以将 user-emacs-directory 设置为目录的方式启动 emacs。
-t 文件,--terminal=文件
使用指定的 文件 作为终端,而不是使用 stdin/stdout。 这必须是命令行中的第一个参数。
--daemon[=名称],--bg-daemon[=名称]
以守护进程模式启动 Emacs,启用 Emacs 服务器并断开与终端的连接。 然后,您可以使用 emacsclient 命令(参见 emacsclient(1))连接到服务器(可选地指定名称)。
--fg-daemon[=名称]
类似于 "--bg-daemon",但不要断开与终端的连接。
--version
显示 Emacs 版本信息并退出。
--help 显示帮助并退出。
以下选项是 Lisp 导向的(这些选项将按照它们出现的顺序进行处理):
-f 函数,--funcall=函数
执行 Lisp 函数 函数。
-l 文件,--load=文件
加载 文件 中的 Lisp 代码。
--eval=表达式,--execute=表达式
评估 Lisp 表达式 表达式。
以下选项在以批处理模式运行 Emacs 时很有用:
--batch 以批处理模式编辑。 编辑器会将消息发送到 stderr。 您必须使用 -l 和 -f 选项来指定要执行的文件和要调用的函数。
--script 文件
将 文件 作为 Emacs Lisp 脚本运行。
--insert=文件
将 文件 的内容插入到当前缓冲区中。
--kill 在批处理模式下退出 Emacs。
-L 目录,--directory=目录
将 目录 添加到 Emacs 搜索 Lisp 文件的目录列表中。
在 X 下使用 Emacs
Emacs 已经过调整,可以与 X Window System 很好地协同工作。 如果您在 X 窗口下运行 Emacs,它将创建一个自己的 X 窗口来显示。 您可能希望将编辑器作为后台进程启动,以便您可以继续使用原始窗口。
Emacs 可以使用以下 X 开关启动:
--name=名称
指定应分配给初始 Emacs 窗口的名称。 这控制着 X 资源的查找以及窗口标题。
--no-x-resources
不加载 X 资源。
-T 名称,--title=名称
为初始 X 窗口指定标题。
-r,-rv,--reverse-video
以反向视频模式显示 Emacs 窗口。
-fn 字体,--font=字体
将 Emacs 窗口的字体设置为 字体 指定的字体。 您可以在 /usr/lib/X11/fonts 目录中找到各种 X 字体。 请注意,Emacs 仅接受固定宽度字体。 在 X11 Release 4 字体命名约定中,字体名称的第十一位字段中具有“m”或“c”值的任何字体都是固定宽度字体。 此外,名称格式为 widthxheight 的字体通常是固定宽度字体,字体 fixed 也是。 有关更多信息,请参见 xlsfonts(1)。
当您指定字体时,请务必在开关和字体名称之间留一个空格。
--xrm=资源
设置其他 X 资源。
--color,--color=模式
覆盖字符终端的颜色模式;模式默认为“auto”,也可以是“never”、“auto”、“always”或模式名称,例如“ansi8”。
-bw 像素,--border-width=像素
将 Emacs 窗口的边框宽度设置为 像素 指定的像素数。 默认值为窗口每侧一个像素。
-ib pixels, --internal-border=pixels
将窗口的内部边框宽度设置为指定的像素数。默认情况下,窗口的每个侧面都有 1 个像素的填充。
-g geometry, --geometry=geometry
设置 Emacs 窗口的宽度、高度和位置,如 geometry 中指定。
几何图形的规范采用标准的 X 格式;有关更多信息,请参见 X(7)。
宽度和高度以字符为单位指定;GUI 框架的默认宽度为 80,高度在 35 到 40 之间,具体取决于操作系统和窗口管理器。
有关窗口大小如何与选择或取消选择工具栏、选项卡栏和菜单栏交互,请参阅 Emacs 手册的“窗口大小和位置选项”部分。
-lsp pixels, --line-spacing=pixels
在各行之间添加额外的间距。
-vb, --vertical-scroll-bars
启用垂直滚动条。
-fh, --fullheight
使第一个框架的高度与屏幕相同。
-fs, --fullscreen
使第一个框架全屏显示。
-fw, --fullwidth
使第一个框架的宽度与屏幕相同。
-mm, --maximized
最大化第一个框架,类似于“-fw -fh”。
-fg color, --foreground-color=color
在彩色显示器上,设置文本的颜色。
使用命令 M-x list-colors-display 以获取有效颜色名称列表。
-bg color, --background-color=color
在彩色显示器上,设置窗口背景的颜色。
-bd color, --border-color=color
在彩色显示器上,设置窗口边框的颜色。
-cr color, --cursor-color=color
在彩色显示器上,设置窗口文本光标的颜色。
-ms color, --mouse-color=color
在彩色显示器上,设置窗口鼠标光标的颜色。
-d displayname, --display=displayname
在指定的显示器上创建 Emacs 窗口。必须是命令行中指定的第一个选项。
-nbi, --no-bitmap-icon
不使用 GNU 图像作为 Emacs 图标。
--iconic
以图标化状态启动 Emacs。
-nbc, --no-blinking-cursor
禁用闪烁的光标。
--parent-id=xid
设置父窗口。
-nw, --no-window-system
告诉 Emacs 不要创建图形框架。如果您在 xterm(1) 窗口中以这种方式调用 Emacs,则会在该窗口中进行显示。
-D, --basic-display
此选项禁用许多显示功能;用于调试 Emacs。
您可以在 .Xresources 文件中设置 Emacs 窗口的 X 默认值(请参见 xrdb(1))。 使用以下格式:
emacs.keyword:value
其中 value 指定关键字的默认值。Emacs 允许您为以下关键字设置默认值:
background (class Background)
对于彩色显示器,设置窗口的背景颜色。
bitmapIcon (class BitmapIcon)
如果 bitmapIcon 的值为 on,则窗口将图标化为“厨房水槽”。
borderColor (class BorderColor)
对于彩色显示器,设置窗口边框的颜色。
borderWidth (class BorderWidth)
设置窗口的边框宽度(以像素为单位)。
cursorColor (class Foreground)
对于彩色显示器,设置窗口文本光标的颜色。
cursorBlink (class CursorBlink)
指定是否让光标闪烁。默认值为开启。使用 off 或 false 可以关闭光标闪烁。
font (class Font)
设置窗口的文本字体。
foreground (class Foreground)
对于彩色显示器,设置窗口的文本颜色。
fullscreen (class Fullscreen)
所需的全屏大小。该值可以是 fullboth、maximized、fullwidth 或 fullheight,它们分别对应于命令行选项“-fs”、“-mm”、“-fw”和“-fh”。请注意,这仅适用于初始帧。
geometry (class Geometry)
设置 Emacs 窗口的几何形状(如上所述)。
iconName (class Title)
设置 Emacs 窗口图标的图标名称。
internalBorder (class BorderWidth)
设置窗口的内部边框宽度,单位为像素。
lineSpacing (class LineSpacing)
行之间的额外间距(行距),单位为像素。
menuBar (class MenuBar)
如果为 on,则为框架提供菜单栏;如果为 off,则不提供菜单栏。请参阅 Emacs 手册的“Lucid Resources”和“Motif Resources”部分,了解如何控制菜单栏的外观(如果存在)。
minibuffer (class Minibuffer)
如果为 none,则不在此框架中创建小缓冲区。它将使用单独的小缓冲区框架。
paneFont (class Font)
在非工具包版本的 Emacs 中,菜单面板标题的字体名称。
pointerColor (class Foreground)
对于彩色显示器,设置窗口鼠标光标的颜色。
privateColormap (class PrivateColormap)
如果为 on,则在“默认视觉”为伪彩色类并且 Emacs 正在使用它时,使用私有颜色映射。
reverseVideo (class ReverseVideo)
如果 reverseVideo 的值设置为 on,则窗口将以反向视频模式显示。
screenGamma (class ScreenGamma)
颜色的伽玛校正,等效于帧参数“screen-gamma”。
scrollBarWidth (class ScrollBarWidth)
滚动条的宽度(以像素为单位),等效于帧参数“scroll-bar-width”。
selectionFont (class SelectionFont)
在非工具包版本的 Emacs 中,弹出菜单项的字体名称。对于工具包版本,请参阅 Emacs 手册的“Lucid Resources”和“Motif Resources”部分。
selectionTimeout (class SelectionTimeout)
等待选择回复的毫秒数。值为 0 表示等待尽可能长的时间。
synchronous (class Synchronous)
如果为 on,则以同步模式运行 Emacs。同步模式对于调试 X 问题很有用。
title (class Title)
设置 Emacs 窗口的标题。
toolBar (class ToolBar)
为工具栏保留的行数。
tabBar (class TabBar)
为选项卡栏保留的行数。
useXIM (class UseXIM)
如果为 false 或 off,则关闭 X 输入方法 (XIM) 的使用。
verticalScrollBars (class ScrollBars)
如果为 on,则为框架提供滚动条;如果为 off,则禁止滚动条。
visualClass (class VisualClass)
指定 X 应该使用的“视觉效果”。这告诉 X 如何处理颜色。该值应以 TrueColor、PseudoColor、DirectColor、StaticColor、GrayScale 和 StaticGray 中的一个开头,后跟 -depth,其中 depth 是颜色平面的数量。
手册
您可以从开发 GNU 软件的自由软件基金会订购 GNU Emacs 手册的印刷版。请访问在线商店 [https://shop.fsf.org/]。 您的本地管理员也可能有副本。与所有来自自由软件基金会的软件和出版物一样,每个人都允许复制和分发 Emacs 手册。手册的 Texinfo 源代码也包含在 Emacs 源代码发行版中。
文件
/usr/local/share/info — 供 Info 文档浏览器使用的文件。Emacs 参考手册的完整文本以方便的树形结构形式包含在内。这包括 Emacs Lisp 参考手册,对于任何希望使用 Emacs Lisp 扩展语言编写程序的人来说都非常有用,以及《Emacs Lisp 编程入门》。
/usr/local/share/emacs/$VERSION/lisp — 定义大多数编辑命令的 Lisp 源代码文件和编译文件。其中一些是预加载的;另一些是在使用时从此目录自动加载。
/usr/local/libexec/emacs/$VERSION/$ARCH — 各种与 GNU Emacs 一起使用的程序。
/usr/local/share/emacs/$VERSION/etc — 各种信息文件。
/usr/local/share/emacs/$VERSION/etc/DOC.* — 包含 GNU Emacs 的 Lisp 原始函数和预加载 Lisp 函数的文档字符串。它们存储在这里,以减少 Emacs 本身的大小。
错误
有一个邮件列表,_,用于报告 Emacs 错误和修复。但在将其报告为错误之前,请确保它确实是一个错误,而不是误解或故意的功能。我们建议您阅读 Emacs 手册中的“报告错误”部分,以获取有关如何以及何时报告错误的提示。此外,请在您发送的每个错误报告中包含您正在运行的 Emacs 版本号。如果可以隔离错误,则更有可能对其进行修复,因此,以易于重现的方式报告它们符合您的利益。
不要期望对错误报告获得个人回复。报告错误的目的是在下一个版本中尽可能地修复它们,以便所有人受益。如需个人帮助,请访问 [https://www.fsf.org/resources/service/] 上的服务目录,以获取提供帮助的人员列表。
请不要向此邮件列表发送任何内容,而只发送错误报告。有关其他 Emacs 列表,请参阅 [https://savannah.gnu.org/mail/?group=emacs]。
无限制
Emacs 是免费的;任何人都可以根据 GNU 通用公共许可证(其副本附带每个 Emacs 副本,并且也出现在参考手册中)的条款将 Emacs 的副本再分发给任何人。
Emacs 的副本有时可能会以与 Unix 系统分发一起打包的形式收到,但它绝不包含在任何涵盖这些系统的许可证的范围内。这种包含违反了允许分发的条款。事实上,GNU 通用公共许可证的主要目的是禁止任何人附加任何其他限制来再分发 Emacs。
理查德·斯托尔曼鼓励你改进和扩展 Emacs,并敦促你将你的扩展贡献到 GNU 库中。最终 GNU(GNU's Not Unix)将成为 Unix 的完整替代品。每个人都可以自由使用、复制、研究和修改 GNU 系统。
参见
emacsclient(1), etags(1), X(7), xlsfonts(1), xterm(1), xrdb(1)
作者
Emacs 由理查德·斯托尔曼和自由软件基金会编写。有关详细的署名和致谢,请参阅 GNU Emacs 手册。
复制
版权所有 1995-2025 自由软件基金会。
允许制作和分发本文档的逐字副本,前提是所有副本上都保留版权声明和本许可声明。
允许在满足逐字复制条件的条件下复制和分发本文档的修改版本,前提是整个生成的衍生作品都以与此相同的许可声明条款进行分发。
允许将本文档翻译成另一种语言并进行复制和分发,前提是满足上述修改版本的条件,但本许可声明可以用自由软件基金会批准的翻译形式说明。
在法律允许的范围内,本文档不提供任何形式的担保。