7

我最近开始在启动时以守护程序模式运行 emacs。通过 GUI 客户端 (Emacs.app) 连接似乎可以正确加载自定义。但是,emacsclient在终端中通过连接没有。

尝试M-x customize-variable在终端中出现以下症状后出现了第一个症状:

无法保存自定义:初始化文件未完全加载

这可能与根据 thisemacs --daemon忽略所有与 X11 相关的选项有关。尽管在我的情况下会出现,而不是忽略与 X11 相关的选项,emacsclient 无法加载后续选项。

在研究了问题和可能的解决方案后,我无法确定解决此问题的防弹方法。我已经看到了创建不同的初始化文件和相应的 bash 别名的建议,emacsclient --eval每次想要在终端中打开 emacs 缓冲区时将其传递给它。我还看到其他人在他们的主初始化文件中使用 if-else 语句来处理与 X11 相关的选项。但在走上一条或另一条路之前,我想知道是否有一种规范的方式来处理这个我以某种方式忽略的(或者我是否只是在某个地方犯了错误)。

建议,批评,提示将不胜感激。

编辑添加
* GNU Emacs 24.3.1
* emacsclient 24.3
* 都在 OS X 10.9 上安装了 homebrew

这是 LaunchAgent:

<?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>emacsdaemon</string>
  <key>ProgramArguments</key>
  <array>
    <string>/opt/boxen/homebrew/bin/emacs</string>
    <string>--daemon</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>ServiceDescription</key>
  <string>Emacs Daemon</string>
  <key>UserName</key>
  <string>my_name</string>
</dict>
</plist>

以下是点文件配置:

# relevant lines of .zshrc:
alias emacs="/opt/boxen/homebrew/bin/emacsclient -nw"
# set emacsclient as default editor  
export EDITOR="emacsclient"  
# use only emacscilent  
export ALTERNATE_EDITOR=""  

有时我也喜欢在 tmux 中启动 emacs:

# relevant lines of .tmux.conf:
# open emacs inside of tmux in a new window
# hat tip: http://perlstalker.vuser.org/blog/2012/10/16/emacsclient-and-tmux/
bind-key y   new-window -n "emacs" "/opt/boxen/homebrew/bin/emacsclient -nw"
4

1 回答 1

1

emacsclient不会导致读取 init 文件的任何部分。即在您的用例中,您需要设置您的 init 文件,使其涵盖所有用例(用于文本终端和 GUI 框架),因为无论如何您都可以同时拥有几种不同的类型。

Cannot save customizations: init file was not fully loaded消息表示加载时发出错误信号~/.emacs,因此请检查内容*Messages*以查看错误是什么并尝试修复它。

于 2016-02-11T17:42:56.087 回答