在emacsclient下的Desktop.el

时间:2010-09-18 09:00:14

标签: emacs gentoo emacsclient

我正在尝试在emacs中使用桌面功能(http://www.emacswiki.org/emacs/DeskTop)。 我将以下代码添加到我的.emacs:

(require 'desktop)
(setq desktop-save t)
(setq desktop-load-locked-desktop t)
(setq *desktop-dir* (list (expand-file-name "~/.emacs.d/desktop")))
(setq desktop-base-file-name ".emacs.desktop")
(setq desktop-path *desktop-dir*)
(setq desktop-dir *desktop-dir*)
(desktop-save-mode 1)
(desktop-read)

如果我像使用独立应用程序一样使用emacs,调用“$ emacs -nw”,一切都很好,但是当我尝试使用与emacsclient相同的配置时,emacs只会在服务器启动时挂起。 注释掉最后两行会使emacs服务器按预期启动。

从/etc/init.d查看官方Gentoo脚本的一部分,以启动emacs守护程序。

: ${EMACS:=/usr/bin/emacs}
: ${EMACS_OPTS:=--daemon}
: ${EMACS_SHELL=/bin/bash}
: ${EMACS_START:=/usr/libexec/emacs/emacs-wrapper.sh}
: ${EMACS_TIMEOUT:=30}
: ${EMACS_SHUTDOWN_TIMEOUT:=10}
USER=${SVCNAME#*.}
PIDFILE_DIR=/var/run/emacs/${USER}
PIDFILE=${PIDFILE_DIR}/emacs.pid
...
local home
checkconfig || return 1

eval home="~${USER}"

SHELL=${EMACS_SHELL:-$(awk -F: "\$1 == \"${USER}\" { print \$7 }" \
    /etc/passwd)}
export SHELL EMACS EMACS_TIMEOUT

ebegin "Starting Emacs daemon for user ${USER}"
if [ -z "${RC_SVCNAME}" ]; then
    # baselayout-1
    start-stop-daemon --start \
        --user "${USER}" --exec "${EMACS}" --pidfile "${PIDFILE}" \
        --chuid "${USER}" --chdir "${home}" --env HOME="${home}" \
        --startas "${EMACS_START}" -- ${EMACS_OPTS}
else
    # OpenRC
    start-stop-daemon --start \
        --user "${USER}" --pidfile "${PIDFILE}" --chdir "${home}" \
        --exec "${EMACS_START}" -- ${EMACS_OPTS}
fi
eend $?

有可能以某种方式调试emacsclient问题吗? 也许有人可以暗示一下?

P.S。我在Gentoo Linux上,emacs-vcs-23.2.9999包,仅限终端。

0 个答案:

没有答案