В моем .bashrc
я определяю TMPDIR=${HOME}/tmp
, поэтому временные файлы находятся под моим зашифрованным $HOME
. emacs
, вызванный из средства запуска, не видит этого определения, но emacsclient
, вызванный из оболочки, делает.
До сих пор я знаю, что emacs
(после (server-start)
) открывает сокет в '/ tmp', 'emacsclient' пытается связаться с 'emacs' через сокет в '$ {HOME} / и очень плохо. Как я могу убедить программу запуска (через emacsclient.desktop?) Передать правильное значение для TMPDIR?
Попробуйте поместить определение переменной в .profile
вместо .bashrc
. У последнего есть оператор около вершины, который заставляет его выходить очень рано, когда выполняется неинтерактивной оболочкой. Выйдите из системы и войдите в нее, чтобы увидеть, работает ли она.
Также не забудьте добавить export
следующим образом:
export TMPDIR="$HOME/tmp"
Если это не сработает, измените модуль запуска (он находится в /usr/share/applications
) так, чтобы его строка Exec гласила: [ 118]
Exec=sh -c 'TMPDIR="$HOME/tmp" emacs'
Полагаю, я не могу передать свой TMPDIR
в функцию emacs
server-start
, поэтому я думаю, мне придется заставить emacsclient
использовать /tmp
для удержания сокета.
В моих .bashrc
:
export EDITOR="env TMPDIR=/tmp emacsclient"
export VISUAL="env TMPDIR=/tmp emacsclient"
, но это кажется неоптимальным. Есть предложения?