เนื่องจาก emacsclient สามารถจัดการเวลาในการโหลดแพ็กเกจที่ยาวกว่าได้ฉันจึงอยากให้กระบวนการ emacs อย่างน้อยหนึ่งกระบวนการและส่วนใหญ่จะมีเพียงกระบวนการเดียว emacsเปิดเป็นกระบวนการพื้นหลังและซ่อน GUI ได้ดีขึ้น
ตอนนี้ฉันกำหนดฟังก์ชันต่อไปนี้ใน. bashrc:
emc ()
{
if [[ $# -eq 0 ]]; then
emacs --eval "(suspend-frame)" &
return
fi
args=($*);
setsid emacsclient -c -e "(find-file \"${args[*]}\")"
}
และยังมีบรรทัดต่อไปนี้ใน. bashrc:
emc
ดังนั้นทุกครั้งที่ฉันเปิดเชลล์ฉันจะต้องมีกระบวนการ emacs ใหม่
ปัญหาคือฉันจะมีกระบวนการ emac ที่ไม่จำเป็นเพิ่มเติมอีกมากมายหลังจากเปิดเชลล์จำนวนมาก แต่ผมเพียงต้องการที่จะรักษาความเป็นหนึ่งเดียว emacs ประมวลผลตลอดเวลาจากการเริ่มต้นที่ดีกว่าซ่อน GUI
emacs --eval "(suspend-frame)"
มากกว่าemacs --daemon
( emacswiki.org/emacs/EmacsAsDaemon ) มีเหตุผลที่คุณเลือกที่จะไม่เรียกใช้ emacs เป็น daemon หรือไม่? คุณสามารถใช้สิ่งที่ต้องการpgrep -U `whoami` emacs || emacs --daemon &
เพื่อให้แน่ใจว่ามันกำลังทำงานอยู่