चूँकि Emacsclient लंबे पैकेज लोडिंग समय को तेजी से संभाल सकता है, मैं वास्तव में कम से कम एक एमएसीएस प्रक्रिया रखना चाहता हूं , और अधिकांश समय केवल एक एमएसीएस प्रक्रिया , एक पृष्ठभूमि प्रक्रिया के रूप में खुली रहती है और जीयूआई को बेहतर तरीके से छिपाती है।
अभी मैंने निम्न फ़ंक्शन को .bashrc में परिभाषित किया है:
emc ()
{
if [[ $# -eq 0 ]]; then
emacs --eval "(suspend-frame)" &
return
fi
args=($*);
setsid emacsclient -c -e "(find-file \"${args[*]}\")"
}
और भी .bashrc में निम्न पंक्ति है:
emc
तो हर बार जब मैं एक खोल को खोलता हूं, तो मैं एक नई emacs प्रक्रिया समाप्त करूंगा।
समस्या यह है कि कई खोलों को खोलने के बाद मेरे पास कई अतिरिक्त अनावश्यक एमएसीएस प्रक्रिया होगी। हालाँकि, मैं केवल एक ही emacs प्रक्रिया को बनाए रखना चाहता हूं जो स्टार्टअप से हर समय GUI को बेहतर तरीके से छिपाती है ।
emacs --eval "(suspend-frame)"
बजाय अभ्यास से परिचित नहीं हूंemacs --daemon
( emacswiki.org/emacs/EmacsAsDaemon )। वहाँ एक कारण है कि आप एक डेमन के रूप में emacs आह्वान नहीं है? आपpgrep -U `whoami` emacs || emacs --daemon &
यह सुनिश्चित करने के लिए कुछ का उपयोग कर सकते हैं कि यह चल रहा है।