विम संपादक का आधुनिक संस्करण, नियोविम 0.6.0 का विमोचन

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

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

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

वर्तमान में, लगभग 130 विशिष्ट प्लगइन्स पहले ही तैयार किए जा चुके हैं, विभिन्न प्रोग्रामिंग भाषाओं (सी++, क्लोजर, पर्ल, पायथन, गो, जावा, लिस्प, लुआ, रूबी) और फ्रेमवर्क (क्यूटी) का उपयोग करके प्लगइन्स बनाने और इंटरफेस लागू करने के लिए बाइंडिंग उपलब्ध हैं। ncurses, नोड .js, इलेक्ट्रॉन, GTK)। अनेक उपयोगकर्ता इंटरफ़ेस विकल्प विकसित किए जा रहे हैं. जीयूआई ऐड-ऑन काफी हद तक प्लगइन्स की तरह होते हैं, लेकिन प्लगइन्स के विपरीत, वे नियोविम फ़ंक्शंस के लिए कॉल शुरू करते हैं, जबकि प्लगइन्स को नियोविम के भीतर से कॉल किया जाता है।

नये संस्करण में कुछ बदलाव:

  • В vim-скрипты добавлена поддержка локальных переменных, область видимости для которых ограничена только текущим скриптом.
  • Значительно улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией. В vim-скриптах добавлена возможность вызова Lua-функций как методов через указание префикса v:lua (например, «arg1->v:lua.somemod.func(arg2)»).
  • Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы. Применение LSP позволяет использовать более 150 готовых обработчиков для различных языков программирования, подготовленных для редактора кода Visual Studio Code.
  • Улучшены средства диагностики проблем в коде. Добавлена возможность вывода текста диагностических сообщений и плавающих окон с кодом, связанным с подобными сообщениями. Обеспечена обработка диагностических сообщений, передаваемых LSP-сервером.
  • Добавлена поддержка виртуальных строк, которые могут использоваться, например, для вывода блоков со служебной информацией.
  • Внесены различные оптимизации производительности, например, задействована хэш таблица для подсвечиваемых имён групп.
  • Прекращена поддержка Windows 7 и 32-разрядных сборок для Windows.

स्रोत: opennet.ru

एक टिप्पणी जोड़ें