Emacs और विम के बीच अंतर


685

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


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


3
यदि आप एक मैक (OSX) का उपयोग करते हैं, तो आप पाएंगे कि कई बुनियादी emacs कर्सर आंदोलन कमांड हर जगह बहुत काम करते हैं। (उदाहरण के लिए वे यहां काम करते हैं जहां मैं इस टिप्पणी को वेब पेज में टाइप कर रहा हूं।) इसलिए मैक उपयोगकर्ताओं के लिए, कम से कम एमएसीएस के उपसमुच्चय को सीखने के लिए एक सिस्टम-वाइड लाभ है: ^ ए ^ बी ^ डी ^ ई ^ एफ ^ के ^ एल ^ एन ^ ओ ^ पी ^ टी ^ वी ^ वाई
मैट

2
@JamesAnderson: मेरे अनुभव में यह विपरीत है। 2.5 साल के लिए विम का उपयोग कर रहा है, तो emacs पर स्विच किया गया। Emacs लोग ज्यादातर परवाह नहीं करते ... "जो भी आपके लिए काम करता है"। यहाँ ,salespitch#emacs में कहा गया है<fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.
Silex

2
Emacs निश्चित रूप से एक महान ऑपरेटिंग सिस्टम है, लेकिन केवल एक सभ्य संपादक की कमी है।
technical_difficulty

1
@ JimmyM.G.Lim नहीं, यह सिस्टम पर वर्तमान पेजर का उपयोग करता है। यदि आप चलाते हैं PAGER=cat manतो आदमी स्क्रीन पर सीधे टेक्स्ट प्रदर्शित करेगा।
एसएस ऐनी

1
लगता है कि "मुख्य रूप से राय आधारित" पुलिस तब मौजूद नहीं थी जब यह पहली बार पूछा गया था ;-) आह, सरल समय ... एक बात मैं कहूंगा कि एक बार, emacs पर एक किताब पढ़कर और इसे आज़माकर, मैंने सोचा बम था। 3 सप्ताह की छुट्टी के बाद मैंने पाया कि मैं इसके सभी कीस्ट्रोक्स को पूरी तरह से भूल गया हूं। दूसरी ओर विम वास्तव में मेरी बात नहीं है, लेकिन मैं इसके साथ मज़बूती से अर्ध-कार्य कर सकता हूं जब बस का उपयोग करने की आवश्यकता होती है i, esc, wq
JL Peyret

जवाबों:


491

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

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

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

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


153
यह उपलब्ध नहीं होने के कारण: मैं सुझाव देता हूं कि अपने .emacs और .emacs.d को एक स्रोत नियंत्रण रेपो में डालें, और इसलिए आपका सही Emacs सेटअप प्राप्त करना केवल एक चेकआउट की बात है।
डंकन बायने

7
दोनों emacs और विम ऊपर वर्णित है से पीड़ित हो सकते हैं: दोनों को उस बिंदु पर कॉन्फ़िगर किया जा सकता है जहां वे अपने वेनिला रूपों की तुलना में पहचानने योग्य नहीं हैं। इसके अलावा, मैं एक वीकेएस का उपयोग करता हूं।
एलेक्सी मगुर

11
आप @Radu पर क्या सिस्टम काम करते हैं? मैंने 2010 के दशक में कभी भी वास्तविक जीवन प्रणाली नहीं देखी है जो उस viपर vimनिर्भर होने के बजाय वास्तविक थी ।
ELLIOTTCABLE

9
हो सकता है कि विम Emacs की तुलना में सीखना आसान हो, लेकिन यह पहली बार शुरू करने पर अविश्वसनीय रूप से भ्रमित करने वाला है यदि आपके पास इसके साथ कोई पिछला अनुभव नहीं है! मुझे इसे बंद करने में सक्षम होने के लिए Google का उपयोग करना पड़ा, और अभी भी इसे सही करने के लिए कई बार प्रयास करना पड़ा।
हैलोगोडबी 20

9
कभी भी VIM के "पूर्व-स्थापित" पर्क को कम न समझें: यह लगभग हमेशा उपलब्ध होता है जहाँ भी आप जाते हैं, और इसका उपयोग बहुत कम या बिना किसी अनुकूलन के होता है। मैं इसका उपयोग हर समय करता हूं जब sshअन्य मशीनों से जुड़ा होता है। यही कारण है कि मैंने इसे सबसे पहले सीखा- और, क्योंकि मेरे दोस्त VIM जानते थे और मेरी मदद कर सकते थे। (या तो दोस्तों के समर्थन को कम मत समझो!)
jvriesem

137

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

इसके अलावा, Emacs शॉर्टकट मुख्य रूप से संशोधक के माध्यम से एक्सेस किए जाते हैं, और जाहिर है कि Vim इंटरफ़ेस प्रसिद्ध रूप से मोडल है, जो हेरफेर के लिए प्रत्यक्ष कुंजियों की एक बेतुकी राशि तक पहुंच प्रदान करता है।

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

मैं विम का उपयोग करता हूं, और मैं इससे काफी खुश हूं।


6
छोटा अद्यतन: विम 8.0 और 8.1 के संस्करण के बाद से उप-प्रक्रियाओं के साथ बेहतर संचार का समर्थन करता है, यहां तक ​​कि टर्मिनल बफ़र्स भी पेश किए गए हैं, इसलिए यह थार के संबंध में emacs के करीब हो रहा है।
DarkWiiPlayer

110

विम:

  • एक साधारण संपादक के रूप में बेहतर (सरल कार्यों के लिए कम कुंजी)
  • अधिक सक्रिय स्क्रिप्टिंग समुदाय - आंतरिक भाषा: vimscript
  • स्क्रिप्ट, प्लगइन्स, रंग योजनाओं में से एक केंद्रीय भंडार, ...
  • अजगर, रूबी में भी एक्स्टेंसिबल
  • पोर्टेबल बनाया जा सकता है (emacs के साथ कुछ समस्याएं हैं)

Emacs:

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

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

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


47
"एक संपादक के रूप में बेहतर" बहुत अस्पष्ट है। मुझे कारणों को देखने में दिलचस्पी होगी।
एलन

41
@ एलेन - इसमें अस्पष्ट क्या है? मैं शायद ही कभी दोनों विम और एमएसीएस के उपयोगकर्ताओं से मिलता हूं, जिन्हें उस बयान से कोई समस्या है। यहां तक ​​कि कट्टर emacs उपयोगकर्ता आमतौर पर इसे एक तथ्य के रूप में स्वीकार करते हैं। क्या आपने दोनों संपादकों का उपयोग किया है? मेरा मानना ​​है कि पाठ संपादन सुविधाओं के पहलू में विम का एक फायदा है।
रूक

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

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

7
लेकिन यह एक तरफ, संपादन के लिए प्रभावी रूप से विम बेहतर है: लाइन नंबर, विज़ुअल मोड, हेरफेर wint1.kaist.ac.kr/files/attach/images/59/450/… । FCOL, मुझे एक समय में केवल एक लाइन स्क्रॉल करने के लिए emacs प्राप्त करने में समस्या थी।
रूक

52

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

यहाँ Emacs टाइमलाइन का लिंक दिया गया है और इसमें Multics Emacs पेपर का संदर्भ है। Emacs पर यहाँ RMS पेपर , मैं कहाँ देख तनाव एक प्रोग्राम पाठ संपादक पर है (1981 में भी जिस तरह से पीठ और पहले)।

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

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


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

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

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


1
मुझे नहीं लगता कि इसके विपरीत जीवन को मोड आसान बनाता है। और लैरी टेसलर भी ऐसा ही सोचते हैं
एलिरन मलका

2
Emacs के मोड्स कोडिंग में कैसे मदद करते हैं? (मैं इसके लिए नया हूं ...)
jvriesem

4
बहुत समय पहले मैंने चार कारणों से वीआई से एमएसीएस पर स्विच किया था: (ए) अगले कंपाइलर त्रुटि के लिए एक क्लिक, (बी) जीडीबी एकीकरण, (सी) जीआरईपी और खोज-जीआरआरपी। क्या अब इन चीजों को व्यर्थ करना संभव है?
zzz777

"वीम हमेशा एमएसीएस की तुलना में तेजी से शुरू होता था" - यदि आप एक एमएसीएस सर्वर को चालू रखते हैं, तो एमएसीएस-क्लाइंट को तीखा करना बहुत तेज है। मेरे पास इसके लिए स्क्रिप्ट हैं, कि मैं अपने सभी मशीनों पर (git का उपयोग करके) दोहराता हूं। (I * do * भी vim का उपयोग करता है, वास्तव में; यह हमेशा इस बात पर निर्भर करता है कि मैं कहाँ हूँ, और कार्य क्या है)
Jay

"वीएसी की तुलना में विम हमेशा शुरू करने के लिए तेज था" - साथ ही, use-packageऔर इसके :deferविकल्प के साथ, मेरा एमएसीएस लगभग तुरंत खुल जाता है। मैं भी emacsclient का उपयोग कर छोड़ दिया।
जय

37

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

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

चाहे GUI एडिटर / IDE का उपयोग करने और अतिरिक्त कार्यों के लिए अजगर / awk / आदि जैसी चीज़ों का उपयोग करने की तुलना में Emacs की क्षमताओं को सीखना इसके लायक है या नहीं।


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

3
या, एक initrd में जैमबॉक्स को जाम करें और बूट डिवाइस के लिए टूटे हुए स्टोरेज ड्राइवर को डीबग करें, इतनी जल्दी इनिट प्रक्रिया में कि आपके पास सभी प्रारंभिक रैम डिस्क है, और फिर भी आपके पास अभी भी एक संपादक है - vi।
smcameron

2
Vi के साथ थोड़ी देर के बाद, आपकी उंगलियां आंदोलनों को जानती हैं - लेकिन आप याद नहीं रख सकते कि वास्तविक चाबियाँ क्या हैं!
मार्टिन बेकेट

10
मैंने सोचा था edकि यह "हमेशा उपलब्ध था और सबसे अपंग, एकल उपयोगकर्ता मोड, टूटे ग्राफिक्स, कोई कीमैप, धीमी लिंक मशीन पर नहीं चलेगा।" रुको, यह किस वर्ष है? (उच्छ्वास - ed, मैं तुम्हें कभी नहीं
भूलूंगा

2
@ केंडल: करंट ubuntu लाइनक्स इमैक इंस्टॉल किए जाने के साथ नहीं आता है।
intuited

25

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


2
यह मेरा अनुभव भी है ... Emacs या uEmacs कभी उपलब्ध नहीं था। मेरा पहला संपादक uEmacs था (अमिगा पर) लेकिन जब से मैंने विम सीखा है यह बस के आसपास होना बहुत सुविधाजनक था।
मारियस

यह मूल रूप से मेरा अनुभव भी है। Vi हर जगह है और आम तौर पर यूनिक्स सिस्टम पर डिफ़ॉल्ट $ EDITOR के रूप में स्थापित है, इसलिए आपको यह जानना होगा कि क्या आप यूनिक्स के साथ काम कर रहे हैं। उस ने कहा, मैं हर दिन पाठ संपादन के लिए emacs का उपयोग करता हूं और मुझे यह पसंद है।
फर्जी

14

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

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

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


13

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

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

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

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

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


1
यह अभी भी एक नहीं है और किया गया है, लेकिन यह उन सभी सेटिंग्स को समायोजित करने की तुलना में बहुत आसान है जो टर्मिनल पेस्ट को गड़बड़ करते हैं। उपयोग करें :set paste, फिर अपना पाठ पेस्ट करें और जब आप कर लें तो :set nopasteसामान्य मोड में वापस आ जाएंगे। :set pastetoggle=<F2>आपके चुने हुए कुंजी कॉम्बो का उपयोग करते हुए इसे टॉगल करने की आज्ञा भी है ।
हबर

इंडेंट मोड में, आप ^R^P+क्लिपबोर्ड से पेस्ट कर सकते हैं और वर्तमान इंडेंटेशन रख सकते हैं। ^R^O+इंडेंटेशन छोड़ देंगे ^R+जैसे ही आप इसे टाइप करेंगे, इसे डाल देंगे। :help i_^R^Pअधिक जानकारी के लिए।
intuited

3
मैं कल्पना नहीं कर सकता कि कट / पेस्ट किसी से भी आसान है yyp। इसके अलावा, कटौती करने के लिए यहाँ देख सकते हैं और करने के लिए और से अलग खिड़कियों पेस्ट stackoverflow.com/a/8757876/654789
PUK

@puk - Ctrl-k (yank) / Ctr-y (put) सिर्फ emacs में उतना ही आसान है। Emacs में आपके पास कई रजिस्टर (az) होते हैं जिन्हें आप टेक्स्ट या वर्तमान स्थिति में सहेज सकते हैं ...
Kendall Helmstetter Gelner

3
vim में कई रजिस्टर भी हैं
TamaMcGlinn

12

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

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

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

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


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

3
हम्म। समस्या यह है कि बहुत सारे Emacs हैं ... लेकिन जिस चीज के लिए मैं अभी भी एक IDE छोड़ता हूं, वह है Emacs का उपयोग करना दोहराए जाने वाले कार्यों की जटिल श्रृंखला है, जिसे मैं मैक्रो रिकॉर्डिंग का उपयोग करके स्वचालित करता हूं। उदाहरण के लिए आप एक मौजूदा शब्द या अभिव्यक्ति ले सकते हैं, कॉपी करें कि "बफर" (केवल कट / पेस्ट के बारे में सोचें) आपके पास एक से अधिक हो सकते हैं), फिर किसी अन्य फ़ाइल में जाएं, कॉपी किए गए मान का उपयोग करके आंशिक रूप से कुछ पाठ लिखें और फिर पहले साथ ही कॉपी किया गया मान, कर्सर को आगे बढ़ाएं, स्थिति को बचाएं और पहले बफर पर फिर से लौटें ... फिर मूल फ़ाइल की अगली पंक्ति के लिए प्रक्रिया दोहराएं।
केंडल हेल्मिस्सेटर गेलनर

1
मैंने vi और Emacs दोनों में मैक्रोज़ का भारी उपयोग किया है। आप जो याद कर रहे हैं वह तथ्य यह है कि मैक्रोज़ का उपयोग करते समय एमएसीएस के पास व्यापक तरीकों का चयन है, और यह तथ्य कि आप हर जगह कट बफ़र्स का उपयोग कर सकते हैं - उदाहरण के लिए खोज शब्दों के बीच में भी। कृपया मुझे बताएं कि आप एक मैक्रो कैसे लिखेंगे जो एक रेगेक्स पर आधारित अभिव्यक्ति के एक शब्द का चयन करेगा, पाया गया शब्द लेगा, उस शब्द पर एक अन्य दस्तावेज़ खोजेगा और फिर उसके चारों ओर प्रतिस्थापन करेगा?
केंडल हेल्मसटेटर गेलनर

2
@ kendall-helmstetter-gelner - जो कि vimscript के साथ संभव है, या भाषाओं vim के लिए बाइंडिंग है (जैसे रूबी / vim / tcl / पर्ल)। आपके पास स्क्रिप्टिंग भाषाओं से vim के सभी फ़ंक्शंस और एडिटर बफ़र्स तक पहुंच है।
19

1
यह प्रभावशाली है, लेकिन Emacs में भी ऐसा ही करने की आवश्यकता है, केवल कीस्ट्रोक्स का उपयोग करके मैं पहले से ही एक जटिल मैक्रो बनाने के लिए जानता हूं, बजाय इसे हाथ से लिखने के। यह किसी के लिए आसान है जो ईमैक्स को जानता है कि वह मैक्रो बनाता है जो उस कार्य को करता है, लेकिन मैं कहूंगा कि बहुत सारे VI उपयोगकर्ता नहीं हैं जो मैक्रो का निर्माण कर सकते हैं जो कि अनुसंधान के बिना उचित मात्रा में किए गए थे।
केंडल हेल्मसटेटर गेलनर

11

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

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

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

एक और उदाहरण के साथ jqऔर उपयोग होता है gron। उदाहरण के लिए। संपादक को पेस्ट जोंस ब्लब करें और फिर ट्रांसफॉर्मेशन के लिए चलाएं:

:r!curl -s http://interesting/api/v1/get/stuff
:%!gron | grep 'interesting' | gron -u

या

:%!jq .path.to.stuff

ऊपर दिए गए प्रत्येक पाइप किए गए कमांड को अलग-अलग माध्यम से चलाया जा सकता है :%!<command>, जहां %सभी दस्तावेज़ का मतलब है, लेकिन चयन, चयनित लाइनों आदि पर भी चलाया जा सकता है। यहां ग्रोन outputको jqपथ के रूप में उपयोग किया जा सकता है ।

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

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

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

खैर, सिर्फ मेरा 5 पेंस।


8
"विम यूनिक्स दर्शन के करीब जाता है।" - आप यहाँ अपने शेल से उपलब्ध उपकरणों के बारे में दर्शन के बारे में बोल रहे हैं। हालाँकि, शेल स्वयं निर्मित-इन्स, इतिहास, ग्लोबिंग, प्रोसेस कंट्रोल, प्रोग्रामबिलिटी और इसी तरह का एक बड़ा समूह है। एमएसीएस स्पष्ट रूप से यूनिक्स गोले के दर्शन के करीब है: एक उच्च अनुकूलन वातावरण प्रदान करते हैं जिसके भीतर उपकरण एक साथ उपयोग किए जा सकते हैं, और उपयोगकर्ता के लिए अपने स्वयं के कोड स्निपेट के साथ उपकरण के सेट का विस्तार करना आसान बनाता है क्योंकि वे काम करते हैं। मुझे लगता है कि हम देख सकते हैं कि दोनों emacs और vim दृढ़ता से यूनिक्स परंपरा में निहित हैं।
मैट

1
आपके कमेंट के लिए धन्यवाद। यह कोई मतलब नहीं था कि यहाँ एक संपादक युद्ध शुरू करने का मेरा इरादा न तो ईमैक उपयोगकर्ताओं को अपमानित करना था । मुझे सिर्फ शेल (या संपादक के भीतर से) से वास्तविक आदेशों को लागू करने के लिए आसान और अधिक पोर्टेबल लगता है, क्योंकि ईमैक्स में कार्यक्षमता को एन्कैप करने के लिए जटिल एक्सटेंशन लिखने का विरोध किया गया है , जो समय के साथ पर्यावरण को फूला हुआ बनाता है। हालाँकि ये एक्सटेंशन उपयोगकर्ता की पसंद पर निर्भर करता है और किया जा सकता है लेकिन संपादकों में से किसी के द्वारा लागू नहीं किया जाता है। इसलिए UNIX परंपरा में emacs और vi (m) जगह के संबंध में आपसे सहमत हैं ।
एलेक्स

1
बस गैर-युद्ध जारी रखने के लिए, मुझे आशा है कि यह स्पष्ट था कि मैं आपके सादृश्य से सहमत नहीं था "विम एक यूनिक्स उपकरण की तरह अधिक है"। यह बस मेरे साथ हुआ है कि इस अंतर्ज्ञान को "और एमएसीएस एक यूनिक्स शेल की तरह अधिक है" के साथ बढ़ाया जा सकता है। :-)
मैट

@ मैट: मुझे उपमा पसंद है। उसे स्वीकार करें। ;)
एलेक्स

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

10

मेरे लिए emacs के अभियोग हैं,

  • tramp-mode आपको ssh पर दूरस्थ फ़ाइलों को संपादित करने की अनुमति देता है। स्थानीय फ़ाइलों की तरह।
  • tramp-mode + dired = पूर्ण विशेषताओं वाला sftp क्लाइंट
  • हर भाषा के लिए आपको कभी भी समर्थन की आवश्यकता होगी।
  • टर्मिनल एमुलेटर (टर्म-मोड) में बनाया गया है ताकि मैं अनुप्रयोगों के बीच स्विच किए बिना कोडिंग रख सकूं।
  • एक्स्टेंसिबिलिटी कुछ भी जो आपको पसंद नहीं है आप लिस्प का उपयोग करके बदल सकते हैं।

11
एफडब्ल्यूआईडब्ल्यू: बहुत ज्यादा पहले 3 है (हालांकि अलग-अलग नामों के साथ। "ट्रैंप-मोड" विम में "नेट्रव" है)। # 4 को आमतौर पर बग के रूप में माना जाता है, न कि उपयोगकर्ताओं द्वारा सुविधा। # 5 व्यर्थ में सच है यदि आप "एलीस्प" (अब तक की सबसे खराब लिस्प बोली, मेरे एमाक्स-लविंग दोस्त मुझे बताते हैं) को अजगर / mzscheme / perl / ruby ​​/ tcl / vimscript के साथ बदलते हैं।
लॉरेंस गोंसाल्वेस

3
क्या आप टिप्पणी कर सकते हैं कि क्यों # 4 ए बग?
हमजा येरलिकाया

2
की जाँच करें Conque vim में एक एम्बेडेड खोल के लिए ऐड-ऑन।
intuited


9

मैं यहां "द आर्ट ऑफ यूनिक्स प्रोग्रामिंग" पुस्तक से एक उद्धरण डालना चाहूंगा:

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

सामान्य तौर पर, vi छोटी नौकरियों के लिए सबसे अच्छा है - मेल के त्वरित उत्तर, सिस्टम कॉन्फ़िगरेशन के लिए सरल ट्वीक और इस तरह। यह विशेष रूप से तब उपयोगी होता है जब आप एक नई प्रणाली (या एक नेटवर्क पर एक रिमोट) का उपयोग कर रहे होते हैं और आपके पास अपने Emacs कस्टमाइज़ेशन फ़ाइलें नहीं होती हैं।

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

मैं वास्तव में यहाँ पर प्रकाश डालना चाहता हूँ: « कई लोगों को यह जानने के लिए मूल्यवान है


यह शायद पुराना है। मुझे लगता है कि उन दिनों Emacs की इनबिल्ट करने की क्षमता ब्राउज़र, SSH, म्यूजिक प्लेयर और स्लो सिस्टम की है जो अन्य ऐप को बंद कर देती है और यह विश्वास दिलाती है कि एक ऐप को खोलना और उसके साथ रहना बेहतर है?
निशांत

बड़ी खबर है: यह पुराना नहीं है! आप Emacs के बाहर Browser, Music Player आदि का उपयोग कर सकते हैं लेकिन Emacs वास्तव में जो लाता है वह इन सभी कार्यों के लिए एक ही अच्छा इंटरफ़ेस है और उन्हें बढ़ाने के लिए एक ही रास्ता (Elisp) है।
एंड्री टाइखोनोव

मेरे अनुसार TAUP का Emacs का दृष्टिकोण पुराना है क्योंकि, उन दिनों Emacs का एक फायदा था क्योंकि यह एक एकल ऐप था जो एक समय में कई काम कर सकता था - जैसे irc, संगीत, रिमोट एडिट आदि। हालाँकि आज आपके पास इन उद्देश्यों में से प्रत्येक के लिए उत्कृष्ट अनुप्रयोग हैं और मेमोरी भी पहले की तरह एक मुद्दा नहीं है ... इमैक में जीमेल पढ़ने की कल्पना करें - मेरा मतलब है कि जीमेल इंटरफ़ेस में वास्तव में अंतर्निहित कीबाइंडिंग हैं, जो कि Emacs ईमेल क्लाइंट में कस्टमाइज़ कर रहा है। काफी समय लगेगा और मूल जीमेल इंटरफेस आदि के रूप में अच्छा नहीं हो सकता है।
निशांत

यह पुराना नहीं है! :)
एंड्री टाइखोनोव

> हालाँकि आज आपके पास इन उद्देश्यों में से प्रत्येक के लिए उत्कृष्ट अनुप्रयोग हैं, लेकिन आपके पास ये सभी अनुप्रयोग बहुत भिन्न इंटरफेस, कॉन्फ़िगरेशन, उपयोगकर्ता अनुभव आदि आदि के साथ हैं ... लेकिन Emacs एक उपकरण है! उदाहरण के लिए, मुझे Emacs प्रमुख बाइंडिंग बहुत पसंद है, मैं उन्हें ब्राउज़र में शेल में उपयोग करता हूं। और यह बहुत अच्छा है कि अनुप्रयोगों के भीतर कम से कम कुछ चीजें समान हैं ...
एंड्री टाइखोनोव

9

Emacs के लाभ

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

  • सबसे पोर्टेड कंप्यूटर प्रोग्राम में से एक। यह पाठ मोड में चलता है और अधिकांश यूनिक्स जैसी प्रणालियों (लिनक्स, विभिन्न BSD, Solaris, AIX, IRIX, macOSetc।), MS-DOS, Microsoft Windows, AmigaOS सहित ऑपरेटिंग सिस्टम की एक विस्तृत विविधता पर ग्राफिकल यूजर इंटरफेस के तहत चलता है। और OpenVMS। यूनिक्स सिस्टम, दोनों मुक्त और मालिकाना, अक्सर ऑपरेटिंग सिस्टम के साथ बंडल Emacs प्रदान करते हैं।

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

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

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

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

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

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

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

  • एडिट कमांड कंपोजेबल हैं
  • Vi का एक मोडल इंटरफ़ेस है (जो Emacs अनुकरण कर सकता है)
  • ऐतिहासिक रूप से, vi एमएसीएस से अधिक तेजी से लोड होता है।
  • यूनिक्स की परंपरा से गहराई से जुड़े रहने के दौरान, यह सभी प्रणालियों पर चलता है जो मानक C लाइब्रेरी को लागू कर सकते हैं, जिसमें UNIX, Linux, AmigaOS, DOS, Windows, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD और POSIX- अनुरूप शामिल हैं। सिस्टम।
  • पायथन, रूबी, पर्ल, और लुआ जैसी व्याख्या की गई भाषाओं के लिए विम स्क्रिप्ट या एपीआई के माध्यम से विस्तार और अनुकूलन
  • सर्वव्यापी। अनिवार्य रूप से सभी यूनिक्स और यूनिक्स जैसी प्रणालियां vi (या एक संस्करण) में अंतर्निहित हैं। VOS (और पूर्व, लेकिन विम नहीं) POSIX मानक में निर्दिष्ट है।
  • सिस्टम बचाव वातावरण, एम्बेडेड सिस्टम (विशेष रूप से व्यस्त बॉक्स वाले) और अन्य विवश वातावरण में अक्सर vi शामिल होते हैं, लेकिन emacs नहीं।

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


7

अब आपको स्पेसमैक्स की वजह से इन दोनों के बीच के अंतर के बारे में सोचने की ज़रूरत नहीं है । यह एक समुदाय द्वारा संचालित Emacs वितरण है।

जैसा कि उन्होंने कहा,

सबसे अच्छा संपादक न तो Emacs है और न ही Vim, It’s Emacs और Vim है।

स्पेसमैक्स इमैक और विम दोनों से सर्वश्रेष्ठ को जोड़ती है, जो आपके जीवन और नौकरी को बहुत आसान बनाते हैं।

नीचे स्क्रीनशॉट देखें,


(स्रोत: spacemacs.org )


3
यह धोखा है ... यह कुछ फंकी कॉन्फिग्स के साथ एमएसीएस है;) वास्तव में बहुत सारे कॉन्फिग्स
एलेक्स

2
यह बहुत अच्छा है - जब यह काम करता है। जब यह नहीं होता है - यदि आप पहले से ही नहीं जानते हैं और आप खाली नहीं हैं, तो आपको गटर चैट में मुख्य योगदानकर्ता नहीं मिल सकते हैं - आप आमतौर पर अटक जाते हैं और भाग्य से बाहर निकल जाते हैं। (कभी कभी .emacs में अपने Melpa निर्देशिका को हटाने बातें, हालांकि ठीक कर सकते हैं ...)
हारून हॉल

1
हालाँकि इसमें मेरी ज़रूरत से ज़्यादा सामान है, मैं वास्तव में स्पेसमेक्स से संतुष्ट हूँ। मेरे पास github पर मेरे dotfiles हैं, इसलिए मैं नई मशीनों को आसानी से / तेजी से सेटअप कर सकता हूं, और जब से मैं बुराई का उपयोग करता हूं (vim कीबाइंडिंग) मेरे पास पर्याप्त कौशल है जब मुझे उन मशीनों पर काम करना होगा जहां मैं अपना स्पेसकैम विन्यास स्थापित नहीं कर सकता हूं।
ar78

6

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


1
मैंने संपादन के लिए विम का उपयोग किया, और डिबगिंग के लिए Xcode, यह आदर्श से कम लेकिन
उल्लेखनीय

4

सेब और संतरे की तरह। दोनों में अलग-अलग डिज़ाइन और दार्शनिकता है। विम एक टेक्स्ट एडिटर है जबकि Emacs एक लिस्प इंटरप्रेटर है जो टेक्स्ट एडिटिंग करता है।

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

बैश / zsh और tmux का उपयोग करके विम का विस्तार करना आमतौर पर आसान है और आपको बहुत सी चीजें सीखने की अनुमति देता है। IMHO यह एक अच्छा सीखने की अवस्था है। महत्वपूर्ण बात यह है कि एक बड़े काम के आवेदन को प्राप्त करने के लिए इन चीजों को कैसे एकीकृत किया जाए। विम के साथ आपको एकीकरण सीखने की आवश्यकता होगी क्योंकि यह स्वाभाविक रूप से एकीकृत नहीं होता है जब तक कि आप इसे नहीं बताते कि कैसे। एक और सार्थक विस्तार जो मैं उपयोग करता हूं वह है टाइग। इसकी ncurses आधारित Git frontend है। मेरे पास बस एक बंधन है जो चुपचाप बाघ को खोलता है और फिर मैं वहां सभी गिट सामान करता हूं।

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


4

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

vi (और VIM IIRC) हल्का वजन है (यह जगह में फ़ाइलों को संपादित कर सकता है), लेकिन कम सुविधाएँ (सबप्रोसेस संचार, विस्तार भाषा) प्रदान करता है।


3

Emacs वास्तव में सब कुछ कार्यक्रम के अधिक है, और vi (m) वास्तव में सिर्फ एक संपादक है। यदि आप पाठ का संपादन कर रहे हैं, तो वे दोनों ठीक हैं, लेकिन मैं emacs पसंद करता हूं, सिर्फ इसलिए कि मुझे घर की एक पंक्ति को स्थानांतरित करने के लिए चारों ओर स्थानांतरित करना है, और गलत चीजों को कमांड मोड में टाइप करना है। मुझे लगता है कि समस्या नहीं है, vi (एम) आप के लिए संपादक हो सकता है।


2

एक पीलिया बिंदु:

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

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

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

बिल जॉय का पेपर पढ़ें - यह एक बहुत ही सक्षम है, शायद बहुत सुंदर, सादे पाठ को संपादित करने में इंजीनियरिंग अभ्यास, बहुत तेज़ी से। Parito का नियम यहां लागू होता है: 80% फल 20% बास्केट में होता है। सादा पाठ को बहुत तेजी से संपादित करना सक्षमता संपादन का मूल है - बाकी सब वैकल्पिक है - और कभी-कभी दुखद।


3
आप किस पेपर की बात कर रहे हैं? क्या आप कम से कम एक नाम दे सकते हैं, यदि लिंक नहीं है?
डार्कफलाइन

2
"यहां तक ​​कि एमएस को vi का समर्थन करना होगा।" क्या आप इसे वापस कर सकते हैं?
dodgethesteamroller

1

यदि आप साइट से साइट पर बहुत आगे बढ़ते हैं या आपकी नौकरी में उत्पादन प्रणालियों में लॉग इन करना शामिल है, तो विम जाने का रास्ता है।

सभी * निक्स मशीनों में डिफ़ॉल्ट रूप से vi स्थापित होगा।

अधिकांश sysdamins ksh को डिफ़ॉल्ट शेल के रूप में पसंद करते हैं। ksh इतिहास खोजने और कमांड लाइन को संपादित करने के लिए vi (या emacs) कमांड कीस्ट्रोक्स का उपयोग करता है।

यदि आपको पता नहीं है कि अच्छी तरह से आप एक मानक विन्यास के साथ यूनिक्स बॉक्स में प्रवेश करते हैं तो आप गंभीर रूप से विकलांग हैं।

इस कारण से मैं आपके सामान्य संपादक के रूप में प्रतिदिन सलाह देता हूं। मैंने देखा है कि वहाँ एक नंगे हड्डियों यूनिक्स सर्वर पर फ़ाइलों को संशोधित करने की कोशिश कर रहे बालों को ईमैक प्रशंसकों ने फाड़ दिया।


1
बश के लिए , इसके बजाय , जो डिफ़ॉल्ट रूप से उपयोग किया जाता है , का उपयोग करने का प्रयास set -o viकरें । मैंने कभी भी ksh का उपयोग नहीं किया, लेकिन यह समान हो सकता है। .bashrcset -o emacs
sjas

1

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

उस सटीक कार्य के लिए, बस वीआई के बारे में भूल जाओ। LISP के साथ Emacs का एकीकरण अद्भुत है! आपको SLIME का उपयोग करना चाहिए। फिर आपके पास REPL के साथ अद्भुत एकीकरण होगा, evalजो कि emacs बफर में चल रहे दुभाषिया में सीधे कार्य, बफ़र या फ़ाइलों के लिए सक्षम होने के साथ-साथ और भी बहुत कुछ ...


1
हां, मुझे इस बारे में पता है, लेकिन मुझे एक अच्छे लिस्प संपादक की तलाश थी जो इस सवाल को पूछने का मेरा कारण नहीं था - यह सिर्फ एक उदाहरण था। प्रतिक्रिया के लिए धन्यवाद!
साशा चेडेगोगो

1

मैंने लगभग 2 साल तक स्पेसमैक्स के साथ काम किया है और नवविवाहिता के बारे में एक साल के लिए अब प्रोडक्शन / रिसर्च के माहौल में है। Spacemacs परतों आदि जैसी अच्छी अतिरिक्त सुविधाओं के जोड़े के साथ emacs है। और neovim अपने अतिरिक्त सुविधाओं के साथ फिर से विम का एक कांटा है।

मैं अनुभव के मामले में दोनों से काफी असंतुष्ट हूं। और मैं अभी भी अपने पाठ संपादन की जरूरतों के लिए दीर्घकालिक समाधान के लिए बाहर हूं।

यहाँ एक सरल तुलना है:

  • नियोविम, विम, एमएसीएस, स्पेसमैक्स, आदि उन सभी संपादकों में से अधिकांश संपादकों की तुलना में कम स्रोतों का उपभोग करते हैं।

  • नियोविम / वीम एमएसीएस की तुलना में थोड़ा तेज है, अंतरिक्ष यान की तुलना में अधिक तेज है।

  • संपादन अनुभव के संदर्भ में। मैं आसानी से कह सकता हूं कि एमएसीएस पैकेज बेहतर महसूस करते हैं। मुझे लगता है कि क्योंकि वे emacs के मूल के साथ बेहतर मिश्रण है।

  • Vimscript अच्छी है और विम इकोसिस्टम में भी निश्चित रूप से बेहतरीन प्रोजेक्ट्स हैं। अच्छी बात यह है कि वे अब तक देखी गई ज्यादातर एमएसीएस परियोजनाओं से बेहतर दस्तावेज हैं।

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

  • विम में मोडल एडिटिंग, एक सहज ज्ञान युक्त अवधारणा नहीं है, लेकिन एक बार जब आप इसकी आदत डाल लेते हैं, तो आप इसे कहीं भी चाहते हैं। संपादक के दोनों प्रदान करते हैं।


1
"मोडल एडिटिंग (...) एक बार जब आपको इसकी आदत हो जाती है, तो आप इसे कहीं भी चाहते हैं" - यह दिलचस्प है। मैंने ईमैक का उपयोग बुराई मोड के साथ करने के लिए वर्षों का समय बिताया, और मोडल संपादन का उपयोग किया, और अब गैर-मोडल में वापस चला गया ... यह सिर्फ बेहतर महसूस करता है। मुझे लगता है कि यह न केवल व्यक्ति पर निर्भर करता है, बल्कि जीवन में संदर्भ / समय पर / जो भी हो। स्वाद, मुझे लगता है। :)
जय

1
@ जय मुझे लगता है, लेकिन क्या आपको याद नहीं है, कॉलम चयन जैसे सामान, और ": XX" के साथ चारों ओर कूद रहा है?
कान ई।

वास्तव में नहीं ... मैं कभी-कभी Emacs के आयत चयन का उपयोग करता हूं, और इसके बजाय: xx मैं "Mg g XX" करता हूं - कुछ और कीस्ट्रोक्स, लेकिन मुझे शायद ही कभी एक पंक्ति में सही जाने की आवश्यकता होती है। आमतौर पर, एक एमएसीएस एप्लिकेशन (डिबगर, आदि) मुझे सही लाइन पर भेज देगा।
जे

0

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

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


0

vim एक आसान संपादक है, आप vim filenameफ़ाइल खोलने, संपादित करने, सहेजने और बंद करने के लिए सरल प्रकार हैं ।

emacs एक "ऑपरेटिंग सिस्टम" है जो एक संपादक होने का दिखावा करता है, आप evalइसके व्यवहार को बदलने के लिए कोड कर सकते हैं और इसे अपनी इच्छानुसार बढ़ा सकते हैं। एmode प्राप्त करने के लिए / भेजने Emacs पर ईमेल ऑपरेटिंग सिस्टम पर एक ईमेल सॉफ्टवेयर की तरह है।

सरल संपादन करते समय, उदाहरण के लिए, एक विन्यास फाइल को संशोधित करें, मैं विम का उपयोग करता हूं

अन्यथा, मैं कभी भी एमएसीएस नहीं छोड़ता ।


0

मुझे लगता है कि मुख्य अंतर डिजाइन लक्ष्य है। VIM UNIX के लिए एक कार्यकारी संपादक के रूप में है। Emacs GNU और लिस्प हैकर्स के लिए है, इसलिए इसमें कुछ मिश्रित डिज़ाइन तत्व हैं।

मैं अपने कार्य केंद्र पर विम का उपयोग करता हूं, जबकि मुझे ईमेक भी पसंद है।


0

मैं एक Emacs प्रशंसक हूं लेकिन अन्य डेवलपर्स को VI सीखने के लिए प्रोत्साहित करता हूं क्योंकि:

  1. आप emacs मेकफाइल्स को संपादित करने के लिए VI का उपयोग कर सकते हैं।
  2. VI में एड कमांड शामिल हैं और प्रत्येक UNIX उपयोगकर्ता को एड और सेड जानना चाहिए।

मैंने वीआईएम के बारे में कई टिप्पणियों को एमएसीएस की तुलना में तेजी से शुरू किया है। यदि आप वास्तव में इस बारे में परवाह करते हैं, तो सर्वर मोड में emacs चलाएं और उपनाम 'emacs' को 'emacsclient'। क्लाइंट सुपर फास्ट है क्योंकि यह सब करता है कंधे पर सर्वर को टैप करें और यह बताएं कि आप किस फ़ाइल को संपादित करना चाहते हैं। MacOSX पर, emacsclient केवल 33K है जबकि Emacs 287M है।

मुझे यकीन नहीं है कि आधुनिक हार्डवेयर पर यह आवश्यक है। मेरे मैकबुक प्रो (2013 रेटिना) पर, एमएसीएस लोड होता है जब मैं इसे शेल से चलाता हूं। मैं बिल्कुल भी विराम नहीं लगाता। जब मैं Emacs.app (GUI संस्करण) चलाता हूं, तो सभी 3 सेकंड लग सकते हैं।

अधिकांश शिकायतें जो मैं ईमैक्स के बारे में सुनता हूं लगता है कि लोग ईमेक के बारे में गलत जानकारी देते हैं। 1982 के बाद से vi और emacs दोनों का उपयोग करने के बाद, मुझे निश्चित रूप से एक ऐसा समय याद है जब emacs ने vi की तुलना में बहुत धीमी गति से लोड किया और अपने शुरुआती UNIX बक्से में अधिकांश भौतिक मेमोरी का उपयोग किया, लेकिन अब ऐसा नहीं है और कम से कम 15- के लिए नहीं है 20 साल।

एक शिकायत जिसे मैं स्वीकार करूंगा वह है "ईमैक पिंकी"। जब मैंने छोटी थी तो इसने मुझे कभी परेशान नहीं किया। अब जब मैं 58 वर्ष का हो गया हूं, मेरी पिंकी को बार-बार इमैक चॉइसिंग के लिए नियंत्रण कुंजी तक पहुंचने से थोड़ा दुख मिलता है। यह मैकबुक प्रो कीबोर्ड पर विशेष रूप से सच है जहां "एफएन" कुंजी के लिए जगह बनाने के लिए नियंत्रण को एक स्थान पर दाईं ओर ले जाया जाता है। जब नियंत्रण नीचे बाईं ओर होता है तो यह उतना कष्टप्रद नहीं होता।


आप "डंप" इमैक भी कर सकते हैं, जिसका मूल अर्थ है संकलित विस्तृत एक्सटेंशन का एक स्नैपशॉट लेना जो आप चाहते हैं। Emacs इस तरह से बहुत तेजी से शुरू होता है, लेकिन यह निर्धारित करने में थोड़ा समय लगता है कि आप किन एक्सटेंशनों को शामिल करना चाहते हैं।
फिल हारबसन

इसके अलावा आप emacs में "हनोई के टावर" खेल सकते हैं। कितना मजेदार था वो? :)
फिल हर्बिसन

पुन: "emacs पिंकी"। कुछ पुराने कीबोर्ड पर, जैसे, सन टाइप 3/4, जो HHKB प्रोफेशनल पर आधारित है, कंट्रोल को रखा जाता है जहां कैप्स लॉक सामान्य रूप से होता है। मेरे पास आपके पास एमएसीएस का अनुभव नहीं है, हालांकि, मुझे बहुत जल्दी घर की पंक्ति पर नियंत्रण रखने की आदत है। इतना कि मैंने अपने सभी कीबोर्ड (मैकबुक प्रो) पर भी यह बदलाव किया। HHKB में कुछ और सुधार हैं, जैसे, Enter के ठीक ऊपर बैकस्पेस, और 1. के आगे Esc
martinweiss

@PhilHarbison "डंप" पर विस्तार कर सकता है?
a_P

0

मैं पहले विम का उपयोगकर्ता था, फिर मैंने एमएसीएस पर स्विच किया, फिर वीम पर, अब मैं फिर से एमएसीएस के साथ प्रयोग कर रहा हूं।

  • दोनों महान संपादक हैं।
  • दोनों आज बहुत एक्स्टेंसिबल हैं
  • दोनों में महान प्लगइन्स और समुदाय हैं

डेवलपर्स के रूप में हम बहुत कुछ लिखते हैं, और, मेरे लिए सबसे अंत में, बफ़र्स और फ़ाइलों में घूमना सबसे बड़ा दोहराव वाला काम है, इसलिए मुझे एक संपादक चाहिए, जहां मैं फास्ट बना सकता हूं!

Emacs के साथ फिर से प्रयोग करने की प्रेरणा यह है कि मैंने इसे गिरा दिया Ctrl लीड कीबाइंड को vim की तुलना में अधिक तेज़ बनाता है और इसके बारे में तर्क करना आसान है।

विम में आपके पास मोड हैं, आपके पास प्रविष्टि मोड, विज़ुअल मोड, सामान्य मोड है, जब आप कुछ दबाते हैं तो क्या होता है यह उस मोड पर निर्भर करता है जो आप हैं, संपादन के लिए एक स्टेटफुल aproach है। आप मूव करें, इंसर्ट मोड डालें, एडिट करें, इंसर्ट मोड से बाहर निकलें और फिर से मूव करें। अगर मैं ESC प्रेस या ऐसा कुछ याद करता हूं तो मैं अक्सर अपना आपा खो देता हूं।

Emacs में कोई मोड नहीं है, मूल रूप से आप अपने गुलाबी के साथ Ctrl दबाते हैं और Cx Cf, Cx Cs, Cx Cc की तरह कीस्ट्रोक टाइप करते हैं। वहाँ कीबाइंड हैं जहाँ आपको ctrl कुंजी जारी करने की आवश्यकता है, मैं इस से नफरत करता हूं और हमेशा उन्हें दबाए गए नियंत्रण से प्रतिस्थापित करता हूं।

मुझे लगता है कि emacs दृष्टिकोण सोचने और टाइप करने के लिए तेज़ है, लेकिन विम के पास एक और ताकत है, करने के लिए। इसकी कमांड कंपोजिटेबल हैं, इनके पास आमतौर पर एक प्रारूप होता है। उदाहरण के लिए, आप एक पंक्ति को हटाने के लिए, ddकिसी शब्द को हटाने के लिए उपयोग कर सकते हैं dw। प्लगइन्स उस फ़ेलिंग का उपयोग करते हैं, विम-सराउंड प्लगइन के साथ आप डीएस "(डिलीट सराउंड") के साथ कोट्स को हटा सकते हैं, अगले / तक हटा सकते हैं dt/। पिछले /: dT/और इतने पर हटाएं । तो जब तक आप सीखते हैं तब तक चीजें बहुत दिलचस्प होने लगती हैं।

ऊपर जा रहा है, आज मैं गिर गया कि इमैक कीबाइंड्स मैक्रो एडिटिंग के लिए तेज़ हैं और वीम कमांड्स माइक्रोएटिंग के लिए अधिक शक्तिशाली हैं

मैं पिछले पांच वर्षों से विम का उपयोग कर रहा हूं, इसलिए मैं मुख्य रूप से शब्दों, रेखाओं, आस-पास, ब्लॉक आदि के बारे में सोच को संपादित करता हूं। इस लाइन को हटाएं, उद्धरण हटाएं, उद्धरणों को हटाएं, कर्सर में शब्द हटाएं, मैं emacs ढूंढने की कोशिश कर रहा हूं उस के लिए चलता है

एक अंतिम उद्धरण के रूप में, मैं कहूंगा कि, मैं emz या vim के बारे में fzf से अधिक परवाह करता हूं, मैं एक संपादक को पसंद करूंगा जो पूरी तरह से fzf आधारित हो


-9

सबसे पहले वीआई (मूल प्रतीति) का आज उपयोग नहीं किया जाता है। आप कहते हैं कि कुछ विम व्युत्पत्ति है।

विम कार्यक्षमता का विस्तार करने के लिए आपको विम को पुन: प्राप्त करना होगा, Emacs नहीं।

Emacs में Vim in self (viper-mode) है।

एमएसीएस को आमतौर पर मैन्युअल रूप से इंस्टॉलेशन की आवश्यकता होती है, विम को आमतौर पर ओएस जैसे सभी यूनिक्स पर प्रीइंस्टॉल्ड किया जाता है (लेकिन अगर आपके पास ट्राम-मोड जीत वीम :) होस्ट करने के लिए एसएचएस एक्सेस है।

यदि आप विम की कोशिश करते हैं तो आप Emacs से नफरत करते हैं, इसलिए पहले Emacs से शुरुआत करें।

यह भी पढ़ें http://www.dina.dk/~abraham/religion/vi-tutorial.html (लिंक नीचे जाएं तो इसका उपयोग करें )

अनवर खोज hxxp में: //en.wikipedia.org/wiki/Editor_war


8
आपको इसे बढ़ाने के लिए रिम को फिर से खोलने की आवश्यकता नहीं है। आपको विम को छोड़ने की भी जरूरत नहीं है।
बहुत ज्यादा php

1
Vimcript / Python / Ruby / etc सभी विम आंतरिक संरचनाओं तक पहुँच है? यदि संपादक कोडबेस ईडीआईटीओआर की जटिलता के एक स्तर पर विलोपन या जटिलता को हटाने में मदद करता है?
गवेंको

1
विभिन्‍न मेक्रो जैसी विभिन्‍न लिपियाँ। विम का विस्तार करने के लिए आपको
बजे

1
वि का उपयोग नहीं किया जाता है?!?!? क्या? क्या मूल को मूल माना जाता है? या एक 'पारंपरिक vi'? FreeBSD, ArchLinix जैसे कई सिस्टम पारंपरिक vi या nvi को बंडल करते हैं और मैं इसके लिए आभारी हूं। डेबियन जैसे कुछ सिस्टम विम के साथ चलते हैं जो डिफ़ॉल्ट रूप से संगत मोड में है (लगभग पारंपरिक vi की तरह लगता है)
एलेक्स

1
@gavenkoa, मैं पूरी तरह से एलेक्स से सहमत हूं, आपने स्पष्ट रूप से कभी भी Gentoo, कुछ BSD या आर्क लिनक्स जैसे मैनुअल इंस्टॉलेशन की आवश्यकता नहीं है। इसके अलावा, «यदि आप विम की कोशिश करते हैं तो आप Emacs से नफरत करते हैं, इसलिए Emacs से शुरुआत करें।» यदि आप थोड़ा सोचते हैं, तो मैं पहले VIM की कोशिश करूंगा, और आप भी। यह मुझे उन लोगों की याद दिलाता है जो पहले कार्यात्मक प्रोग्रामिंग की कोशिश नहीं करते हैं। मुझे दुख है कि मैंने इसे जल्द
आज़माया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.