विम प्लगइन बनाने के लिए क्या करना चाहिए?


12

इसलिए मेरा प्रश्न सरल है। क्या यह एक अच्छा विचार है कि विम स्क्रिप्टिंग सीखें सिर्फ विम बनाने के लिए या हमें कुछ अन्य स्वीकृत भाषाओं को अपनाना चाहिए।

उदाहरण के लिए यह लिंक एक YouTube वीडियो खोलता है जो दिखाता है कि विम प्लग का उपयोग करने के लिए पायथन का उपयोग कैसे करें।

विम स्क्रिप्ट पूरी तरह से उपयोगी नहीं हैं जब तक कि कोई कुछ विम प्लग बनाने का इरादा न करे। तो क्या कोई विशेष बात है जो तब तक नहीं की जा सकती जब तक कि विम स्क्रिप्ट का उपयोग न किया जाए?


2
ध्यान दें कि बहुत से लोग किसी भी प्लगइन्स को बनाने या वितरित किए बिना, अपने विम को कॉन्फ़िगर करने (बहुत अच्छी तरह से) करने के लिए विमस्क्रिप्ट का उपयोग करते हैं।
VanLaser

जवाबों:


12

मेरा प्लगइन्स विम में 99% है। कारण यह है कि जहां विम स्थापित है, वहां विम उपलब्ध है। यह अन्य भाषाओं के साथ बहुत अधिक जटिल है - उदाहरण के लिए, यह दुर्लभ है मैंने पायथन को उन खिड़कियों के बक्से पर स्थापित किया है जहां मैं विम का उपयोग करता हूं।

बेशक विमल बोझिल है, यह कई शांत विशेषताओं को याद कर रहा है, लेकिन कम से कम, कुछ पोर्टेबल होना आसान है।

विम्ल में 1% नहीं है जब मुझे बाहरी एपीआई के साथ बातचीत करने की आवश्यकता होती है जो अजगर बाँधने की पेशकश करते हैं।

BTW, लगभग सभी चीजें जो आप VimL के बारे में सीखते हैं, जब आप जैसे आदेशों के साथ खेलते हैं, उनका उपयोग अंतःक्रियात्मक रूप से किया जा सकता है :substitute। अधिकांश मैपिंग या मैक्रोज़ को अजगर की आवश्यकता नहीं है।


1
मैं वास्तव में उस बोझिल विम को नहीं खोजता। बेशक, मैं मानता हूं कि इसमें शांत सुविधाओं और अजगर जैसी उच्च स्तरीय भाषाओं की कार्यक्षमता का अभाव है, लेकिन कुछ समय के लिए इसके साथ काम करने के बाद, मुझे काम करने के लिए विमल काफी सुखद लगता है। मुझे लगता है कि VimL के लिए प्रतिष्ठा इससे भी बदतर है जितनी जरूरत है।
कार्ल यंगवे लर्वग

कुंआ। मुझे यह स्वीकार करना चाहिए कि vim5.x (जब मैंने इसका उपयोग शुरू किया था) के बाद से कई प्रगति हुई है। लेकिन अभी भी कोने के मामले हैं जहां हमें जटिल चीजें करनी हैं। उदाहरण के लिए देखें map()कि तार या (असंबंधित) की उम्मीद है :map। मुझे अक्सर अपने अंत तक आने के लिए स्ट्रिंग मूल्यांकन के साथ / आस-पास खेलना पड़ता है जैसे समारोह कॉलिंग की मैपिंग या प्रोसेसिंग सूची तैयार करना, ...
ल्यूक हरमिट्टे

किसी अन्य भाषा में vim plugins लिखना आपको किसी भी तरह से VimL सीखने से मुक्त नहीं करता है, क्योंकि अजगर / माणिक आदि के लिए बाइंडिंग। बहुत सीमित हैं और आप अनिवार्य रूप से execवैसे भी विम के स्निपेट को समाप्त करते हैं। यह आपको अपने मुख्य तर्क को एक ऐसी भाषा में लिखने देता है, जिसमें आप बहुत अधिक कुशलता से काम करने में सक्षम हो सकते हैं, लेकिन आपको अभी भी विमली सीखने की बहुत आवश्यकता है।
hobbs

12

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

इसमें अन्य भाषाओं के साथ स्क्रिप्टिंग विम के बारे में एक छोटी चर्चा भी शामिल है :

सबसे पहले, किसी अन्य भाषा का उपयोग करने के लिए आपके प्लगइन के उपयोगकर्ताओं को उस संस्करण के समर्थन के साथ संकलित विम संस्करण का उपयोग करना होगा। इस दिन और उम्र में, यह आमतौर पर कोई समस्या नहीं है, लेकिन अगर आप चाहते हैं कि आपका प्लगइन हर जगह चले, तो इसका कोई विकल्प नहीं है।

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

अंत में, किसी अन्य भाषा का उपयोग आपको पूरी तरह से विम्सस्क्रिप्ट की विलक्षणताओं से प्रेरित नहीं करता है। आपको अभी भी सीखने की ज़रूरत है कि विम्सस्क्रिप्ट में अधिकांश चीजें कैसे की जाती हैं - किसी अन्य भाषा का उपयोग करने से आप इसे अधिक से अधिक बड़े करीने से लपेट सकते हैं, अन्यथा नहीं।

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

यहां तक ​​कि जब आश्रितों को सेटअप करना आसान होता है तो आप कुछ समस्याओं से टकरा सकते हैं (जैसे: कुछ पायथन-आधारित प्लग-इन 100% काम नहीं करते हैं जब वे वर्चुअल मशीनों पर साझा किए गए फ़ोल्डरों से सॉर्ट किए जाते हैं)। यही कारण है कि मैंने जो कुछ प्लगइन्स लिखे हैं वे केवल विम का उपयोग करते हैं।

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