Как запускать Emacs в клиент-серверном режиме
2011.05.07
Так как даже в англоязычном секторе Сети ни фига не понятно, как это сделать, пишу сам, для того случая, когда забуду, а понадобится.
Контекст
Начиная с Emacs 23, появилась возможность запускать его в режиме демона. Для этого вызываем его так:
emacs --daemon
Emacs запускается в фоне и становится точкой доступа для вызовов emacsclient. Теперь мы вместо запуска нового инстанса Emacs запускаем
emacsclient -c
Клиентская часть подключается к демону практически мгновенно, и демон хранит открытые буфера, историю правок, всё, самостоятельно. Память также расходуется только как бы на один инстанс Emacs. Короче, именно так должен работать Емакс на машине, где он используется в качестве основного и единственного текстового редактора.
Реализация
Теперь о том, как заменить дефолтный запуск Emacs в Debian Squeeze/KDE.
Вообще можно обойтись тем, что вместо
emacs
пользоваться
emacsclient --alternate-editor "" -c
Если в качестве alternate-editor указана пустая строка, emacsclient самостоятельно запустит демона emacs (!) и подконнектится к нему.
Однако, хочется гуёвых удобств.
По умолчанию в плазмоиде Kickoff (меню запуска приложений) находится
пункт меню, запускающий Emacs в обычном режиме. Нажав на Kickoff правой
лапой, можно добраться до “редактора меню”, в котором найти пункт меню
для Emacs, и заменить его строку вызова с emacs
на вышеупомянутое
emacsclient --alternate-editor "" -c.
Это всё, никаких дополнительных телодвижений типа настройки автозапуска
emacs --daemon
не надо.