Я решил свою проблему с помощью набора сценариев оболочки.
my_emacs
#!/bin/sh
emacs24-x $@ 1> /dev/null 2> /dev/null &
Возможно, вам придется изменить emacs24-x на что-то, указывающее на ваш emacs X11.
my_emacsclient
#!/bin/sh
emacsclient $@ 1> /dev/null 2> /dev/null || my_emacs
Добавьте оба файла в PATH через ~ / bin и т. П.
В моем .emacs я также добавил следующие строки
(load "server")
(unless (server-running-p) (server-start))
Также измените некоторые переменные окружения и при желании добавьте псевдоним
export ALTERNATE_EDITOR="my_emacs"
export EDITOR="my_emacsclient -n"
export SUDO_EDITOR="my_emacsclient"
...
alias e="$EDITOR"
При запуске e
в вашей оболочке он должен создать или повторно использовать существующий фрейм GUI.Кроме того, запуск e <filename>
открывает этот файл во фрейме;вы также можете передать другие флаги, такие как -n
в e
.
Для того же поведения в других приложениях (скажем, в вашем файловом менеджере), вы также должны изменить файл Edescs .desktop (для меня это * 1025)*) для запуска my_emacs
.
Также было бы неплохо изменить emacs
на my_emacsclient
через систему альтернатив в дистрибутивах на основе Debian (?).