Недавно я купил свой первый Mac за десять лет и сейчас нахожусь в процессе его настройки. Я - пользователь Emacs и решил, что хочу использовать обычные Emacs, а не Aquamacs, чтобы я мог использовать свою существующую конфигурацию из других операционных систем. Я пытался следовать многим инструкциям, которые я нашел в Интернете (например, этот , этот и этот с сайта, с которого я скачал Emacs ), и пытался объединить эти фрагменты любым количеством способов, но никогда привел вещи в состояние, даже приближающееся к тому, к чему я привык / на что надеялся:
- Демон Emacs запускается либо при запуске, либо как только он мне понадобится ; либо в порядке. Любые новые фреймы Emacs поддерживаются тем же сервером.
- Когда я открываю текстовый файл из Finder, файл открывается в Emacs, если возможно, в существующей графической рамке.
- Если я запускаю Emacs.app, система повторно использует демон emacs, работающий в фоновом режиме, вместо того, чтобы запускать новый экземпляр и открывать в нем новое окно. ( шляпа подсказка )
- Когда я запускаю Emacs из терминала, терминал работает, не дожидаясь, пока я закончу с Emacs (если я не использую '-nw')
- AFAIK ни в коем случае во время операций, описанных выше, не должен Emacs оказаться в состоянии («режим редактирования сервера?»), Где он ждет, пока я наберу текст
C-x #
, хотя я не очень хорошо понимаю это. - (Я бы расценил это как бонус) Для меня есть некоторый способ вызывать Emacs из терминала, чтобы Emacs повторно использовал существующий фрейм, если это возможно.
Как я могу настроить Emacs так?
Я особенно озадачен тем, что Finder открывает вещи в Emacs именно так, как я хочу (# 2), поскольку найденные мной руководства обычно создают несколько псевдонимов, Applescripts, сценариев bash и т. Д., И я не уверен который я хочу сказать Finder использовать для открытия текстовых файлов.
Спасибо!
A. @lawlist спрашивает: «Открывается ли новый фрейм по умолчанию, когда вы открываете новый файл из терминала, даже если фрейм уже существует?» Ответ заключается в том, что если я запускаю сервер при запуске, как описано здесь , открываю фрейм, а затем открываю файл, печатая /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, я могу получить файл для открытия в существующем фрейме. Если в данный момент нет открытого фрейма, я должен использовать «-nc» или когда я пытаюсь открыть файл, ничего не происходит.
Б. @lawlist спрашивает: «Вы хотите, чтобы демон работал при входе в систему или было бы достаточно загрузить Emacs вручную после входа в систему?» Запуск вручную будет в порядке.
M-x server-start
вручную запустит сервер, чтобы emacsclient
можно было с ним общаться. Я поместил (server-start)
в свой init.el
файл вместо использования демона при входе в систему - однако, многие люди предпочитают вариант входа в систему демона. И, конечно, .emacs
файл будет подходящим местом для (server-start)
.
ns-find-file
- который активируется автоматически, когда файл связан с Emacs.app. Моя функция перехвата файла в ссылках выше также изменяет, ns-find-file
если это то, что вас интересует. Конечно, вам нужен встроенный Emacs --with-ns
.