2008-09-15 18 views
156

के रूप में Emacs का उपयोग करना वर्तमान में जब मैं सी या सी ++ में कोडिंग कर रहा हूं तो Emacs के साथ मेरा वर्कफ़्लो तीन विंडो शामिल है। दाईं ओर सबसे बड़ी फ़ाइल जिसमें मैं काम कर रहा हूं। बाएं दो में विभाजित है, नीचे एक खोल है जिसे मैं संकलित करने या कमांड बनाने के लिए उपयोग करता हूं, और शीर्ष अक्सर दस्तावेज या रीडमे फ़ाइल है जो मैं काम कर रहा हूं, जबकि मैं परामर्श करना चाहता हूं। अब मुझे पता है कि वहाँ कुछ सुंदर विशेषज्ञ Emacs उपयोगकर्ता हैं, और मैं उत्सुक हूं कि अन्य Emacs वास्तव में उपयोगी है यदि इरादा इसे पूर्ण आईडीई के रूप में उपयोग करना है। विशेष रूप से, सबसे IDEs आमतौर पर इन कार्यों को पूरा कर रहा है कुछ या किसी अन्य रूप:एक आईडीई

  • स्रोत कोड संपादक
  • संकलक
  • डिबगिंग
  • प्रलेखन लुक
  • संस्करण नियंत्रण
  • वर्ग देखने की तरह OO सुविधाओं और ऑब्जेक्ट इंस्पेक्टर

कुछ के लिए ये, यह स्पष्ट है कि कैसे Emacs इन कार्यों को फिट कर सकते हैं, लेकिन बाकी के बारे में क्या? साथ ही, यदि एक विशिष्ट भाषा पर ध्यान केंद्रित किया जाना चाहिए, तो मैं कहूंगा कि यह सी ++ होना चाहिए।

संपादित करें: एक उपयोगकर्ता ने इंगित किया कि जब मैं 'बाकी के बारे में क्या कहता हूं' तो मुझे और अधिक विशिष्ट होना चाहिए था। अधिकतर मैं कुशल संस्करण नियंत्रण के साथ-साथ प्रलेखन लुकअप के बारे में उत्सुक था। उदाहरण के लिए, एसएलआईएमई में लिस्प फ़ंक्शन पर त्वरित हाइपरपेक लुकअप करना काफी आसान है। क्या सी ++ एसटीएल दस्तावेज में कुछ देखने का कोई त्वरित तरीका है (उदाहरण के लिए, यदि मैं hash_map का सटीक वाक्यविन्यास भूल गया हूं)?

+5

प्रश्न और सभी उत्तर मुख्य आईडीई बिंदु पूरी तरह गायब हैं। लेकिन पहले मुझे गलत मत समझो: मुझे लगता है कि वहां एक भी आईडीई नहीं है (कुछ दुर्लभ लिस्प/स्कीम वाले लोगों के अलावा) जो कि इमाक्स की पेशकश के करीब कहीं भी आते हैं। ** कैसे ** आधुनिक आईडीई इस तरह की चीजें करते हैं: संभाव्य कोडिंग त्रुटियों के तुरंत हाइलाइटिंग (आंशिक गैर-संकलित एएसटी पर भी)। IntelliJ IDEA यह करता है: यदि आप उपयोग करते हैं, तो कहें, * @ NotNull * यह वास्तविक समय में संभावित उल्लंघन के बारे में आपको चेतावनी देगा। फिर पूरे * "इरादे से कोडिंग" * है: यह केवल Emacs के तहत काम नहीं करता है (अभी तक)। – SyntaxT3rr0r

+18

एक और क्षेत्र जहां अच्छा आईडीई वास्तव में चमक सकता है: प्रासंगिक कोड पूर्णता (एक बार फिर, निष्पक्ष, गैर-संगत स्रोत फ़ाइलों पर भी)। प्रासंगिक कोड पूर्णता p0wns * हिप्पी-विस्तार * किसी भी दिन की तरह यह मजेदार भी नहीं है: यह केवल Emacs को शर्मिंदा करने के लिए रखता है। एक बार फिर मैं बहुत दुखी हूं कि एएमएक्स की तुलना में आईडीई "टेक्स्ट एडिटर्स" कचरे के सस्ते, लंगड़े, बेवकूफ, दयनीय टुकड़े हैं। लेकिन बहुत से क्षेत्र में अच्छे आईडीई चमकते हैं (जैसे रिफैक्टरिंग, प्रासंगिक कोड पूर्ण करने, रीयल-टाइम चेतावनियां इत्यादि) जहां Emacs मूल रूप से कहीं भी नहीं है। मुझे कहा कि मेरे आईडीई के बीच में Emacs दें। मैं उस दिन के लिए उत्सुक हूँ। – SyntaxT3rr0r

+0

कोड ढहने के बारे में क्या? – AlwaysLearning

उत्तर

70

आपको "बाकी" के मतलब के अनुसार विशिष्ट होना होगा। वस्तु निरीक्षक के अलावा (है कि मैं "के बारे में पता हूँ), Emacs सब से ऊपर काफी आसानी से करता है:।

  • संपादक (स्पष्ट)
  • संकलक - बस M-x compile चलाने के लिए और अपने संकलन आदेश दर्ज पर वहाँ से, तुम सिर्फ M-x compile कर सकते हैं और सामान्य का प्रयोग Emacs C/C++ संकलक त्रुटियों पर कब्जा (सबसे अच्छा जीसीसी के साथ काम करता है) और आप चेतावनी या त्रुटियों के साथ लाइनों के लिए नेविगेट करने में मदद करेगा
  • डिबगिंग -।। इसी तरह, आप डिबग करना चाहते हैं, प्रकार M-x gdb और यह विशेष बाइंडिंग के साथ एक जीडीबी बफर बनाएगा
  • दस्तावेज़ीकरण लुकअप - एमएक्स के पास उत्कृष्ट सीएससी है कोड नेविगेशन के लिए ओपे बाइंडिंग्स। अन्य दस्तावेज के लिए: Emacs में एक मैनपेज रीडर भी है, और बाकी सब कुछ के लिए, वेब और किताबें हैं।
  • संस्करण नियंत्रण - वहाँ विभिन्न VCS बैकेंड Emacs बाइंडिंग के बहुत सारे (सीवीएस, SCCS, आरसीएस, SVN, GIT सब मन के लिए आते हैं) कर रहे हैं

संपादित करें: मैं प्रलेखन देखने के बारे में मेरा उत्तर वास्तव में कोड से संबंधित एहसास पथ प्रदर्शन।यहां कुछ और करने वाली सूत्री सूचना यह है:

Google खोज में कोई संदेह नहीं होगा और उदाहरण सामने आएंगे।

जैसा कि दूसरा लिंक दिखाता है, अन्य दस्तावेजों में फ़ंक्शंस (और जो कुछ भी) देख रहा है, भले ही बॉक्स से समर्थित न हो।

+3

यह "एम-एक्स संकलन" नहीं होना चाहिए? – Svante

+0

हां, एम-एक्स सही है। मेरा मतलब यही था। –

+1

मुझे लगता है कि जीएनयू ग्लोबल इन दिनों सीएससीओपी से बेहतर है: http://www.gnu.org/software/global/ –

19

शैल विंडो में मेक कमांड चलाने के बजाए, क्या आपने एम-एक्स संकलन करने की कोशिश की है? यह आपके मेक कमांड, डिस्प्ले त्रुटियों को चलाएगा, और कई मामलों में कोड की रेखा पर कूदना बहुत आसान हो जाता है जिससे आउटपुट में फाइलनाम और लाइन नंबर शामिल होते हैं।

यदि आप आईडीई के प्रशंसक हैं, तो आप Emacs 'speedbar पैकेज (एम-एक्स स्पीडबार) को भी देखना चाहेंगे। और, यदि आप पहले से नहीं हैं, तो अपने कोड को नेविगेट करने के लिए टैग टेबल का उपयोग कैसे करें इसके बारे में जानें।

7

मैं मानता हूं कि आपको एम-एक्स संकलन के बारे में जानना चाहिए (उसमें बाध्य करें और एम-एक्स अगली-त्रुटि को एक लघु कुंजी अनुक्रम में)।

संस्करण नियंत्रण (जैसे VC-diff, वीसी अगली कार्रवाई, आदि)

रजिस्टरों में देखो के लिए बाइंडिंग के बारे में जानें। आप न केवल बफर में स्थानों को याद कर सकते हैं बल्कि पूरे विंडो कॉन्फ़िगरेशन (सी-एक्स आर डब्ल्यू - विंडो-कॉन्फ़िगरेशन-टू-रजिस्टर) को याद कर सकते हैं।

29

मुझे emacs के लिए एक अधिक "पारंपरिक" आईडीई शैली पर्यावरण के रूप में Emacs Code Browser की सिफारिश करनी है।

संपादित करें: अब मैं एमएक्स में मानक वीसीएस इंटरफ़ेस पर Magit अत्यधिक अनुशंसा करता हूं।

+0

के साथ भी समर्थन को मजबूती प्रदान करता है, आपको केवल पोस्ट को संपादित करने में सक्षम होना चाहिए, आपको पर्याप्त प्रतिनिधि iirc लगता है। – baudtack

3

संकलन, अगली-त्रुटि, और पिछली त्रुटि Emacs में C++ विकास के लिए सभी महत्वपूर्ण महत्वपूर्ण आदेश हैं (grep आउटपुट पर भी बहुत अच्छा काम करता है)। Etags, विज़िट-टैग-टेबल, और खोज-टैग भी महत्वपूर्ण हैं। complet.el 20 वीं शताब्दी के महान असंगत हैक्स में से एक है, और परिमाण के क्रम से आपके सी ++ हैकिंग को तेज कर सकता है। ओह और चलो एडिफ मत भूलना।

मुझे अभी तक सीखना है कि शैल का दौरा किए बिना संस्करण नियंत्रण का उपयोग कैसे करें, लेकिन अब जब मैं दौड़ रहा हूं तो बहुत अधिक बार (गिट के साथ) मुझे शायद करना होगा।

6

Emacs की वीसी सुविधाओं की खोज के लिए एक प्रारंभिक बिंदु (जो गैर-स्पष्ट हो सकता है) एम-एक्स वीसी-अगली-क्रिया है।

यह फ़ाइल की स्थिति और वीसी बैकएंड के आधार पर वर्तमान फ़ाइल पर "अगला लॉजिकल संस्करण नियंत्रण ऑपरेशन" करता है। इसलिए यदि फ़ाइल संस्करण नियंत्रण में नहीं है, तो यह फ़ाइल पंजीकृत है, अगर फ़ाइल बदल दी गई है, तो परिवर्तन सबमिट किए गए हैं।

इसमें थोड़ा सा उपयोग होता है, लेकिन मुझे यह बहुत उपयोगी लगता है।

डिफ़ॉल्ट की बाइंडिंग संस्करण नियंत्रण के लिए सी-एक्स वी वी

8

है, वहाँ कई चीजें है कि आप उपयोग कर सकते हैं क्या संस्करण नियंत्रण प्रणाली आप उपयोग के आधार पर कर रहे हैं। लेकिन उनमें से कुछ कार्यक्षमता उन सभी के लिए आम है।

vc.el फ़ाइल स्तर पर संस्करण नियंत्रण को संभालने का अंतर्निहित तरीका है। यह अधिकांश संस्करण नियंत्रण प्रणाली के लिए बैकएंड है। उदाहरण के लिए, सबवर्जन बैकएंड Emacs के साथ आता है, और अन्य स्रोतों से उपलब्ध गिट बैकएंड और अन्य हैं।

सबसे उपयोगी आदेश सी-एक्स वी वी (वीसी-अगली-क्रिया) है जो आपके द्वारा देखी जा रही फ़ाइल के लिए उपयुक्त अगली कार्रवाई करता है। इसका मतलब भंडार से अद्यतन करना या आपके परिवर्तनों को कम करना, vc।एल भी सी-एक्स सी-क्यू को फाइलों की जांच और आउट करने के लिए पुनर्निर्मित करता है यदि आप उस सिस्टम का उपयोग कर रहे हैं जिसकी आवश्यकता है (जैसे आरसीएस)।

अन्य बहुत उपयोगी आदेशों सी-एक्स वी एल और सी-एक्स वी = कि आप फ़ाइल आप उपयोग कर रहे के लिए लॉग और वर्तमान diff दिखाते हैं।

लेकिन वास्तविक उत्पादकता के लिए, आपको सरल चीजों के अलावा एकल-फ़ाइल vc.el आदेशों का उपयोग करने से बचना चाहिए। ऐसे कई पैकेज हैं जो आपको अपने पूरे पेड़ की स्थिति का अवलोकन दे सकते हैं, और आपको अधिक शक्ति प्रदान कर सकते हैं, और कई फाइलों को फैले सुसंगत काम करने की क्षमता का उल्लेख नहीं कर सकते हैं।

इनमें से अधिकांश भारी सीवीएस के लिए प्रभावित या/pcvs मूल PCL-सीवीएस पर आधारित हैं। उनमें से दो भी हैं जो उपversण के साथ आता है, psvn.el और dsvn.el। गिट इत्यादि के लिए पैकेज हैं

10

आप & संस्करण नियंत्रण एकीकरण my site पर विस्तृत विवरण प्राप्त कर सकते हैं। मैं एएमएक्स को कई भाषाओं के लिए विकास पर्यावरण के रूप में उपयोग करने के बारे में लेख पर भी काम कर रहा हूं - सी/सी ++, जावा, पर्ल, लिस्प/स्कीम, एरलांग, आदि ...

15

एमएक्स के कोने हैं जो एक बार आपको और अधिक खोजते हैं उन तरीकों से उत्पादक जिनके बारे में आपने कभी सोचा नहीं। जैसा कि अन्य लोगों ने उल्लेख किया है, टैग का उपयोग करना आपके स्रोत कोड के चारों ओर ज़ूम करने के लिए एक शानदार और तेज़ तरीका है और एम-/ (डैब्रेब-विस्तार) का उपयोग करके अक्सर एक वैरिएबल नाम पूरा करते समय आप अपेक्षा करते हैं।

एक प्रयोग बफर में नियमित अभिव्यक्ति के सभी अवसरों के साथ बफर प्राप्त करने के लिए उपयोगी होता है। यह कोड वास्तव में आसान है जब कोड को पुन: संसाधित करता है और कोड के टुकड़े या चर के उपयोग की तलाश करता है, या यदि आप अपनी स्रोत फ़ाइलों में TODO मार्कर का उपयोग करते हैं और आप उन सभी पर जाना चाहते हैं।

फ्लश-लाइन, सॉर्ट-न्यूमेरिक-फ़ील्ड, प्रतिस्थापन-रेगेक्सपी और आयताकार फ़ंक्शंस कुछ टूल से डंप लेने और इसे एक elisp प्रोग्राम या अल्पविराम सीमांकित स्प्रेडशीट जैसे उपयोगी डेटा में बदलने के लिए वास्तव में उपयोगी हो सकते हैं।

मैं चीजों की तरह आईडीई के बारे में पेज ने लिखा आप Emacs

http://justinsboringpage.blogspot.com/2007/09/11-visual-studio-tricks-in-emacs.html

साथ कर सकते हैं सीखना elisp एक और शानदार तरीका अपने आप के लिए जवाब देने के लिए और क्या Emacs एक विशिष्ट आईडीई क्या कर सकते हैं परे कर सकते हैं।

उदाहरण के लिए मैं दोष की तरह लाज़िमी सहायक कार्यों लेखन के बारे में ब्लॉग है (अपने खुद के लेखन में आप इसे ऐसे व्यवहार करते हैं जैसा कि आप चाहते हैं कर सकते हैं इसका मतलब है) ...

http://justinsboringpage.blogspot.com/2009/01/who-changed-line-your-working-on-last.html

मैं भी कोड लिखा है जो गतिशील रूप से बिंदु पर एक फ़ंक्शन के लिए टिप्पणियां बनाता है, जो कोडिंग मानकों से मेल खाता है जिनके साथ मैं काम कर रहा हूं।

मेरे elisp कोड में से कोई भी विशेष रूप से महान नहीं है, और इसमें से अधिकांश पुस्तकालयों में पहले से मौजूद है, लेकिन यह वास्तव में उपयोगी है कि emacs एक कस्टम काम करने के लिए सक्षम हो जो कामकाजी दिन के दौरान आता है।

2

प्रलेखन लुकअप पर: यह आपकी प्रोग्रामिंग भाषा पर निर्भर करता है।

सी पुस्तकालयों और सिस्टम कॉल आम तौर पर मैन पेजों में प्रलेखित होते हैं।इसके लिए आप M-x man का उपयोग कर सकते हैं। जानकारी पृष्ठों में कुछ चीजों को बेहतर तरीके से दस्तावेज किया जा सकता है; M-x info का उपयोग करें।

elisp के लिए, C-h f का उपयोग करें। पायथन के लिए, दुभाषिया में >>> help(<function, class, module>) का उपयोग करें।

मुझे लगता है कि अधिकांश अन्य भाषाएं HTML फॉर्म में प्रलेखन प्रदान करती हैं। इसके लिए, एक एम्बेडेड ब्राउज़र आज़माएं (मैं w3m का उपयोग करता हूं)। यदि कोई ब्राउज़र ब्राउज़र खोल सकता है और आप इसे emacs के अंदर खोला चाहते हैं, तो पर्यावरण चर को emacsclient -e "(w3m-goto-url-new-session \"[email protected]\")" (ऑन * निक्स) के आसपास एक रैपर स्क्रिप्ट पर सेट करें।

3

आपको tabbar उपयोगी भी मिल सकता है। यह ग्रहण से लेकर इमाक्स तक जाने पर एकमात्र व्यवहार को याद करता है। बाउंड टू "," और "।" पिछले और अगले टैब बार पर जाने के लिए, यह आपको बफर को हर समय Ctrl-x b द्वारा स्विच करने से रोकता है।

दुर्भाग्यवश, उल्लिखित वेब पेज डाउनलोड करने के लिए सही संस्करण प्रदान नहीं करता है। अधिकांश उबंटू संस्करण, हालांकि, इसे अपने इमैक-गुड्स पैकेज में वितरित करते हैं।

+1

कूल, मैं टैबबार का एक नया संस्करण पाने के लिए एक रास्ता तलाश रहा था। उन लोगों के लिए जो उबंटू पर नहीं हैं, आप इसे यहां पा सकते हैं। http://packages.ubuntu.com/karmic/emacs-goodies-el – Ibrahim

4

TFS.el for emacs integration into Microsoft TFS है। यह किसी भी टीएफएस के साथ काम करता है, जिसमें टीएफएस शामिल है जो Codeplex.com चलाता है। सेटअप करने के लिए

बेसिक चरण: अपनी लोड पथ में

  1. प्लेस tfs.el।

  2. अपने .emacs में दायर:

    (require 'tfs) 
    (setq tfs/tf-exe "c:\\vs2008\\common7\\ide\\tf.exe") 
    (setq tfs/login "/login:domain\\userid,password") 
         -or- 
    (setq tfs/login (getenv "TFSLOGIN")) ;; if you have this set 
    
  3. भी अपने .emacs फ़ाइल में

    , सेट TFS आदेश के लिए स्थानीय या वैश्विक कुंजी बाइंडिंग। इसलिए जैसे:

    (global-set-key "\C-xvo" 'tfs/checkout) 
    (global-set-key "\C-xvi" 'tfs/checkin) 
    (global-set-key "\C-xvp" 'tfs/properties) 
    (global-set-key "\C-xvr" 'tfs/rename) 
    (global-set-key "\C-xvg" 'tfs/get) 
    (global-set-key "\C-xvh" 'tfs/history) 
    (global-set-key "\C-xvu" 'tfs/undo) 
    (global-set-key "\C-xvd" 'tfs/diff) 
    (global-set-key "\C-xv-" 'tfs/delete) 
    (global-set-key "\C-xv+" 'tfs/add) 
    (global-set-key "\C-xvs" 'tfs/status) 
    (global-set-key "\C-xva" 'tfs/annotate) 
    (global-set-key "\C-xvw" 'tfs/workitem) 
    
+0

उम ... क्या यह गंभीरता से आपके .emacs फ़ाइल में सादे टेक्स्ट में अपना पासवर्ड डालने की वकालत कर रहा है? –

+0

@ टी.ई.डी. - नहीं, बस एक उदाहरण है। रहस्य कहीं और एक elisp से पढ़ा जाना चाहिए। – Cheeso

3

मैं विंडोज पर Emacs का उपयोग करें। संकलन मॉड्यूल अच्छा है, लेकिन मैं संकलित कमांड लाइन के बारे में समझदार बनना चाहता हूं जो यह सुझाता है। It's possible to use "File Variables" to specify compile-command, लेकिन मैं उससे थोड़ा अधिक चालाक चाहता था। इसलिए मैंने मदद करने के लिए एक छोटा सा काम लिखा। यह compile चलाते समय उपयोगकर्ता को संकेत देने के लिए, संकलन आदेश का उपयोग करने का अनुमान लगाता है।

अनुमान फ़ंक्शन एक vbproj या csproj या sln फ़ाइल की तलाश करता है, और यदि पाया जाता है, तो यह msbuild का सुझाव देता है। फिर यह बफर फ़ाइल नाम को देखता है, और इसके आधार पर, विभिन्न चीजों का सुझाव देता है। ए। डब्ल्यूएक्स फ़ाइल का मतलब है कि यह एक WIX प्रोजेक्ट है, और आप शायद एमएसआई बनाना चाहते हैं, इसलिए अनुमान तर्क एमएसआई के लिए एनएमके कमांड का सुझाव देता है। यदि यह जावास्क्रिप्ट मॉड्यूल है, तो सुझाव है कि .js फ़ाइल को lint करने के लिए jslint-for-wsh.js को चलाने के लिए सुझाव है। फॉलबैक के रूप में, यह nmake सुझाव देता है।

कोड का उपयोग मैं इस तरह दिखता है:

(defun cheeso-guess-compile-command() 
    "set `compile-command' intelligently depending on the 
current buffer, or the contents of the current directory." 
    (interactive) 
    (set (make-local-variable 'compile-command) 
     (cond 
     ((or (file-expand-wildcards "*.csproj" t) 
      (file-expand-wildcards "*.vcproj" t) 
      (file-expand-wildcards "*.vbproj" t) 
      (file-expand-wildcards "*.shfbproj" t) 
      (file-expand-wildcards "*.sln" t)) 
     "msbuild ") 

     ;; sometimes, not sure why, the buffer-file-name is 
     ;; not set. Can use it only if set. 
     (buffer-file-name 
     (let ((filename (file-name-nondirectory buffer-file-name))) 
      (cond 

      ;; editing a .wxs (WIX Soluition) file 
      ((string-equal (substring buffer-file-name -4) ".wxs") 
      (concat "nmake " 
        ;; (substring buffer-file-name 0 -4) ;; includes full path 
        (file-name-sans-extension filename) 
        ".msi")) 

      ;; a javascript file - run jslint 
      ((string-equal (substring buffer-file-name -3) ".js") 
      (concat (getenv "windir") 
        "\\system32\\cscript.exe c:\\users\\cheeso\\bin\\jslint-for-wsh.js " 
        filename)) 

      ;; something else - do a typical .exe build 
      (t 
      (concat "nmake " 
        (file-name-sans-extension filename) 
        ".exe"))))) 
     (t 
     "nmake ")))) 


(defun cheeso-invoke-compile-interactively() 
    "fn to wrap the `compile' function. This simply 
checks to see if `compile-command' has been previously set, and 
if not, invokes `cheeso-guess-compile-command' to set the value. 
Then it invokes the `compile' function, interactively." 
    (interactive) 
    (cond 
    ((not (boundp 'cheeso-local-compile-command-has-been-set)) 
    (cheeso-guess-compile-command) 
    (set (make-local-variable 'cheeso-local-compile-command-has-been-set) t))) 
    ;; local compile command has now been set 
    (call-interactively 'compile)) 

;; in lieu of binding to `compile', bind to my monkeypatched function 
(global-set-key "\C-x\C-e" 'cheeso-invoke-compile-interactively) 

मैं के रूप में यह कर की कोशिश की संकलन समारोह के लिए "सलाह से पहले" लेकिन यह संतोषजनक ढंग से काम करने के लिए नहीं मिल सका। तो मैंने एक नया फ़ंक्शन परिभाषित किया और उसी कुंजीस्ट्रोक संयोजन को बाध्य किया जो मैं compile के लिए उपयोग कर रहा हूं।


संपादित वहाँ अब "smarter-compile.el" जो इस विचार एक कदम आगे ले जाता है।

7

ठीक है, यहां हर कोई इमैक को एक महान आईडीई बनाने के लिए सही संकेत दे रहा है।

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

इस पर काम करने के लिए, मैं server mode में emacs का उपयोग करने की अत्यधिक अनुशंसा करता हूं।

यह उपयोग करने में बहुत आसान है, आपकी init फ़ाइल को कस्टमाइज़ करने की कोई आवश्यकता नहीं है। आपको केवल डेमॉन मोड में emacs शुरू करने की आवश्यकता है;

emacs --daemon 

यह एक emacs सर्वर बनाएगा, फिर आप टर्मिनल से या गुई से कनेक्ट कर सकते हैं। मैं कॉल करने में आसान बनाने के लिए कुछ उपनाम बनाने की भी सिफारिश करता हूं।

alias ec="emacsclient -t" 
alias ecc="emacsclient -c &" 
# some people also prefer this but no need to fight here; 
alias vi="emacsclient -t" 

इस तरह, emacs जीएडिट, वादे से भी तेज हो जाएगा।

यदि आप अपने आकस्मिक उपयोगकर्ता से Emacs डिमन चला रहे हैं, तो संभवत: यहां एक संभावित समस्या है, तो आप शायद emacs सर्वर को root के रूप में कनेक्ट नहीं कर सकते हैं।

तो, यदि आपको उस फ़ाइल को खोलने की आवश्यकता है जिसमें रूट पहुंच है; इसके बजाय tramp का उपयोग करें। बस अपने Emacs क्लाइंट को अपने सामान्य उपयोगकर्ता के साथ चलाएं और इस तरह की फाइलें खोलें;

C-x C-f 
/sudo:[email protected]/some/file/that/has/root/access/permissions 
# on some linux distro it might be `/su:[email protected]` 

यह मेरे जीवन आसान है, मैं अपने भारी अनुकूलित अजगर आईडीई मिलीसेकंड में इस तरह से खोल सकते हैं बनाया है। आप अपने सिस्टम स्टार्टअप में emacs --daemon भी जोड़ना चाहते हैं, या emacsclient के लिए डेस्कटॉप फ़ाइल बना सकते हैं। यह आप पर निर्भर है।

emacs डेमॉन और emacs क्लाइंट पर अधिक विकी पर पाया जा सकता है;

http://www.emacswiki.org/emacs/EmacsAsDaemon

http://www.emacswiki.org/emacs/EmacsClient

+0

मुझे पता है कि यह पांच साल बाद है, लेकिन मैं उस समय भी इसका उपयोग कर रहा था: यदि आप 'EDITOR = "emacsclient -t" VISUAL = "emacsclient -c" सेट करते हैं, तो आप' सूडो-आधारित संपादन 'सुडो- ई' या 'सुडोएडिट', जो कभी-कभी TRAMP (आमतौर पर ऑडिट कारणों के लिए) का उपयोग करने के लिए बेहतर होता है। आप emacsclient को '--alternate-editor = '(* ज़रूरत * अंत में स्थान) के साथ भी बुला सकते हैं और यदि यह नहीं चल रहा है तो यह डिमन शुरू कर देगा, जो सिस्टम स्टार्टअप में डेमॉन डालने की आवश्यकता को समाप्त करता है यदि आप' प्रत्येक बूट पर संपादक चलाने के लिए * पहले * समय के लिए प्रतीक्षा करने के लिए तैयार रहें। – Darael

1

हाल के वर्षों में बजना Emacs सी ++ समर्थन का एक महत्वपूर्ण हिस्सा बन गया।

  • कूद परिभाषा
  • ऑटो पूरा होने
  • पर करने के लिए: "Emacs as a C++ IDE"

    वह 16 मिनट बात करते हैं, जहां वह निम्नलिखित विषयों के लिए समाधान से पता चलता है: Atila नेवेस CppCon 2015 को एक बात की थी -इस मक्खी परियोजना में

  • ढूँढें फ़ाइल पर प्रकाश डाला वाक्य रचना

Sli des here पाया जा सकता है।

0

यूनिक्स या एक्स विंडोज़ शैली में, मुझे नहीं पता कि एक एकीकृत आईडीई है जो सबकुछ के लिए काम करती है।

डीबगर्स के साथ बातचीत करने के लिए, आईडीई के केवल एक घटक, realgud पर विचार करें।दूसरी बात यह है कि मुझे उपयोगी लगता है कि स्थान संदेशों के लिए पार्सर्स हैं, ताकि यदि आपके पास कॉल स्टैक ट्रेस है और कॉलस्टैक में किसी विशेष स्थान पर संपादित करना चाहते हैं, तो यह फ्रंट-एंड इंटरफ़ेस ऐसा कर सकता है।

अब तक इस कार्यक्रम में सुधार का उपयोग किया जा सकता है। लेकिन फिर यह इसे सुधारने के लिए काम करने वाले लोगों का भी उपयोग कर सकता है।

अस्वीकरण: मैं रीयलगुड पर काम करता हूं