Если вы создаете модуль запуска emacsclient, копируя файл .desktop (например, файл Emacs), он не будет работать в стандартном режиме запуска Unity. Это всегда запускает новое окно; он не распознает, что существующие окна Emacsclient существуют для перехода к ним. Как я могу заставить его вести себя?
В качестве фона, это очень полезный режим использования для Emacs, когда вы запускаете его как демон:, emacs --daemon
а затем вызываете окно emacs emacsclient
. Хороший способ сделать это для обычных пользователей emacs - это вставить их emacs --daemon
в Startup Applications.
emacsclient.desktop
по некоторым причинам. В конце концов я справился с этим, создавalacarte
вместо него панель запуска (графический интерфейс «Главное меню»).Решение от james.ferguson работает хорошо. Я хотел связать emacsclient с некоторыми типами файлов в качестве «предпочтительного приложения». Для этого я нашел скрипт Джеймса с новой строкой "Exec"
работает лучше для меня: он запускает новый emacs, если ни один из них не запускается, не открывает новое окно и не заставляет emacs жаловаться на клиентов, все еще ожидающих, что что-то произойдет.
Теперь я могу нажимать на файлы, и они открываются в работающем emacs, если таковой существует, иначе emacs запускается.
источник
Другой способ - использовать скрипт :
Таким образом, вы всегда вызываете одну и ту же команду.
источник