विभिन्न विम कार्यान्वयन के बीच अंतर क्या है?


25

मैं Emacs में कई अलग-अलग विम कार्यान्वयनों से अवगत हूं। वहाँ बुराई-मोड, सांप, vimpulse और विम-मोड है। क्या अन्य हैं? वे कैसे तुलना करते हैं?

मैं ध्यान देता हूं कि evil-*MELPA पर बहुत सारे पैकेज हैं, उनमें से कोई भी सुझाव 100% फ़ीचर-पूर्ण नहीं है। वे क्या सुविधाएँ प्रदान करते हैं, और क्या विम सुविधाएँ गायब हैं?

(मैं रिवर्स में दिलचस्पी नहीं रखता, जहां " vi मैक्रो का एक सेट [जो] एक काफी पूर्ण एमएसीएस कार्यान्वयन है !)!"


1
शायद "एमुलेशन" अधिक सही और कम भ्रमित करने वाला होगा क्योंकि सूचीबद्ध मोड का लक्ष्य आपको वह व्यवहार दे रहा है जो आप चाहते हैं, एमएसीएस के शीर्ष पर एक संपूर्ण संपादक को लागू नहीं करना।
वामासा

जवाबों:


35

vi, vipऔर viper(निर्माण तिथि द्वारा आदेश दिया गया) Emacs के साथ बिल्ट-इन आते हैं, वे सभी VI का अनुकरण करते हैं। vim-modeवास्तव में विम का अनुकरण करने के लिए एक नया, स्टैंड-अलोन प्रयास है, जो सबसे उपयोगी रिम विशेषताओं को देने vimpulseके viperलिए एक्स्ट्रा के एक सेट है। evilके प्रतिस्थापन के रूप में बनाया गया था vim-mode

evilसबसे हालिया परियोजना है और केवल वही है जो सक्रिय रूप से विकसित है। इसका लक्ष्य Vim के संपादन मॉडल का ईमानदारी से अनुकरण करना है, जहाँ भी यह हो सकता है मौजूदा Emacs कार्यक्षमता का लाभ उठाना। व्यक्तिगत रूप से मैं कहूंगा कि यह लगभग 90% पूर्ण है, क्योंकि कुछ नए कमांड (जैसे gn) गायब हैं, कुछ प्रदर्शन-संबंधित कार्यक्षमता को फिर से बनाना काफी कठिन है (जैसे फ़ाइल के अंत के बाद टिल्ड्स का प्रदर्शन) और इसे लागू नहीं करना Vimscript दुभाषिया या Ex मोड की मूल बातों से परे कुछ भी। हालाँकि इसे बढ़ाना और मूल से अधिक आत्मनिरीक्षण करना आसान है, evil-*एक्सटेंशन लगभग सभी मामलों में विम प्लग के बराबर Emacs हैं ( evil-leaderउदाहरण के लिए यह एक अपवाद होगा क्योंकि Emacs कीमैप समर्थन पर विचार करना आवश्यक नहीं है)।

को ध्यान में रखते evilबिंदुओं पर विम श्रेष्ठ (देखें है :sऔर अपने दृश्य पूर्वावलोकन या कैसे छोटे से प्रयास एक उपयोगी नई विधा बना हुआ बनाने ), मैं तहे दिल से यह Emacs के लिए मोडल संपादन में रुचि रखने वाले हर किसी के लिए सलाह देते हैं।


आपने g/विम में एक नए कमांड होने का उल्लेख किया। मैंने इसे कभी नहीं देखा है, और इस पर कोई दस्तावेज नहीं मिल सकता है। यह विम में क्या करता है?
ivan

मुझे क्षमा करें, मेरा मतलब था gn। यह खोज परिणामों को टेक्स्ट ऑब्जेक्ट में बदल देता है। इसके अलावा, यह अब तक लागू किया गया है।
वामासा

ओह समझा। मुझे यह सुनकर खुशी हुई कि इसे लागू कर दिया गया है क्योंकि मैं विम में एक सा प्रयोग करता हूं।
ivan

9

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

  1. कोई वैंपस्क्रिप्ट इंटरप्रेटर नहीं है, और मेरे ज्ञान में किसी को लागू करने की कोई योजना नहीं है।
  2. इंक्रीमेंट और डिक्रीमेंटिंग नंबर ( C-aऔर C-x) इसलिए नहीं जोड़े जाएंगे क्योंकि C-xEmacs कीबाइंडिंग बहुत महत्वपूर्ण है।
  3. नेता कुंजी की कोई अंतर्निहित अवधारणा नहीं है; इसके बजाय, डिफ़ॉल्ट रूप \से बाध्य है evil-execute-in-emacs-state
  4. C-uडिफ़ॉल्ट रूप से स्क्रॉल करने के लिए बाध्य नहीं है क्योंकि यह Emacs कीबाइंडिंग के रूप में बहुत महत्वपूर्ण है (हालांकि आप इसके साथ इसे अधिलेखित कर सकते हैं evil-want-C-u-scroll)।

विम विशेषताओं की एक सूची खोजने के लिए जिसे अभी तक लागू नहीं किया गया है (इस उत्तर को लिखने के समय), देखने के लिए सबसे अच्छी जगह मुद्दा ट्रैकर है । सूची में शामिल चीजों का एक यादृच्छिक नमूना:

  1. किसी फ़ाइल को exलागू नहीं किया गया है
  2. कुछ मोशन कमांड विम की तरह व्यवहार नहीं करते हैं
  3. :makeमैप नहीं किया गया हैM-x compile
  4. C-oinsertमोड में काफी व्यवहार नहीं करता है जैसे यह विम में करता है
  5. स्वैप विंडो बफ़र्स लागू नहीं किया गया है

कई और आदेश शामिल हैं, जो खुले मुद्दे की सूची (विशेष रूप से जटिल exकमांड) में नहीं हैं, लेकिन जैसा कि आप सूची से देख सकते हैं कि वे काफी मामूली या अस्पष्ट vim विशेषताएँ हैं (विम एक बड़ा लक्ष्य है जिसके साथ 100% सुविधा समता प्राप्त)।


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

@ हाईबिनिन, मैं सिर्फ उन चीजों का जिक्र कर रहा हूं जो अंतर्निहित हैं और बुराई के साथ डिफ़ॉल्ट रूप से सक्षम हैं।
शास्त्री

3

एविल का लक्ष्य विम का अनुकरण करना है, जबकि वाइपर का लक्ष्य वीआई का अनुकरण करना है। विम-मोड और विम्पुल ईविल के पूर्ववर्ती हैं और मेरे ज्ञान में अब विकसित नहीं हुए हैं। इन परियोजनाओं की कमियों को दूर करने के लिए इविल परियोजना शुरू की गई थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.