В своей работе часто использую emacs. GUI-версия меня не прельщает — нет в ней ничего, что я использую.
А консольная даже при обычной работе может загружаться видимое для глаза время, кроме того она не контролирует открытые файлы в разных сессиях.
Готовое решение давно имеется, надо только воспользоваться им — работа emacs в режиме демона.
Стандартным методом использования является запуск демона emacs по команде
emacs --daemon
, с последующим использованием клиента emacsclient.
В общем такой подход может быть и удобный, но его можно и нужно совершенствовать.
На мой взгляд требуется автоматизация запуска демона и прозрачное использование emacsclient.
Этого можно добиться дописав пару функций и один алиас в начало .bashrc:
load_emacs_daemon(){
local me=`whoami`
local template=`ps -AF -U ${me} | grep "[0-9] emacs --daemon"`
if  [ -z "$template" ] ; then
emacs --daemon &>/dev/null
fi
}
load_emacs_client() {
if ! [ -z "$1" ] ; then
emacsclient -t $@
else
emacsclient -t
fi
}
load_emacs_daemon
alias emacs="load_emacs_client"

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