मानते हैं कि एक Emacs सर्वर चल रहा है, मैं emacsclient <file>
या तो एक नया फ्रेम (जैसे -c
) बनाना चाहता हूं, जब कोई मौजूदा फ्रेम न हो या मौजूदा फ्रेम का पुन: उपयोग न हो। दूसरे शब्दों में, मैं केवल -c
चाहता हूं जब कोई मौजूदा फ्रेम न हो। क्या यह संभव है?मौजूदा Emacs GUI फ्रेम बनाएं या पुन: उपयोग करें
उत्तर
मैं शेल स्क्रिप्ट का एक सेट के साथ मेरी समस्या हल।
my_emacs
#!/bin/sh
emacs24-x [email protected] 1> /dev/null 2> /dev/null &
आप कुछ है कि आपके X11 Emacs के लिए अंक के लिए emacs24-x बदलना पड़ सकता है।
my_emacsclient
#!/bin/sh
emacsclient [email protected] 1> /dev/null 2> /dev/null || my_emacs
दोनों फाइलें आपको ~/bin या like के माध्यम से पाथ में जोड़ें।
मेरी .emacs में मैं भी निम्नलिखित लाइनों
(load "server")
(unless (server-running-p) (server-start))
जोड़ा इसके अलावा कुछ वातावरण चर बदल सकते हैं और जब आप अपने खोल यह बनाना चाहिए या resuse में e
चलाने वैकल्पिक रूप से एक उपनाम
export ALTERNATE_EDITOR="my_emacs"
export EDITOR="my_emacsclient -n"
export SUDO_EDITOR="my_emacsclient"
...
alias e="$EDITOR"
जोड़ने एक मौजूदा जीयूआई फ्रेम। साथ ही, चल रहे e <filename>
उस फ़ाइल को फ्रेम में खुलता है; आप -n
से e
जैसे अन्य झंडे भी पास कर सकते हैं।
अन्य अनुप्रयोगों (आपके फ़ाइल प्रबंधक कहें) में एक ही व्यवहार के लिए, आपको my_emacs
चलाने के लिए Emacs .desktop फ़ाइल (मेरे लिए /usr/share/applications/emacs24.desktop
) भी बदलना चाहिए।
डेबियन-आधारित (?) वितरण में विकल्प प्रणाली के माध्यम से emacs
से my_emacsclient
को बदलने का भी एक अच्छा विचार हो सकता है।
अपने Emacs में स्टार्टअप फ़ाइल:
जो भी मेरे सेटअप का उपयोग कर सकता है। यह सही नहीं है और कुछ में त्रुटिपूर्ण त्रुटियां हैं। उदाहरण के लिए, यदि आप 'sudo -e
emacsclient <file>
जो आप चाहते हैं वह करता है।
यदि आप फ़ाइल निर्दिष्ट किए बिना फ्रेम खोलना चाहते हैं, तो आपको -c
का उपयोग करने की आवश्यकता है।
बिल्कुल नहीं। जब कोई जीयूआई फ्रेम मौजूद नहीं होता है, तो टर्मिनल फ्रेम में 'emacsclient
अगर वहाँ एक अभी तक नहीं है आप एक जीयूआई फ्रेम के निर्माण के लिए मजबूर करने के `emacsclient --display" $ प्रदर्शन "कोशिश" कर सकते हैं।
एमएच, अभी भी मेरे लिए काम नहीं करता है। यह मेरे लिए एक टर्मिनल फ्रेम खोलता है। –
@ रेन्के: DISPLAY = $ DISPLAY "echo" क्या करता है आपको बताता है? – Stefan
'DISPLAY =: 0.0' जैसा कि मुझे लगता है। –
यहाँ मेरी समाधान है, तो फिर
;; start emacs server, if it's not already running:
(require 'server)
(unless (server-running-p) (server-start))
निम्नलिखित जोड़ें: (उदाहरण के लिए: ~/.emacs/init.el), सुनिश्चित करें कि आप निम्नलिखित लाइनों है अपने ~/.bashrc फाइल करने के लिए:
function e()
{
emacsclient "[email protected]" -a "emacs"
}
एक आधार रेखा की स्थापना करने के लिए, सुनिश्चित करें कि आप सभी Emacs उदाहरणों से बाहर निकलें और यदि आप वर्तमान में यह चल रहा है Emacs डेमॉन को मार सकते हैं।
फिर, कमांड लाइन से, 'स्रोत' ~ /।bashrc फ़ाइल:
source ~/.bashrc
अंत में, का उपयोग 'ई' फ़ाइल को संपादित:
e Foobar.java &
e notes.txt &
- 1. Emacs फ्रेम
- 2. XMLHttpRequest ऑब्जेक्ट का पुन: उपयोग करें या नया बनाएं?
- 3. विंडोज़ emacs, फ्रेम
- 4. अपरिवर्तनीय वस्तुओं के लिए मौजूदा वस्तुओं का पुन: उपयोग करें?
- 5. Emacs टर्मिनल रंगों को Emacs GUI रंगों के समान कैसे बनाएं?
- 6. "मौजूदा प्रकारों का पुन: उपयोग करें" को सेवा संदर्भ
- 7. पुन: उपयोग, पुनर्लेखन या रिफैक्टर?
- 8. मौजूदा फ़ाइलसिस्टम ऑब्जेक्ट पास करें या कई उदाहरण बनाएं
- 9. Emacs: सेट फ्रेम आकार का उपयोग करने के लिए नया फ्रेम और emacsclient -c प्राप्त करें?
- 10. अजाक्स-गहन पृष्ठ: एक ही XMLHttpRequest ऑब्जेक्ट का पुन: उपयोग करें या हर बार नया बनाएं?
- 11. GUI
- 12. फ्रेम पर emacs फॉलो-मोड
- 13. बैकबोन विचारों के साथ सर्वश्रेष्ठ अभ्यास: पुन: उपयोग करें या बनाएं?
- 14. GUI
- 15. पिछली गतिविधियों का पुन: उपयोग करें?
- 16. GUI
- 17. GUI
- 18. नए फ्रेम के लिए Emacs हुक
- 19. दृश्य या फ़ंक्शन के साथ sql का पुन: उपयोग करें
- 20. FtpWebRequest कनेक्शन का पुन: उपयोग कैसे करें
- 21. रीबेज कैसे करें - विंडोज़ GUI
- 22. नया टैब या पुन: उपयोग में खुला यूआरएल एक मौजूदा जब भी संभव हो
- 23. प्रोग्रामेटिक रूप से Emacs फ्रेम आकार
- 24. GUI
- 25. GUI
- 26. GUI
- 27. GUI
- 28. कमांड लाइन से आर gui लॉन्च करना और मौजूदा फ़ोल्डर
- 29. Emacs में मेक-फ्रेम-ऑन-डिस्प्ले और बहु-टीटी का उपयोग कैसे करें?
- 30. मौजूदा निजी कुंजी का उपयोग कर सीएसआर बनाएं
कि नहीं है क्या बाहर छोड़ने '-c' वैसे भी करता है? मतलब है कि एक सरल 'emacsclient yourfile.ext' को मौजूदा फ्रेम में खोलना चाहिए यदि कोई है, और यदि ऐसा नहीं है तो इसे एक बनाना चाहिए। –