विम और VI के बीच सबसे बड़ा अंतर


25

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

इससे मुझे आश्चर्य हुआ कि वी और विम के बीच सबसे बड़े अंतर क्या हैं?


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

जवाबों:


25

वास्तव में अंतर के बारे में बताने के लिए विम में एक मदद कमांड है: :help vi_diff

विम की साइट से , सबसे बड़ी हैं:

असीमित पूर्ववत करें

आप xxxx कर सकते हैं और प्रत्येक चार को हटा सकते हैं। आखिरी बार जब आपने "jjjj" टाइप किया था और तब पता चला कि कैप्स लॉक की चाबी चालू थी? आप गलती से एक साथ पाँच लाइनों में शामिल हो गए, और Vi केवल अंतिम आदेश को पूर्ववत कर सकते हैं। विम में आप सभी चार "जे" कमांड को पूर्ववत कर सकते हैं और अपना मूल पाठ वापस पा सकते हैं।

पोर्टेबिलिटी

Vi केवल यूनिक्स पर उपलब्ध है। विम MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX और अन्य प्रणालियों पर काम करता है। और हर यूनिक्स प्रणाली पर भी।

वाक्य - विन्यास पर प्रकाश डालना

फ़ाइल के प्रकार के आधार पर विभिन्न रंगों या शैलियों में बफर के कुछ हिस्सों को उजागर करने के लिए विम को प्रोग्राम किया जा सकता है। विम के साथ बंडल किए गए सैकड़ों सिंटैक्स हाइलाइटिंग नियम हैं।

जीयूआई

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



रीडमी के अनुसार , उनमें से कुछ ओएस अब समर्थित नहीं हैं।
रॉल्फ

7

विम में कई विशेषताएं हैं जो वीआई नहीं करती हैं, यहां तक ​​कि ऐसी विशेषताएं भी हैं जो स्पष्ट रूप से "उन्नत" विशेषताएं नहीं हैं।

व्यवहार में, इसका मतलब है कि यदि आप वीआई के लिए उपयोग किए जाते हैं, तो आप विम (या कुछ अन्य वीआई क्लोन) का उपयोग शुरू करने पर बहुत कम अंतरों की संभावना करेंगे, लेकिन अगर आप वीआईएम के लिए उपयोग किए जाते हैं और यदि आपके "रिफ्लेक्स" में ऐसी विशेषताएं शामिल हैं जैसे विजुअल मोड हाइलाइटिंग, कोई भी महत्वपूर्ण क्रिया जो "g" या "z" से शुरू होती है, कर्सर के तहत किसी शब्द को हटाने के लिए "i" या "a" [जैसे "daw" के साथ कोई टेक्स्ट एक्शन, इन्सर्ट मोड में एरो कीज़ के साथ नेविगेट करना , आदि, आप पाएंगे कि जो लोग वीआई में काम नहीं करते हैं।

जब आप कहते हैं कि आप "वी की कोशिश की" का उपयोग कर रहे हैं तो वास्तव में क्या है, इसका भी सवाल है। कई प्रणालियों पर, "vi" वास्तव में विम चलाता है, एक मोड में जहां इनमें से कुछ अंतर लागू होते हैं (डिफ़ॉल्ट शोमोड जैसा कि आपने देखा, तीर कुंजियाँ इन्सर्ट मोड में काम नहीं करती हैं) और अन्य नहीं (विज़ुअल मोड और g / z कुंजियाँ काम करती हैं ), और कुछ विशेषताएं एक संकलन-समय विकल्प पर निर्भर करती हैं जो कभी-कभी "छोटे विम" ​​में अक्षम होता है जो इसके लिए उपयोग किया जाता है (पाठ ऑब्जेक्ट, जैसे "एक शब्द", इनमें से एक हैं)। यदि आप असली वीआई चलाते हैं, तो आपको ये नहीं मिलेगा , या यदि "vi" Vim की तुलना में कम या अलग विशेषताओं के साथ कुछ अन्य क्लोन है, जैसे कि nvi या VILE।

और, अस्पष्ट पक्ष पर, जबकि "विम मोड में छोटे विम" ​​में स्पष्ट रूप से कोई भी विशेषताएं नहीं होती हैं जो एक पूर्ण विम नहीं होती हैं, वास्तविक मूल वीआई की कुछ विशेषताएं हैं जिनमें विम का अभाव है। इनमें प्रलेखित हैं :help vi-differences


2
मैं भारी शर्त लगाता हूँ कि ओपी वास्तव में एक "छोटे विम" ​​vi है।
केविन

2

अधिकांश तुलनाएं vi की तुलना में विम को अधिक कार्यक्षमता देती हैं, लेकिन एक अपवाद है। Vi में "ओपन" मोड था, और vim में वास्तव में यह मोड नहीं है।

ओपन मोड एक सिंगल-लाइन मोड है जिसका उपयोग दिन में उन टर्मिनलों के साथ किया जाता था जिनमें इलेक्ट्रॉनिक डिस्प्ले नहीं होते थे, यानी टेलेटाइप्स, लेटरप्रिंटर्स, और इसी तरह, और डिस्प्ले के साथ जहां कर्सर केवल सबसे नीचे रहता है।

मुझे पता है कि वहाँ प्रलेखन है जो कहता है कि विम खुले मोड का अनुकरण करता है, लेकिन मेरा अनुभव यह है कि यह नहीं है, क्योंकि मैंने इसे अपनी आँखों से vi के साथ उपयोग किया है, और मैंने कभी भी विम को ऐसा करते नहीं देखा है। ऐसा लगता है कि विम केवल openकमांड को विजुअल मोड में खोलने और संपादित करने के लिए कमांड का उपयोग करता है। मेरा मानना ​​है कि विम के आधिकारिक दस्तावेज में कहा गया है कि यह ओपन मोड का समर्थन नहीं करता है।


मेरे पास ex-vi.sourceforge.net स्थापित है, जो मूल वीआई का एक बंदरगाह है। मैं इस खुले मोड को कैसे शुरू करूं? मैनपेज के बारे में बात करने पर इसका उल्लेख करता है ^R, लेकिन कोई अन्य मदद नहीं देता है। :open some/fileलौटता है open: No such command from open/visual
muru

@muru Qको पूर्व मोड में प्रवेश करना है, फिर openzवर्तमान मोड का संदर्भ दिखाने के लिए जब आप खुले मोड में हों। वापस करने के लिए, Qफिर vi
एंटनी

0

मुझे लगता है कि तुलना करना बहुत कठिन है, क्योंकि vi में बदलाव समय के साथ हुए हैं।

जब मैं कॉलेज में था, मैंने एक डंब टर्मिनल पर प्लेन-वेनिला vi (और एक मैक पर टर्मिनल एमुलेटर पर भी) का उपयोग किया था जो सिस्टम वी का उपयोग करके मेनफ्रेम से जुड़ा था। आप यह भी नहीं पा सकते हैं कि कोई और।

लेकिन मुझे यकीन भी नहीं है कि यह सच था vi। उस समय के बारे में बहुत सारे क्लोन और पोर्ट बनाए गए थे क्योंकि vi उस समय ओपन-सोर्स नहीं थे। और जब विक्रेताओं ने क्लोन बनाया, तो उन्होंने ऐसी सुविधाएँ जोड़ीं जो vi में नहीं थीं। इतिहास एक तरह से जटिल है। आप इसे विकिपीडिया और अन्य जगहों पर पढ़ सकते हैं।

इसलिए यदि आप कुछ विक्रेताओं / हार्डवेयर का उपयोग नहीं कर रहे थे, तो आप vi का उपयोग नहीं कर रहे थे, लेकिन vi जैसा कुछ ।

लेकिन मुझे यह याद है कि vi (या मैं जिस क्लोन का उपयोग कर रहा था) उसके इंटरफेस में बहुत कम से कम है (कोई रंग नहीं, कोई INSERT लेबल, कोई mulitple undos, आदि) अभी तक यह वास्तव में पूरा कर सकता है में शक्तिशाली है। बहुत व्यावहारिक।


0

विम एफएक्यू में एक अच्छी तरह से स्वरूपित सूची है: https://vimhelp.org/vim_faq.txt.html#faq-1.4

एफएक्यू से अंश:

  • बहु-स्तरीय पूर्ववत
  • टैब, एकाधिक विंडो और बफ़र
  • लचीले सम्मिलित मोड (तीर मोड में तीर कुंजियों का उपयोग कर सकते हैं)
  • मैक्रो
  • दृश्य विधा (पाठ के दृष्टिगत रूप से चयनित अनुभाग)
  • ब्लॉक संचालक
  • ऑनलाइन हेल्प सिस्टम
  • कमांड-लाइन संपादन और इतिहास
  • कमांड लाइन पूर्णता (टैब पूर्णता)
  • क्षैतिज स्क्रॉलिंग (लंबी लाइनें)
  • यूनिकोड और अंतर्राष्ट्रीयकरण में सुधार।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.