在我的 中.bashrc
,我定义了TMPDIR=${HOME}/tmp
临时文件位于我的加密 下$HOME
。emacs
从启动器调用的 看不到此定义,但从emacsclient
shell 调用的 却可以看到。
到目前为止,我知道
emacs
(在(server-start)
)打开“/tmp”中的套接字后,“emacsclient”会尝试通过“${HOME}/tmp”中的套接字与“emacs”通信,但效果很差。我如何才能说服启动器(通过 emacsclient.desktop?)传递正确的 TMPDIR 值?
答案1
尝试将变量定义放在.profile
而不是 中.bashrc
。后者在顶部附近有一个语句,当由非交互式 shell 执行时,会导致它很早就退出。注销并重新登录以查看它是否有效。
也不要忘记添加export
如下内容:
export TMPDIR="$HOME/tmp"
如果这不起作用,请修改启动器(位于/usr/share/applications
),以便其执行行显示:
Exec=sh -c 'TMPDIR="$HOME/tmp" emacs'
答案2
我想我无法将我的TMPDIR
输入传递给该emacs
server-start
函数,所以我想我必须利用它emacsclient
来/tmp
保存套接字。
在我的.bashrc
:
export EDITOR="env TMPDIR=/tmp emacsclient"
export VISUAL="env TMPDIR=/tmp emacsclient"
但这似乎不是最佳选择。有什么建议吗?