Ponieważ emacsclient może poprawnie obsługiwać długi czas ładowania pakietu, naprawdę chcę zachować co najmniej jeden proces emacs, a przez większość czasu tylko jeden proces emacs , otwarty jako proces w tle i lepiej ukryć GUI.
W tej chwili zdefiniowałem następującą funkcję w .bashrc:
emc ()
{
if [[ $# -eq 0 ]]; then
emacs --eval "(suspend-frame)" &
return
fi
args=($*);
setsid emacsclient -c -e "(find-file \"${args[*]}\")"
}
A także mają następujący wiersz w .bashrc:
emc
Więc za każdym razem, gdy otwieram powłokę, skończę z nowym procesem emacsa.
Problem polega na tym, że po otwarciu wielu powłok będę musiał przeprowadzić wiele dodatkowych niepotrzebnych procesów emacs. Chcę jednak cały czas utrzymywać tylko jeden proces emacsa od uruchomienia, lepiej ukryj GUI .
emacs --eval "(suspend-frame)"
raczej praktykiemacs --daemon
( emacswiki.org/emacs/EmacsAsDaemon ). Czy istnieje powód, dla którego zdecydujesz się nie wywoływać emacsa jako demona? Możesz użyć czegoś takiego,pgrep -U `whoami` emacs || emacs --daemon &
aby upewnić się, że działa.