Как заставить emacsclient найти демон emacs, из которого он выполняется - PullRequest
4 голосов
/ 05 января 2011

Я пытаюсь перенести большинство моих действий по редактированию и оболочке в emacs, чтобы я мог легко продолжить рабочий процесс с разных компьютеров. У меня также есть разные экземпляры Emacs для моих разных проектов. Например, я запускаю:

emacs --daemon=project1
emacs --daemon=project2

Затем, когда я хочу запустить фрейм для работы над проектом1, я делаю:

emacsclient -s project1 -c

В основном это работает отлично, но у меня проблемы с выполнением инструментов из моих оболочек emacs, которые пытаются запустить редактор, используя $ EDITOR. Конечно, в этом случае я бы хотел, чтобы в моем текущем экземпляре emacs открылся новый буфер, именно для этого и предназначен emacsclient. Так что если в буфере оболочки в emacs проекта 1, я говорю:

export EDITOR='emacsclient -s project1'

тогда в этой конкретной оболочке все работает отлично.

Мой вопрос: как я могу автоматически установить переменную EDITOR таким образом, чтобы она указала на экземпляр emacs, в котором работает текущая оболочка?

1 Ответ

3 голосов
/ 05 января 2011

Вот один из способов сделать это:

(add-hook 'shell-mode-hook
      (lambda ()
        (comint-send-string 
         (get-buffer-process (current-buffer))
         (concat "export EDITOR='emacsclient -s " 
             (daemonp)
             " -c'\n"))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...