我在 OS X 10.6 上运行 gnu emacs 23.3.1 cocoa build。
我将以下内容添加到 ~/Library/LaunchAgents/gnu.emacs.daemon.plist 以便它会启动一个守护进程并在我无意中杀死它时自动重新启动 emacs。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>gnu.emacs.daemon</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Emacs.app/Contents/MacOS/Emacs</string>
<string>--daemon</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ServiceDescription</key>
<string>Gnu Emacs Daemon</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
这有点工作,但我注意到我的颜色主题不能正常工作。然后我记得我在我的 init 文件中添加了以下内容:
(when window-system
(require 'alpha)
(require 'color-theme-ir-black)
(modify-frame-parameters (selected-frame) '((alpha . 85)))
(color-theme-ir-black))
Run Code Online (Sandbox Code Playgroud)
当作为守护程序窗口系统启动时,显然是错误的,这是有道理的,但是我添加它的原因是因为我偶尔喜欢从 ssh 等在终端中启动正常的 emacs 构建,而这种配色方案在 iTerm 中完全不可读,因此(当窗口系统......)。有没有办法在使用 --daemon 启动时强制 emacs 启动窗口模式?
我注意到的另一个问题是,当我在 dameon 模式下运行 press sw (delete-frame) 时,我没有收到错误尝试删除唯一可见或图标化的框架,并且 emacs 继续在后台运行。我在很大程度上喜欢这个,但是我注意到,一旦最后一帧被杀死,我就无法再从文档中重新打开 emacs,虽然 …