Як я можу запустити графічний Emacs для Mac OSX у демоновому режимі?


24

Коротка форма: Я хочу запустити версію Emacs для Mac OSX, яку можна знайти на http://emacsformacosx.com/, як демон, з графічними та текстовими клієнтами, що підключаються до неї за потребою.

Детально, ось який робочий процес я хочу:

  1. Після входу запустіть, /Applications/Emacs.app/Contents/MacOS/Emacs --daemonщоб запустити emacs як демон. Я вже знаю, як це зробити .

  2. Під час запуску emacs з локального терміналу я хочу будь-який із них:

    1. Якщо я запускаю emacsз локального командного рядка, відкрийте новий кадр із вибраним файлом.
    2. Якщо номер 1 неможливий, принаймні, якщо я запускаю emacsclientз командного рядка, відкрийте новий кадр із вибраним файлом.
  3. Запускаючи emacs з віддаленого терміналу, я хотів би запустити текстовий режим emacs, підключений до процесу демон.

  4. Якщо я запускаю Emacs.appповторно використовувати демон emacs, який працює у фоновому режимі, а не запускати новий екземпляр і відкривати нове вікно на ньому.

Поки що я в змозі виконати лише №1 та №22 вище, але це легкі частини. №3 і №4 - це речі, які найбільше потрібні для цього. Хтось знає, як це зробити?


1
Для інших, хто знайде це питання: ви також M-x server-startможете поставити emacs, запущений без роботи --daemon в серверний режим. Гарні запитання, BTW.
dmckee

1
... або (server-start)введіть у ваші .emacs так, щоб він запускався при запуску emacsa
Doug Harris

Хтось може пояснити, як це зробити №1? Ви просто зробили б це елемент для входу?
Charlie Flowers

Відповіді:


15
  1. Ви впоралися з цим
  2. Так, ви хочете використовувати emacsclient. Щоб отримати новий кадр, додайте параметр -c. У мене є псевдонім, щоб зробити це швидше і сказати emacsclient не чекати повернення сервера emacs:

    alias em='emacsclient -n'
    
  3. emacsclient -nw
  4. Я не впевнений у цьому. Я запускаю Emacs один раз і завжди завантажую нові файли або в emacs, або використовуючи свій emпсевдонім.

Оновлення:

Ознайомтеся з цією підказкою, в якій описується, як використовувати Platypus для створення обгортки програми навколо emacsclient. Потім ви можете використовувати "Відкрити за допомогою ..." для запуску за допомогою нового обгортка додатка.


Так, це справжня хитрість, чи не так? Тому що я хочу, щоб усі відкриті дзвінки ОС використовували запущені emacs, незалежно від того, працюю я в терміналі чи в інтерфейсі GUI. Я буду продовжувати шукати.
Кріс Р

Знайшов відповідь на Платипус та оновив свою відповідь.
Дуг Харріс

6
Це вирішено? Як ви змусили Emacs.app підключитися до демона?
доярок

Я також хочу знати відповідь на питання 4 :)
jkp

2

Так, ось досить вичерпне пояснення про те, як це зробити красиво. Я спробував декілька методів, щоб змусити його добре працювати, але не краще того, що вони описали тут.

https://gist.github.com/304964

Ура!


1
Посилання мертве
Nisba

1

Для 4. помістіть це у своїх .emacs:

(setq ns-pop-up-frames nil)

Рішення створення Mac .app для Mac (з Platypus) не працює, оскільки Mac не відкриє одну і ту ж програму двічі.


1
Якщо ви використовуєте "open -n", ви можете відкрити новий екземпляр програми, навіть якщо він вже працює. Спробуйте це в терміналі: відкрити -n -a Emacs.app somefile.txt
Йорген Лундберг

Так, але воно відкриває нове вікно, яке я не хочу
juanmirocks

Можливо, я нерозумію те, що ви хочете, але якщо ви не хочете, щоб воно створило нове вікно, але використовувало наявне, пропустіть '-n'.
Йорген Лундберг

Так, я не хочу створювати нове вікно. open -a Emacs.appце , звичайно , те , що я роблю, але буде відкритий в тому ж екземпляр / демон тлі існуючої Emacs, мені потрібно писати (setq ns-pop-up-frames nil)на мою , .emacsяк я вже писав у своїй відповіді. В іншому випадку воно створює нове вікно все одно, з або без -n.
juanmirocks
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.