Кстати, вот мое решение:
Шаг 1: создайте скрипт в / usr / local / bin / emacs со следующим
Содержание:
#!/usr/bin/bash
emacsclient -c --alternate-editor='/Applications/Emacs.app/Contents/MacOS/Emacs' "$@" 2>/dev/null
шаг 2. сделать его исполняемым через: chmod + x / usr / local / bin / emacs
шаг 3. в файле ~ / .emacs добавьте следующее:
(server-start)
(defun ns-raise-emacs ()
(ns-do-applescript "tell application \"Emacs\" to activate"))
(ns-raise-emacs)
(add-hook 'server-visit-hook 'raise-frame)
;;(add-hook 'server-visit-hook 'ns-raise-emacs)
объяснение:
Если вызывается сценарий emacs в / usr / local / bin / emacs и в данный момент не запущен сервер emacs, emacsclient вызовет альтернативный редактор, который в данном случае является редактором Emacs (/Applications/Emacs.app/ Содержание / MacOS / Emacs).
На шаге 3 первоначальный вызов (ns-raise-emacs)
необходим для того, чтобы начальное окно Emacs отображалось перед всем остальным.
(add-hook 'server-visit-hook 'raise-frame)
так, что последующие кадры отображаются перед всем остальным.
В качестве альтернативы, если вы предпочитаете, чтобы все кадры Emacs отображались перед всем остальным при каждом вызове emacs из командной строки, вы можете раскомментировать строку (add-hook 'server-visit-hook 'ns-raise-emacs)
.