Emacs और Vim के बीच मतभेद




editor (18)

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

  2. उसके बाद, अन्य व्यावहारिक अंतर Emacs मोड था। एक्सएमएल, सी / सी ++ / जावा / जो कुछ भी, लाटेक्स, और सबसे लोकप्रिय भाषाओं को संपादित करते समय वे आपके जीवन को काफी आसान बनाते हैं। वे आपको लंबे सत्र और काम के लिए संपादक को खोलना चाहते हैं।

सब कुछ, मैं कहूंगा कि विम आपको छोटे, तेज़ संपादन कार्यों के लिए खींचता है; जबकि Emacs आपको लंबे सत्र के लिए गोता लगाने के लिए प्रोत्साहित करता है।

एक धार्मिक तर्क में शामिल होने के बारे में कि क्यों एक दूसरे से बेहतर है, Emacs और Vim के बीच व्यावहारिक अंतर क्या हैं? मैं एक या दूसरे को सीखना चाहता हूं, लेकिन मुझे एहसास है कि प्रत्येक के लिए सीखने की अवस्था ऊंची है और मैं फैसला नहीं कर सकता। मैंने कभी इस प्रकार के एक संपादक का उपयोग नहीं किया है (मैंने हमेशा आईडीई का उपयोग किया है), इसलिए कोई भी जो नौसिखिया की मदद करता है वह एक प्लस है।

लौ युद्ध शुरू होने से पहले: मैं नहीं पूछ रहा हूं कि कौन सा बेहतर है, मैं दोनों के बीच मतभेद पूछ रहा हूं। मुझे एक उद्देश्य तुलना चाहिए।


Emacs में वाइपर-मोड है, इसलिए कुछ वास्तविक अर्थों में, यह सुविधाओं का एक सुपरसेट प्रदान करता है ( विपर और विंपुलसे के साथ Emacs में व्हाट विम सुविधाओं में वर्णित लोगों को छोड़कर)।

vi (और वीआईएम आईआईआरसी) हल्का वजन है (यह फाइलों को जगह में संपादित कर सकता है), लेकिन कम सुविधाओं (उपप्रोसेसर संचार, विस्तार भाषा) प्रदान करता है।


एक जबरदस्त दृष्टिकोण:

vi (vim नहीं) एक पेशेवर आवश्यकता है। आपके पास हमेशा कुछ प्रकार का वीआई आसानी से उपलब्ध होता है, इससे कोई फर्क नहीं पड़ता कि पर्यावरण क्या है। जब आप emacs में हो, तो आप vi में हो सकते हैं, आप यूनिक्स-भूमि में बैश कमांड बनाने के लिए vi में हो सकते हैं।

यहां तक ​​कि माइक्रोस्कोश को vi का समर्थन करना है (हालांकि वे इसे छिपाने का अच्छा काम करते हैं) क्योंकि प्रकाशित मानकों के साथ कॉर्पोरेट और कॉर्पोरेट अनुपालन।

मेरी राय में, यदि आप एक व्यस्त वातावरण में हाथ से काम कर रहे हैं - एक विकास वातावरण में या एक अकादमिक क्षेत्र में एक फैंसी रिग तक सीमित नहीं है - एक फैंसी संपादक के बारे में बहुत कुछ जानना एक नौकरी विकलांग है। विम या एमएक्स में सभी फैंसी चालें न सीखें, और संपादन वातावरण को अपनी इच्छानुसार मोड़ने के लिए मैक्रोज़ का एक गुच्छा विकसित न करें। It's an enormous time sink that gets in your way when you attend to different machines that you probably can't justify in a factory environment.

Read Bill Joy's paper--it is a very competent, perhaps even beautiful, engineering exercise in editing plain text very, very fast. Parito's rule applies here: 80% of the fruit is in 20% of the baskets. Editing plain text very very fast is the crux of editing competence--all else is optional--and sometimes hurtful.


ऐसा लगता है कि एक उत्तर पहले से ही चुना गया है, लेकिन मेरे लिए बड़ा अंतर हमेशा मोडल बनाम गैर-मोडल रहा है। विम मोडल है, जिसका अर्थ यह है कि यह उपयोग मोड के एक विशिष्ट सेट के आधार पर अनुकूलन करता है। कम से कम इस तरह मैंने इसे हमेशा देखा है। यह विम को एक अलग अनुभव का उपयोग करता है क्योंकि आपके द्वारा कोड टाइप करने वाले कार्य क्षेत्र के बजाय, आप वाकई टेक्स्ट पर कार्य करने के लिए पर्यावरण कह रहे हैं। यही कारण है कि लोग विम के साथ चीजें कहते हैं कि आप वास्तव में एक भाषा सीख रहे हैं। : Wq और: s / foo / bar एक ऐसे शैल का हिस्सा है जो पर्यावरण को संपादित करता है और पाठ को पढ़ता है।

दूसरी ओर Emacs अधिकांश संपादकों / शब्द प्रोसेसर / आदि के करीब है। आप आज देखते हैं। आपके पास एक वर्कस्पेस है जिसमें अत्यधिक प्रोग्राम करने योग्य इंटरफ़ेस है। यही कारण है कि आप ईमेल, आईआरसी, गोले इत्यादि जैसी चीजें देखते हैं। प्रोग्रामर के रूप में यह कहने में आसान है कि "मैं जिस लाइन नंबर पर हूं और जानकारी के साथ कुछ करें"। संपादक छोड़ने की इच्छा कम हो जाती है क्योंकि छोड़ने की बजाय, कुछ अन्य ऐप / भाषा खोलें और कुछ पाठों पर चीजें करें, आपके पास एमाक्स हैं जहां आप इन चीजों को अपने संपादक के दायरे में कर सकते हैं।

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


दिन-दर-दिन स्तर पर एक बड़ा अंतर होता है - Vim (या कोई भी vi संस्करण) मूल रूप से मोडल होता है (आप कमांड मोड में जाते हैं जहां आप संपादित नहीं कर सकते हैं) और Emacs (अधिकांश अन्य संपादकों के साथ) नहीं हैं।

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

व्यक्तिगत रूप से, मुझे यह भी लगता है कि Emacs अधिक एक्स्टेंसिबल है। आप कई चीजों के लिए Elisp पैकेज पा सकते हैं।

मैं उत्सुक हूं, हालांकि, आप इनमें से एक को अधिक पारंपरिक आईडीई पर क्यों सीखना चाहते हैं। आप इनमें से एक को सीखना चाहते हैं?


दोनों संपादकों के बारे में बहुत कुछ कहा गया है, लेकिन मेरे पास सिर्फ 5 पेंस जोड़ने के लिए है। दोनों संपादक अद्भुत हैं और आप उनमें से किसी के साथ गलत नहीं जा सकते हैं।

मैं लगभग 15 वर्षों के लिए एक vi / vim उपयोगकर्ता हूँ। मैंने कई बार emacs में परिवर्तित करने की कोशिश की है, लेकिन हर बार यह खोज रहा था कि वास्तव में एक लापरवाही विस्तार लिखने या कुछ स्थापित करने की आवश्यकता के बिना बॉक्स के बाहर लापता चीज कर सकते हैं।

मेरे लिए संपादकों में मुख्य अंतर जो आपको पर्यावरण / ओएस का उपयोग करता है, जबकि emacs इसे encapsulate करने या इसे बदलने की कोशिश करता है। उदाहरण के लिए आप सामग्री में हेक्स संस्करण के साथ: bu! Cal 1 2014, या यहां तक ​​कि बफर की सामग्री को प्रतिस्थापित कर सकते हैं: v! तिथि में vim, या कैलेंडर के साथ कैलेंडर में एक तिथि जोड़ सकते हैं। उदाहरण के लिए। :%! xxd, हेक्स संपादित करें और उसके बाद वापस जाएं:%! xxd -r, और कई अन्य उपयोग, जैसे बिल्टिन grep, sed, आदि

आपको EX बैच संपादन कार्यक्षमता भी मिलती है, उदाहरण के लिए। कुछ शब्दों को बदलना, कोड को दोबारा बदलना, डॉस-> यूनिक्स न्यूलाइन अक्षरों को परिवर्तित करना, एक समय में 100 फाइलों पर एक मैक्रो चलाएं। यह पूर्व के साथ आसानी से किया जाता है। मुझे यकीन नहीं है कि अगर emacs के समान कुछ है।

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

वीआई के अलावा किसी भी यूनिक्स / लिनक्स सिस्टम पर मानक डिफैक्टो मानक है, क्यों एक ही चीज करने वाले 2 टूल्स का उपयोग करना सीखें। बेशक कुछ सिस्टम एमजी या कुछ समान ऑफर करते हैं, लेकिन निश्चित रूप से उनमें से सभी नहीं। यूनिक्स + वीआई <3।

खैर, बस मेरी 5 पेंस।


मेरे लिए, emacs के बेहतर विकास उपकरण हैं (न केवल टैग आधारित उपकरण)।

  • Cedet (सी / सी ++)
  • Xrefactory (सी / सी ++ / जावा)
  • Slime (सामान्य लिस्प)
  • JDEE (जावा)
  • ECB (कोड ब्राउज़र)
  • जीडीबी समर्थन
  • NXML (एक्सएमएल)

मैं एक पूर्ण उड़ा हुआ Emacs प्रशंसक लड़का हूँ, लेकिन मैं Emacs पता था इससे पहले मैं VI VI जानता था। उस ने कहा, मैं अपने सभी लोगों को छठी सीखता हूं क्योंकि यह हमेशा उपलब्ध है, हर जगह। उनमें से किसी एक के साथ गलत नहीं जा सकता है।


मैं वी के साथ शुरू किया, emacs के लिए चला गया, फिर vim करने के लिए। मैं पिछले पांच सालों में क्या बदल रहा है यह देखने के लिए Emacs को आजमाने की कोशिश कर रहा हूं। (आईडीई के बारे में बात करते हुए, मुझे थोड़ी देर के लिए ग्रहण में मिला था, लेकिन मैं अपने मैक को अपने (पति के) लिनक्स बॉक्स में जोड़ने वाली टर्मिनल विंडो पसंद करता हूं)।

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

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

मुझे लगता है कि यदि आप फैंसी सामान की परवाह नहीं करते हैं तो फ़ाइल को सहेजने के लिए आप इसका उपयोग करना चाहते हैं :wq या Ctrl-x Ctrl-s (IIRC)।

@ एमजीबी सही था। मैं डेबियन डिस्ट्रो में सिर्फ एक महीने या दो महीने पहले कुछ ठीक करने के लिए न्यूनतम न्यूनतम लिनक्स में रहा हूं। vi एकमात्र संपादक उपलब्ध था।


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

यहां Emacs टाइमलाइन का एक लिंक है और इसमें मल्टीक्स इमाक्स पेपर का संदर्भ है। इमाक्स पर आरआईएस पेपर, जहां मुझे तनाव दिखाई देता है, एक प्रोग्राम करने योग्य टेक्स्ट एडिटर (यहां तक ​​कि 1 9 81 और उससे पहले भी वापस) पर है।

मैंने Emacs कागजात नहीं पढ़े हैं, लेकिन बिल जॉय के वीआई पेपर को दो बार पढ़ा है। दोनों पुराने हैं, लेकिन फिर भी आपको दर्शन मिलेगा और आप वर्तमान उपकरण का उपयोग करना चुन सकते हैं (vim 7.x या emacs 25?)

संपादित करें: मैं यह उल्लेख करना भूल गया था कि इन दोनों कागजात को पढ़ने के लिए धैर्य और कल्पना होती है क्योंकि यह आपको पढ़ने के दौरान समय पर वापस ले जाती है। लेकिन यह लायक है।


विम पर emacs का उपयोग करने के लिए चुनने में मेरे लिए सबसे बड़ा अंतर emacs में जीडीबी समर्थन में बनाया गया था। विम में इसे इसके डिफ़ॉल्ट वितरण में शामिल नहीं किया गया है और जीडीबी और वीम को एकीकृत करने के लिए परियोजना मैकवीम के साथ काम करना लगभग असंभव था


(नीचे दिया गया पाठ मेरी राय है, इसे तथ्य या अपमान के रूप में नहीं लिया जाना चाहिए)

Emacs के साथ आप इसे 24/7 खोलने और कार्यक्रम के अंदर रहने की उम्मीद कर रहे हैं, लगभग हर चीज आप वहां से की जा सकती है। आप अपने स्वयं के एक्सटेंशन लिखते हैं, इसे नोट-ले, संगठन, गेम्स, प्रोग्रामिंग, शैल एक्सेस, फ़ाइल एक्सेस, संगीत सुनना, वेब ब्राउजिंग के लिए इस्तेमाल करते हैं। इसमें सप्ताह और सप्ताह लगते हैं जब तक कि आप इससे खुश न हों और फिर आप हर समय नई सामग्री सीखेंगे। जब आप इसका उपयोग नहीं करते हैं और लगातार अपनी कॉन्फ़िगरेशन बदलते हैं तो आप नाराज होंगे। आप आसानी से अन्य लोगों के emacs संस्करणों का उपयोग करने में सक्षम नहीं होंगे और यह सिर्फ स्थापित नहीं किया जाएगा। यह लिस्प का उपयोग करता है, जो बहुत अच्छा है। आप इसे किसी भी चीज में बना सकते हैं जिसे आप चाहते हैं। (कुछ भी)

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

भले ही मैं हर दिन Emacs का उपयोग करता हूं (और इसे प्यार करता हूं) जब तक कि आप अपने द्वारा चुने गए कार्यक्रम में बहुत समय बिताना नहीं चाहते हैं, मैं विम चुनूंगा


Emacs के लाभ

  • Emacs में गैर-मोडल इंटरफेस (डिफ़ॉल्ट रूप से) और मोडल दोनों होते हैं (उदाहरण के लिए यह एविल, वाइपर, या विंपुलसे के माध्यम से vim और vi अनुकरण कर सकते हैं)।

  • सबसे पोर्टेड कंप्यूटर प्रोग्रामों में से एक। यह यूनिक्स जैसी प्रणालियों (लिनक्स, विभिन्न बीएसडी, सोलारिस, एईक्स, आईआरईएक्स, मैकोजेटक), एमएस-डॉस, माइक्रोसॉफ्ट विंडोज, अमीगाओएस सहित विभिन्न प्रकार के ऑपरेटिंग सिस्टम पर टेक्स्ट मोड में और ग्राफिकल यूजर इंटरफेस के तहत चलता है। और ओपनवीएमएस। यूनिक्स सिस्टम, दोनों स्वतंत्र और मालिकाना, अक्सर ऑपरेटिंग सिस्टम के साथ बंडल किए गए Emacs प्रदान करते हैं।

  • Emacs सर्वर आर्किटेक्चर कई क्लाइंट को एक ही Emacs उदाहरण से अटैच करने और बफर सूची साझा करने, अंगूठी को मारने, इतिहास पूर्ववत करने और अन्य राज्य को साझा करने की अनुमति देता है।

  • फ्लाई पर प्रलेखित कीबाइंडिंग्स, फ़ंक्शंस और कमांड के साथ व्यापक ऑनलाइन सहायता प्रणाली।

  • विस्तारणीय और अनुकूलन योग्य लिस्प प्रोग्रामिंग भाषा संस्करण (Emacs Lisp), सुविधाओं के साथ जिसमें शामिल हैं:

  • एक शक्तिशाली और एक्स्टेंसिबल फ़ाइल मैनेजर (डायर), एकीकृत डीबगर, और विकास और अन्य उपकरणों का एक बड़ा सेट।

  • प्रत्येक कमांड होने के बाद Emacs Lisp फ़ंक्शन प्रोग्राम को पिछले क्रियाओं और दस्तावेज़ स्थिति का जवाब देकर DWIM (Do What I Mean) को आदेश सक्षम करता है। उदाहरण के लिए, एक स्विच-या-स्प्लिट-विंडो कमांड किसी अन्य विंडो पर स्विच हो सकता है यदि कोई मौजूद है, या यदि आवश्यक हो तो उसे बनाएं। यह कीस्ट्रोक और कमांड की संख्या पर कटौती करता है जिसे उपयोगकर्ता को याद रखना चाहिए।

  • "ओएस के अंदर एक ओएस"। Emacs Lisp Emacs को संपादन सुविधाओं से बहुत दूर प्रोग्राम करने में सक्षम बनाता है। यहां तक ​​कि बेस इंस्टॉल में कई दर्जन एप्लिकेशन शामिल हैं, जिनमें दो वेब ब्राउज़र, समाचार पाठक, कई मेल एजेंट, चार आईआरसी क्लाइंट, एलिज़ा का एक संस्करण और विभिन्न प्रकार के गेम शामिल हैं। इन सभी एप्लिकेशन एक ही उपयोगकर्ता इंटरफ़ेस और कार्यक्षमता के साथ कहीं भी Emacs चलाए जाते हैं। संस्करण 24 के साथ, Emacs में एक पैकेज प्रबंधक शामिल है, जिससे वैकल्पिक वेब ब्राउज़र, ईएमएमएस (Emacs मल्टीमीडिया सिस्टम), आदि सहित अतिरिक्त एप्लिकेशन इंस्टॉल करना आसान हो जाता है। प्रोग्रामिंग के लिए कई पैकेज भी उपलब्ध हैं, जिनमें कुछ विशिष्ट भाषा / पुस्तकालय संयोजन या कोडिंग शैलियों पर लक्षित हैं।

Vi- जैसे संपादकों के लाभ

  • आदेश संपादित करें composable हैं
  • वी में एक मोडल इंटरफ़ेस है (जो Emacs अनुकरण कर सकते हैं)
  • ऐतिहासिक रूप से, vi Emacs से तेज़ लोड करता है।
  • यूनिक्स परंपरा के साथ गहराई से जुड़े हुए, यह उन सभी प्रणालियों पर चलता है जो मानक सी लाइब्रेरी को लागू कर सकते हैं, जिसमें यूनिक्स, लिनक्स, अमीगास, डॉस, विंडोज, मैक, बीओओएस, ओपनवीएमएस, आईआरईएक्स, एआईक्स, एचपी-यूएक्स, बीएसडी और पॉज़िक्स-अनुरूप सिस्टम।
  • पायथन, रूबी, पर्ल और लुआ जैसे व्याख्या की गई भाषाओं के लिए विम स्क्रिप्ट या एपीआई के माध्यम से एक्स्टेंसिबल और कस्टमाइज़ेबल
  • सर्वव्यापी। अनिवार्य रूप से सभी यूनिक्स और यूनिक्स-जैसे सिस्टम अंतर्निहित vi (या एक संस्करण) के साथ आते हैं। वीआई (और पूर्व, लेकिन vim नहीं) POSIX मानक में निर्दिष्ट है।
  • सिस्टम बचाव वातावरण, एम्बेडेड सिस्टम (विशेष रूप से व्यस्त बॉक्स वाले) और अन्य बाधित वातावरण में अक्सर वी शामिल होते हैं, लेकिन emacs नहीं।

स्रोत: https://en.wikipedia.org/wiki/Editor_war


vim is a handy editor, you simple type vim filename to open the file, edit, save and close.

emacs is an "operating system" pretend to be an editor, you can eval code to change its behavior, and extend it as you like. A mode to receive/send email on emacs is like an email software on operating system.

When doing simple editing, for example, modify a config file, I use vim .

Otherwise, I never leave emacs .


Firstly Vi (original realization) not used today. That you say is some Vim derivation.

To extend Vim functionality you must recompile Vim, Emacs not.

Emacs has Vim in self (viper-mode).

Emacs usually need manually installation, Vim typically preinstalled on all Unix like OS (but if you have ssh access to host tramp-mode win Vim :).

If you try Vim you hate Emacs, so start from Emacs first.

Also read http://www.dina.dk/~abraham/religion/vi-tutorial.html (link go down so use this )

Anwer search in hxxp://en.wikipedia.org/wiki/Editor_war


I think the main difference is the design target. VIM is for UNIX as a working editor. Emacs is for GNU and lisp hackers, so it has some mixed design element.

I use vim on my workstation, while I love emacs too.


In your question, you haven't mentioned that you want it to program in Lisp! But as you have been commenting your answers, I have understood that you actually want a LISP programming interface.

For that precise task, simply forget about Vi. Emacs integration with LISP is wonderful! You should use SLIME. You will then have wonderful integration with the REPL, being able to eval functions, buffers or files directly into a running interpreter in an emacs buffer and much more...


Its like apples and oranges. Both have different design and philosphy. Vim is a Text Editor while Emacs is a Lisp Interpreter that does Text Editing.

I use Vim because its fast, sleak, and really good at manipulating texts. It has a composable natural key binding that can make your development tasks really harmonic. Vim is based on the simple *nix philiosphy of doing one thing really well - ie Text Manipulation.

Extending Vim using bash/zsh and tmux is usually easy and allows you learn a lot of things. IMHO this is a good learning curve. The key thing is to learn how to integrate these things to get a larger working application. With Vim you'll need to learn integration because it doesn't naturally integrate unless you tell it how to. Another worthwhile extension which I use is Tig . Its an ncurses based Git frontend . I just have a binding that opens Tig silently and then I do all the Git stuff there.

Its up to the end user to decide what works best. That Emacs and Vim has stood the test of time is proof of their worthiness. Eventually a good programmer needs nothing more than a pen and a paper to be creative. Good algorithms don't need editors to back them. So try them both and see what makes you more productive. And learn design patterns from both these softwares as there are plenty to learn and discover!







editor