Neovim आणि Vim यांपैकी निवड करताना, तुम्ही एका क्लासिकची ऐतिहासिक स्थिरता आणि सर्वव्यापकता की समुदायाद्वारे विकसित केलेल्या फोर्कची आधुनिक, विस्तारक्षम रचना याला प्राधान्य देता, यावर सहसा निर्णय अवलंबून असतो. जरी दोघांमध्ये समान मूळ मोडल डीएनए असला तरी, Neovim ने असिंक्रोनस प्रोसेसिंग आणि लुआ इंटिग्रेशनद्वारे टर्मिनल एडिटर काय करू शकतो याच्या मर्यादा विस्तारल्या आहेत.
ठळक मुद्दे
निओविमचे लुआ एकीकरण पारंपारिक विमस्क्रिप्टपेक्षा अधिक जलद आणि अधिक मॉड्यूलर कॉन्फिगरेशनला अनुमती देते.
जवळपास प्रत्येक युनिक्स-आधारित ऑपरेटिंग सिस्टमवर उपलब्ध असल्यामुळे, सर्व्हर प्रशासनासाठी विम हे जागतिक मानक म्हणून कायम आहे.
निओविममध्ये एक नेटिव्ह टर्मिनल एम्युलेटर आहे जो अनेकदा विमच्या अंमलबजावणीपेक्षा अधिक मजबूत असतो.
Vim9script हे जुन्या वापरकर्त्यांना पूर्णपणे वेगळ्या भाषेत न जाता कार्यक्षमतेचा मार्ग उपलब्ध करून देते.
निओविम काय आहे?
Vim चा एक आधुनिक, समुदायाच्या नेतृत्वाखालील फोर्क, जो विस्तारक्षमता, सुधारित डिफॉल्ट्स आणि शक्तिशाली असिंक्रोनस आर्किटेक्चरवर लक्ष केंद्रित करतो.
आयडीई-सारख्या कोड इंटेलिजन्ससाठी यात अंगभूत लँग्वेज सर्व्हर प्रोटोकॉल (LSP) क्लायंट आहे.
Lua ही एक उत्कृष्ट स्क्रिप्टिंग भाषा म्हणून वापरते, ज्यामुळे Vimscript पेक्षा लक्षणीयरीत्या वेगवान कामगिरी मिळते.
असिंक्रोनस जॉब नियंत्रणास समर्थन देते, ज्यामुळे UI फ्रीझ न होता प्लगइन्स बॅकग्राउंडमध्ये चालवता येतात.
अधिक स्वच्छ आणि संघटित कॉन्फिगरेशन संरचनेसाठी XDG बेस डिरेक्टरी स्पेसिफिकेशनचे पालन करते.
उच्च-कार्यक्षम, संदर्भ-जागरूक सिंटॅक्स हायलाइटिंग आणि इंडेंटेशनसाठी 'ट्री-सिटर' एकीकरणाचा समावेश आहे.
विम काय आहे?
अत्यंत सुलभतेने हाताळता येण्याजोगा आणि अस्तित्वात असलेल्या जवळपास प्रत्येक युनिक्स-सदृश प्रणालीवर उपलब्ध असलेला सुप्रसिद्ध 'Vi Improved' एडिटर.
अत्यंत मागास सुसंगतता आणि दीर्घकालीन स्थिरतेवर लक्ष केंद्रित करते.
आवृत्ती ९.० मध्ये Vim9script सादर करण्यात आले, जे त्याच्या मूळ स्क्रिप्टिंग भाषेची एक वेगवान आणि अधिक आधुनिक आवृत्ती आहे.
डॉक्युमेंटेशन, ट्युटोरियल्स आणि कम्युनिटी स्क्रिप्ट्सची एक प्रचंड, दशकांहून जुनी परिसंस्था आहे.
जवळपास सर्व लिनक्स डिस्ट्रिब्युशन्स आणि मॅकओएस आवृत्त्यांमध्ये हे आधीपासूनच इन्स्टॉल केलेले असते.
जुन्या लेगसी सर्व्हर आणि आधुनिक वर्कस्टेशन्सवर एकसारखा संपादन अनुभव प्रदान करते.
तुलना सारणी
वैशिष्ट्ये
निओविम
विम
स्क्रिप्टिंग भाषा
लुआ आणि विमस्क्रिप्ट
विमस्क्रिप्ट आणि विम९स्क्रिप्ट
नेटिव्ह एलएसपी सपोर्ट
अंगभूत
फक्त प्लगइनद्वारे
जॉब प्रोसेसिंग
पूर्णपणे असिंक्रोनस
मुख्यतः सिंक्रोनस (Vim 8+ मध्ये असिंक आहे)
डीफॉल्ट UI सेटिंग्ज
आधुनिक (व्हिज्युअल माउस, ओळ क्रमांक)
पुराणमतवादी (पारंपरिक वर्तन)
प्लगइन इकोसिस्टम
लुआ-केंद्रित (अत्याधुनिक)
विमस्क्रिप्ट-केंद्रित (स्थिर)
पोर्टेबिलिटी
मॅन्युअल इन्स्टॉल आवश्यक आहे
बहुतेक युनिक्स प्रणालींवर पूर्व-स्थापित केलेले असते
वास्तुकला
संदेश-प्रसारण (आरपीसी-आधारित)
एकसंध
तपशीलवार तुलना
आर्किटेक्चर आणि असिंक्रोनस पॉवर
हे एडिटर्स बॅकग्राउंड टास्क कसे हाताळतात, यात सर्वात मोठा तांत्रिक फरक आहे. निओविमची (Neovim) रचनाच मुळातून असिंक्रोनस (asynchronous) होण्यासाठी नव्याने करण्यात आली होती, याचा अर्थ असा की लिंटर (linter) किंवा क्लिष्ट सर्चसारखे एखादे जड प्लगइन काम करत असताना तुमची स्क्रीन लॉक करणार नाही. विमच्या (Vim) आधुनिक आवृत्त्यांनी जरी अशाच प्रकारच्या क्षमता जोडल्या असल्या तरी, निओविमची संपूर्ण प्लगइन इकोसिस्टम याच नॉन-ब्लॉकिंग मॉडेलवर आधारित आहे, ज्यामुळे जड डेव्हलपमेंटच्या काळात वापरकर्त्याला अधिक सुरळीत अनुभव मिळतो.
स्क्रिप्टिंग भाषांची लढाई
दैनंदिन वापरात कॉन्फिगरेशनच्या बाबतीत या दोन्हींमध्ये खरा फरक दिसून येतो. निओविमने लुआ (Lua) या वेगवान, हलक्याफुलक्या भाषेचा स्वीकार केला आहे, जी गेम डेव्हलपमेंटमध्ये मोठ्या प्रमाणावर वापरली जाते आणि त्यामुळे गुंतागुंतीची कॉन्फिगरेशन्स वाचायला व सांभाळायला सोपी जातात. विमने अलीकडेच विम९स्क्रिप्ट (Vim9script) सादर केली आहे, जी जुन्या आवृत्त्यांच्या तुलनेत प्रचंड वेग वाढवते, परंतु ती केवळ विममध्येच उपलब्ध आहे. यामुळे एक अशी विभागणी झाली आहे, जिथे सर्वात नाविन्यपूर्ण नवीन प्लगइन्स निओविमसाठी लुआमध्ये लिहिले जात आहेत, तर दुसरीकडे स्थिरतेच्या बाबतीत विम अव्वल स्थानी आहे.
चौकटीबाहेरचा अनुभव
इन्स्टॉलेशननंतर लगेचच, Neovim आधुनिक वापरकर्त्यांसाठी अधिक 'सोपे' मानले जाते, कारण ते माउस सपोर्ट आणि सिंटॅक्स हायलाइटिंगसारखी वैशिष्ट्ये डीफॉल्टनुसार सक्षम करते. Vim अधिक पारंपरिक पद्धत वापरते, ज्यामध्ये तुम्हाला कॉन्फिगरेशन फाइलद्वारे मूलभूत आधुनिक सुविधा स्वतःहून सक्षम कराव्या लागतात. ज्या डेव्हलपरला IDE-सारखा अनुभव लवकर हवा आहे, त्यांच्यासाठी Neovim चे अंगभूत LSP सपोर्ट, Vim मध्ये आवश्यक असलेल्या मॅन्युअल प्लगइन सेटअपच्या तुलनेत एक मोठी आघाडी देते.
उपलब्धता आणि विश्वसनीयता
विमची सर्वात मोठी ताकद म्हणजे त्याची सर्वव्यापकता; जर तुम्ही एखाद्या रिमोट सर्व्हरवर किंवा नवीन लिनक्स एनवायरनमेंटमध्ये SSH केले, तर विम (किंवा त्याचा आधीचा प्रकार Vi) तिथे जवळजवळ निश्चितपणे आधीपासूनच असतो. निओविमसाठी सहसा मॅन्युअल इन्स्टॉलेशनची पायरी आवश्यक असते, जी मर्यादित सिस्टीमवर शक्य नसू शकते. सिस्टीम ॲडमिनिस्ट्रेटर आणि जे शेकडो वेगवेगळ्या मशीन्सवर काम करतात, त्यांच्यासाठी स्टँडर्ड विमवर प्रभुत्व मिळवल्याने ते त्यांच्या मुख्य साधनाशिवाय कधीही राहणार नाहीत याची खात्री होते.
गुण आणि दोष
निओविम
गुणदोष
+अंगभूत एलएसपी समर्थन
+वेगवान लुआ स्क्रिप्टिंग
+सक्रिय समुदाय विकास
+उत्तम डीफॉल्ट सेटिंग्ज
संरक्षित केले
−आधीपासून स्थापित नाही
−वारंवार होणारे मोठे बदल
−जड प्लगइन अवलंबित्व
−लहान वारसा समर्थन
विम
गुणदोष
+सर्व्हरवर सर्वत्र आढळणारे
+अत्यंत स्थिर एपीआय
+किमान संसाधनांचा वापर
+विस्तृत दस्तऐवजीकरण
संरक्षित केले
−कोणताही मूळ एलएसपी नाही
−अवजड जुने स्क्रिप्टिंग
−सिंक्रोनस UI लॅग
−मॅन्युअल सेटअप आवश्यक आहे
सामान्य गैरसमजुती
मिथ
निओविम म्हणजे वेगळ्या नावाने ओळखले जाणारे विमच आहे.
वास्तव
जरी त्यांचा कोड समान असला तरी, निओविम हे एक महत्त्वपूर्ण रिफॅक्टर आहे, ज्याने अधिक आधुनिक प्लगइन आर्किटेक्चरला समर्थन देण्यासाठी हजारो ओळींचा जुना कोड काढून टाकला आहे. हा एक वेगळा प्रकल्प असून त्याची विकासाची विचारसरणीही वेगळी आहे.
मिथ
Neovim वापरण्यासाठी तुम्हाला Lua शिकावे लागेल.
वास्तव
Neovim हे Vimscript सोबत जवळजवळ पूर्णपणे बॅकवर्ड कंपॅटिबल आहे. तुम्ही तुमची सध्याची '.vimrc' फाईल घेऊन, तिचे नाव बदलून 'init.vim' ठेवल्यास, Lua ची एकही ओळ न बदलता ती बहुधा उत्तम प्रकारे काम करेल.
मिथ
Vim आता कालबाह्य झाले आहे आणि ते अद्ययावत केले जात नाही.
वास्तव
विम अजूनही कार्यरत आहे आणि त्यावर सक्रियपणे काम सुरू आहे. विम ९ च्या प्रकाशनाने हे दाखवून दिले की, हा प्रकल्प अजूनही नवनवीन शोध लावत आहे, विशेषतः लुआच्या वेगाशी स्पर्धा करण्यासाठी त्याने नवीन कंपाइल्ड स्क्रिप्टिंग लँग्वेज आणली आहे.
मिथ
निओविम हे विमपेक्षा कमी स्थिर आहे.
वास्तव
जरी निओविम अधिक वेगाने काम करत असले तरी, त्याच्या स्थिर आवृत्त्या अत्यंत विश्वसनीय आहेत. 'अस्थिरता' सहसा मूळ एडिटरमधून नव्हे, तर वापरकर्त्यांनी इन्स्टॉल करण्यासाठी निवडलेल्या प्रायोगिक प्लगइन्समुळे येते.
वारंवार विचारले जाणारे प्रश्न
मी माझे सध्याचे Vim प्लगइन्स Neovim मध्ये वापरू शकेन का?
बहुतांश प्रकरणांमध्ये, होय. Neovim हे थेट वापरता येईल अशा प्रकारे डिझाइन केलेले आहे, त्यामुळे पारंपरिक Vimscript प्लगइन्स व्यवस्थित काम करतात. तथापि, Lua मध्ये लिहिलेले काही अत्यंत आधुनिक Neovim प्लगइन्स सामान्य Vim मध्ये चालणार नाहीत, कारण Vim मध्ये आवश्यक Lua इंजिन एकीकरणाचा अभाव आहे.
कार्यक्षमतेच्या बाबतीत कोणते अधिक वेगवान आहे?
सामान्य मजकूर संपादनासाठी, तुम्हाला फरक जाणवणार नाही. तथापि, जेव्हा गुंतागुंतीचे प्लगइन्स किंवा मोठ्या कॉन्फिगरेशनचा प्रश्न येतो, तेव्हा निओविमची लुआ (Lua) ही क्लासिक विमस्क्रिप्टपेक्षा (Vimscript) साधारणपणे अधिक वेगवान आहे. विम ९ ची नवीन स्क्रिप्टिंग भाषा ही तफावत बऱ्याच अंशी कमी करते, परंतु IDE सारख्या जड वैशिष्ट्यांसाठी लुआ इकोसिस्टम अजूनही अधिक वेगवान वाटते.
२०२६ मध्ये कोडिंगसाठी निओविम अधिक चांगले आहे का?
बहुतेक आधुनिक डेव्हलपर्स निओविमला त्याच्या नेटिव्ह एलएसपी (LSP) आणि ट्री-सिटर सपोर्टमुळे पसंती देतात, जे अधिक चांगले ऑटो-कम्प्लिशन आणि सिंटॅक्स हायलाइटिंग प्रदान करतात. या वैशिष्ट्यांमुळे, अत्यंत वेगवान मोडल एडिटिंग शैली कायम ठेवत, तो (व्हीएस कोडसारख्या) आधुनिक एडिटरसारखा अधिक वाटतो.
आज मी निओविमऐवजी विम का निवडेन?
ज्या लोकांना त्यांचे कॉन्फिगरेशन दर काही वर्षांनी बिघडावे असे वाटत नाही, त्यांच्यासाठी Vim हा एक 'सुरक्षित' पर्याय आहे. तसेच, ज्या सिस्टिम ॲडमिनिस्ट्रेटरना नवीन सॉफ्टवेअर इन्स्टॉल करण्याची परवानगी असो वा नसो, ते लॉग इन करत असलेल्या कोणत्याही मशीनवर उत्पादकपणे काम करणे आवश्यक असते, त्यांच्यासाठीही हा एक अत्यावश्यक पर्याय आहे.
निओविम ग्राफिकल यूजर इंटरफेस (GUI) ला सपोर्ट करते का?
Neovim ची रचना मुद्दामहून स्वतःचा GUI न ठेवण्याच्या उद्देशाने केली गेली आहे. त्याऐवजी, ते एक शक्तिशाली API प्रदान करते, जे इतरांना त्यासाठी GUI तयार करण्याची परवानगी देते. यामुळे Neovide, goneovim आणि Oni सारखे उत्कृष्ट प्रकल्प तयार झाले आहेत, जे सुरळीत ॲनिमेशन आणि उत्तम फॉन्ट रेंडरिंग देतात.
मी Vim वरून Neovim वर कसे स्विच करू?
साधारणपणे, Neovim इन्स्टॉल करणे आणि तुमची '.vimrc' फाईल '~/.config/nvim/init.vim' येथे हलवणे इतके सोपे असते. तुमचे बहुतेक शॉर्टकट आणि प्लगइन्स लगेचच काम करत राहतील, ज्यामुळे तुम्हाला तुमच्या सोयीनुसार हळूहळू Lua ची वैशिष्ट्ये आत्मसात करता येतील.
'मोडल एडिटिंग' म्हणजे काय आणि दोन्ही ठिकाणी ते चालते का?
हो, दोन्ही पूर्णपणे मोडल एडिटिंगवर आधारित आहेत. याचा अर्थ असा की, एडिटरमध्ये मजकूर टाकण्यासाठी, कोडमध्ये नेव्हिगेट करण्यासाठी आणि ब्लॉक्स निवडण्यासाठी वेगवेगळे 'मोड्स' आहेत. यामुळे तुम्ही माउसला स्पर्श न करता, केवळ कीबोर्डवरूनच क्लिष्ट संपादन करू शकता.
कोणता कमी रॅम वापरतो?
येथे सामान्यतः Vim सरस ठरतो, विशेषतः 'कम्पॅटिबल' मोडमध्ये किंवा किमान कॉन्फिगसह चालवल्यावर. Neovim मध्ये डीफॉल्टनुसार अधिक फीचर्स सक्षम केलेले असतात आणि त्याच्या RPC-आधारित आर्किटेक्चरमुळे मेमरीचा वापर किंचित जास्त होऊ शकतो, तरीही आधुनिक इलेक्ट्रॉन-आधारित एडिटर्सच्या तुलनेत दोन्हीही अत्यंत हलके आहेत.
निकाल
जर तुम्हाला तुमच्या एडिटरला नवीनतम Lua प्लगइन्स आणि अंगभूत LSP सह एका उच्च-कार्यक्षम IDE मध्ये रूपांतरित करायचे असेल, तर Neovim निवडा. जर तुम्हाला सर्व सर्व्हरवर कमाल सुवाह्यता महत्त्वाची वाटत असेल आणि अनेक दशकांपासून आपले मूळ तत्त्वज्ञान न बदललेल्या एका भक्कम, पारंपरिक वातावरणाला प्राधान्य द्यायचे असेल, तर Vim वापरा.