我在 Mac OS 10.9 上运行 Emacs 24.3.1,通过 MacPorts 从源代码在我的机器上编译。(为了更好地衡量,我还尝试了来自 emacsformacosx.com 的 24.3 二进制文件。)我可以使用-r
命令行中的开关让 Emacs 以反向视频运行,但是向我的 .emacs 文件添加自定义(setq inverse-video t)
或通过 Emacs 自定义菜单是没有效果。有谁知道另一种在不从命令行运行 Emacs 的情况下反转视频的方法?
6 回答
问题是在 GUI 初始化之后读取通常的Emacs 初始化文件
(~/.emacs
或) ,因此它对反向视频没有影响。您必须坚持使用命令行选项or或.~/.emacs.d/init.el
--reverse-video
-rv
-r
但是,Emacs 28.1(尚未发布)添加了一个早期的init 文件,该文件在 GUI 初始化之前‘~/.emacs.d/early-init.el
加载,如果你把
(add-to-list 'default-frame-alist '(reverse . t))
(setq initial-frame-alist default-frame-alist)
进入它,您的 Emacs 将以反向视频开始。
我把它放在我的 .emacs 文件中:(在 x86 linux 上运行 GNU Emacs 21.1.3)
(set-background-color "black")
(set-foreground-color "white")
编辑/更新:第一帧工作得很好。但是会打开一个带有白色背景和黑色文本的新框架。对过去分别设置框架背景/前景色有一些模糊的回忆,但不知道设置的名称。
我在 macOS High Sierra / 10.13.2 上运行的 GNU emacs 25.3.1 上找到了这个“适合我”的解决方案。这显然是一个 hack,但也许这是一个更可靠的解决方案的良好开端。
(if (display-graphic-p)
(progn (setq default-frame-alist
(cons (cons 'reverse t) default-frame-alist))
(select-frame (make-frame))
(delete-other-frames) )
)
if 子句意味着基于普通终端的 emacs 不会因此而混乱。
在 Linux 中使用 ReverseVideo 标志运行 emacs:
$ emacs -rv &
我在 Mac 10.8.5 上使用从 emacsformacosx.com 下载的 Emacs 24.3。
启动 AppleScript 编辑器,粘贴到下面的行中。
do shell script "open -a Emacs.app --args -r"
现在保存为“ReverseEmacs”(或您首选的应用程序名称),文件格式为“Application”。双击你的脚本图标,Emacs 就会出现反向视频。享受!
这适用于 Linux、Windows 和 MacOS 上的 25.1(和 27.2):
(set-face-background 'default "black")
(set-face-foreground 'default "white")
也处理新帧。