2010-02-16 14 views
5

मेरे पास बैश में एक उपनाम है जो emacsclient चलाता है अगर emacs डिमन पहले से चल रहा है और अन्यथा emacs शुरू करते हैं। हालांकि, अगर इमैक का एक नया उदाहरण निकाल दिया जाता है, तो क्या मैं इसे पृष्ठभूमि में चला सकता हूं ताकि मैं अभी भी उस टर्मिनल का उपयोग कर सकूं (या इसे बंद कर दूं?) मेरी पार्टी प्रोफ़ाइल में, मैंपृष्ठभूमि में शुरू होता है कि emacs उपनाम बनाएँ?

alias ec="/usr/bin/emacsclient.emacs-snapshot -n -c -a /usr/bin/emacs-snapshot" 

है और मैं टर्मिनल पर हो सकता है और टाइप

$ ec newfile 

तो Emacs डेमॉन को पहले से ही नहीं चल रहा है हो सकता है, वहाँ एक उपनाम मैं ऊपर लाइन बनाने के लिए बना सकते हैं

$ emacs newfile & 
बजाय

$ emacs newfile 
012 के बराबर करना

(मुझे यह भी जिक्र करना चाहिए कि मैं लिनक्स उबंटू और emacs-snapshot का उपयोग कर रहा हूं, उपनाम 'emacs' को असाइन किया गया है)।

बहुत बहुत धन्यवाद!

उत्तर

4
इसके बजाय /usr/bin/emacs-snapshot बुला सीधे, एक स्क्रिप्ट है कि पृष्ठभूमि में /usr/bin/emacs-snapshot कॉल लिखने के

और फिर रिटर्न:

#!/bin/sh 
case $# in 
    0) /usr/bin/emacs-snapshot & 
    *) /usr/bin/emacs-snapshot "[email protected]" & 
esac 

तो फिर तुम साधारण तरह से स्क्रिप्ट कहते हैं; यह एक पृष्ठभूमि emacs प्रक्रिया शुरू करेगा और तुरंत वापस आ जाएगा।

आप कल्पना आप esac के बाद प्रक्रिया /bin/bash और disown उपयोग कर सकते हैं प्राप्त करना चाहते हैं ($! साथ पीआईडी ​​मिल)।

+1

क्यों 'मामला'? बस 'माईस्क्रिप्ट' का उपयोग कर $ @ "' 'myscript' के समान काम करेगा जब $ # ओ होगा। – dubiousjim

+1

@profjim: शायद बाश में लेकिन '/ bin/sh' के पुराने संस्करणों में नहीं। 'मामला 'पोर्टेबिलिटी की गारंटी देता है। पुराने संस्करणों में, 'माइस्क्रिप्ट "$ @" '' myscript "के रूप में व्यवहार करता है" "' '# ~ 0 है। जब आप जितने बूढ़े हो, तो आप" बग-फॉर बग संगतता "को बनाए रखना सीखते हैं .. –

+0

जानना अच्छा है, धन्यवाद! – dubiousjim

2

हालांकि यह आपके प्रश्न का सीधा जवाब नहीं है, यह "emacs deamon शुरू करें या अन्यथा emacsclient चलाएं" के लिए यह एक और शानदार तरीका है। निम्नलिखित उपनाम बनाएं: alias emacs=emacsclient -c -a ""man emacsclient के रूप में:

-एक, --alternate संपादक = संपादक ... तो संपादक का मूल्य रिक्त स्ट्रिंग, चलाने के ` '--daemon Emacs डेमॉन मोड में Emacs शुरू करने के लिए है, और उससे कनेक्ट करने का प्रयास करें।

संबंधित मुद्दे