कमांड लाइन से मौजूदा इमैक प्रक्रिया में फाइल कैसे खोलें?


14

मेरे पास कई स्क्रिप्ट हैं जो एक विशिष्ट परियोजना से संबंधित सभी एप्लिकेशन और फ़ाइलों को लॉन्च करेंगे। लेकिन, यह कई एमएसीएस इंस्टेंसेस लॉन्च करेगा, बजाय इसके कि वर्तमान एमएसीएस अनुरोधित फाइलों को खोलने के लिए। मैं बल्कि वर्तमान emacs बस एक नया बफर में परियोजना पाठ फ़ाइलों को खोला था।

किसी भी विचार मैं ऐसा कैसे कर सकते हैं?


मेरे जवाब पर एक नज़र डालें stackoverflow.com/a/38655619/2450748 हालांकि 5 साल बाद :)
nexayq

जवाबों:


21

M-x server-startEmacs सत्र के अंदर, फिर emacsclient -n file1 file2 ...मौजूदा Emacs में फ़ाइलों को जोड़ने के लिए उपयोग करें। अतिरिक्त विकल्प हैं जिनका आप उपयोग करना चाहते हैं, उदाहरण के -cलिए एक नई विंडो (फ्रेम) में फ़ाइलों को खोलने के लिए।


धन्यवाद डूड। यही मुझे जानने की जरूरत है। मैं अभी तक 'सही उत्तर' की जाँच नहीं कर रहा हूँ, क्योंकि मैंने सुना है कि आपको हमेशा दूसरों के योगदान का मौका देने के लिए इसे थोड़ा खुला रखना चाहिए। लेकिन मैंने आपका जवाब पहले ही कुछ स्क्रिप्ट में डाल दिया है।
-'११

सामान्यतया, आप (server-start)सर्वर को मैन्युअल रूप से शुरू करने के बजाय अपनी .emacs फ़ाइल में रखना चाहते हैं । (and window-system (server-start))यदि मैं किसी टर्मिनल में एमएसीएस चला रहा हूं तो सर्वर शुरू करने से बचने के लिए उपयोग करता हूं।
cjm

आधुनिक Emacs में यह सिर्फ एक टर्मिनल के रूप में उपयोगी है; -tविकल्प देखें ।
गाइकोसॉर

@ cjm - वास्तव में मैं अपने .emacs फ़ाइल में सर्वर शुरू करता हूं। मैंने अभी इसका इस्तेमाल नहीं किया :-)
bev

5

(server-start)अपनी .emacsफ़ाइल में रखें ।

इसमें जोड़ें ~/.bashrc

alias myedit='emacsclient --alternate-editor="" --no-wait $*' #quotes intentionaly left blank

फिर myeditअपने संपादक के रूप में उपयोग करें। -cविंडो को ऊपर लाने के लिए आपको विकल्प का उपयोग करना होगा ।

तो आप ऐसा कर सकते हैं:

myedit -c a-file
run-script #that uses myedit

या

run-script #that uses myedit
myedit -c

रिचर्ड, इनपुट के लिए धन्यवाद। मैं अभी भी अपनी स्क्रिप्ट के साथ कुछ बातें बता रहा हूं। पहला, चूँकि emacsclient के पास एक -c विकल्प नहीं है, इसलिए मैं मान रहा हूँ कि यह एक बाश बात है, लेकिन पता नहीं है। दूसरा, क्यों वैकल्पिक संपादक के रूप में emacs नहीं डालते हैं? धन्यवाद
बेव

# $ emacsclient --help .... निम्नलिखित विकल्पों को स्वीकार किया जाता है: ... -c, --create- फ्रेम वर्तमान Emacs फ्रेम का उपयोग करने की कोशिश करने के बजाय एक नया फ्रेम बनाएं ... -a EDITOR, --alternate - सर्वर पर इडीटोर करने के लिए एडीटर = EDITOR एडिटर अगर EDITOR खाली स्ट्रिंग नहीं है, तो Emacs को डेमॉन मोड में शुरू करें और फिर से कनेक्ट करने का प्रयास करें
ctrl-alt-delor

आपको उपनाम की परिभाषा में स्थितीय मापदंडों का उपयोग करने की आवश्यकता नहीं है (और, वास्तव में, शायद नहीं चाहिए)। विचार करें कि कैसे alias foo='echo bar $*'विस्तार होता है set quux; foo baz। यदि आप स्थितीय मापदंडों का उपयोग करना चाहते हैं, तो इसे शेल फ़ंक्शन के रूप में आज़माएं:myedit() { emacsclient … "$@"; }
क्रिस जॉन्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.