#  Еmacs как демон
Andrew Lobanov (tavern,1) → All  –  06:32:59 2020-08-05

Давно знал о сабжевой возможности, но никогда не пользовался. А тут попробовал в очередной раз и мне очень понравилось.

Дело в том, что у меня значительно разбух .emacs и время запуска, соответственно, стало неудобоваримым. Всё это усугубляется тем, что порой я запускаю несколько экземляров (например, как редактор в цезии) и длительный запуск утомляет.

Суть проста: экземпляр emacs запускается в режиме демона без пользовательского интерфейса. Последний запускается в виде клиента и потому стартует очень быстро.

Запустить emacs в качестве демона очень просто:


$ emacs --daemon


Для запуска клиента с графическим фреймом и всеми возможностями графической версии достаточно просто выполнить


$ emacsclient -c


Если же хочется запустить клиент в терминале, то


$ emacsclient -nw


Вот и всё. Но есть ещё тонкости некоторых настроек, которые перестают работать в режиме демона и клиента. У меня проявились две: не подхватился шрифт и не выключался scrollbar.

Обе проблемы решились весьма просто.


(setq default-frame-alist '((font . "Iosevka-12")))


И проблема с шрифтом решена.

Scrollbar же я убрал не так красиво, но вполне действенно. В ~/.Xdefaults добавил строчку


emacs.verticalScrollBars: false


Теперь в фреймах отсутствует scrollbar.

Возможность эта достаточно известна, но вдруг кому-нибудь покажется полезным иметь emacs всегда запущенным, а пользовательский интерфейс вызывать по необходимости.

Что удобно, открытые буферы и их состояние, запущенные elisp-программы не зависят от клиента и выполняются демоном. Можно хранить состояние между вызовами интерфейса. Можно открыть несколько фреймов emacs и работать в них одновременно, если по какой-либо причине неудобно использовать окна emacs в одном фрейме. И самое главное -- молниеносный запуск клиента. Теперь писать в секту сторонним редактором стало очень удобно и быстро.
Powered by iii-php v0.11