प्लगइन के उपलब्ध विकल्पों को कैसे सूचीबद्ध करें?


10

मुझे हाल ही में पता चला कि YouCompleteMeएक g:ycm_autoclose_preview_window_after_insertionविकल्प है जो सम्मिलित मोड से बाहर निकलने के बाद स्वचालित रूप से दस्तावेज़ीकरण पूर्वावलोकन विंडो को छुपाता है, और मैंने हाल ही में विम का उपयोग करना शुरू कर दिया है, इसलिए यह पहली बार था जब मैंने एक विकल्प निर्धारित किया था।

इसलिए मैंने सोचा कि अगर अन्य प्लगइन्स मैं अपने विम वातावरण में crammed विकल्प उपलब्ध है, उन्हें मैन्युअल रूप से खोज के बिना।

क्या वे विश्व स्तर पर पंजीकृत हैं जब विम शुरू होता है, एक कमांड के लिए जो उन्हें उपलब्ध होने के लिए सूचीबद्ध करता है, या यह नहीं किया जा सकता है?


आप नहीं कर सकते। प्लगइन्स के लिए वेरिएबल्स को प्रलेखित करने की आवश्यकता है। यह जानने का कोई तरीका नहीं है कि कोड को पढ़े बिना किस चर का उपयोग किया जाता है।
क्रिश्चियन ब्रेन्डट

जवाबों:


6

विम सभी संभव प्लगइन विकल्पों को जानने का कोई तरीका प्रदान नहीं करता है।

एक प्लगइन लेखक के रूप में मैं आपको बता सकता हूं कि यह काफी जटिल है क्योंकि आगे बढ़ने के कई अलग-अलग तरीके हैं। उदाहरण के लिए या तो हम मानते हैं कि यदि अंतिम-उपयोगकर्ता ने इसके विकल्प के लिए कोई मूल्य प्रदान नहीं किया है, .vimrcतो हम इस विकल्प को अस्तित्व में लाने के लिए और एक डिफ़ॉल्ट मान के बराबर होने के लिए बाध्य करते हैं, या हम कह सकते हैं: "या तो मान सेट करें अंतिम-उपयोगकर्ता, या हार्ड-कोडित डिफ़ॉल्ट मान का उपयोग करें "।

उस पहले दृष्टिकोण के साथ, अंतिम-उपयोगकर्ता उपलब्ध विकल्पों की सूची को a c_CTRL-D, या c_TAB, आदि के साथ देख सकता है ।

अधिक से अधिक प्लगइन्स अपने सभी विकल्पों को शब्दकोशों में व्यवस्थित करने के लिए चुनते हैं। यानी, होने के बजाय g:plugin_foo_optionऔर g:plugin_bar_option, हमारे पास है g:plugin.foo_optionऔर g:plugin.bar_option। यह g:वैश्विक विकल्पों की सूची को प्रदूषित करने से बचता है , लेकिन हम कमांड-लाइन ऑटोकंप्लीशन खो देते हैं (मैं आखिरकार विषय का एक मुद्दा खोल सकता हूं, vim github पर)।

अब तक मैंने केवल वैश्विक विकल्पों के बारे में बात की है। अधिकांश प्लगइन्स अधिक विशिष्ट विकल्पों का समर्थन करने की कोशिश नहीं करते हैं, भले ही उन्हें यह करना चाहिए था। उदाहरण के लिए, मुझे खेद है कि न तो YouCompleteMe और न ही वैकल्पिक , और न ही कई अन्य प्लगइन्स, वैश्विक विकल्पों के बजाय प्रोजेक्ट विशिष्ट विकल्पों का उपयोग करते हैं। दरअसल, मैं जिस प्रोजेक्ट पर काम कर रहा हूं, उसके आधार पर मैं उनके संबंधित विकल्पों को विभिन्न मूल्यों पर सेट करना चाहता हूं। दुर्भाग्य से, यह एक कार्य-प्रवाह नहीं है जो उन्होंने माना है। मेरे प्लगइन्स में, कई विकल्प परियोजना के आधार पर, या बफर आधार पर विशेष किए जा सकते हैं। हाल ही में मैंने इस विषय पर एक प्रयोग किया है। लेकिन सामान्य और सरल g:plugin_option+ b:plugin_optionजोड़ी के साथ भी , सभी उपलब्ध विकल्पों को जानना असंभव है।

कभी-कभी मैं ऐसे आदेश देने की कोशिश करता हूं जो विकल्पों को सेट करने में मदद करते हैं जैसा कि मैंने बिल्ड-टूल्स-रैपर के साथ किया है, या यहां तक ​​कि मेनू में कुछ विकल्प प्रदर्शित करने के लिए (जब gvim का उपयोग करते हुए), लेकिन यह वास्तव में परिपूर्ण होने से बहुत दूर है।

मुझे डर है कि प्रलेखन सबसे अच्छी चीज उपलब्ध है। तुम भी एक कोशिश कर सकते हैं :h pluginname^D। यह शायद सबसे अच्छा तरीका उपलब्ध है।


पर्दे के पीछे के विकल्पों की शानदार व्याख्या। और :h pluginnameवास्तव में बहुत महान है! इसलिए मुझे अलग-अलग प्लगइन्स के दस्तावेज़ पढ़ने के लिए कई बार विम से दूर जाने की ज़रूरत नहीं है।
इयूलियन ओनोफ्रेई

2

विम के पास उपलब्ध विकल्पों का संदर्भ नहीं है। सबसे अच्छा आप यह देख सकते हैं कि आरंभिक रूप से क्या किया गया है।

विम के अंतर्निहित विकल्पों के लिए कमांड है :set। से :h :set:

:se[t] Show all options that differ from their default value.

आप सभी उपलब्ध विकल्पों को नहीं देखेंगे, केवल वे ही जिन्हें आपने संशोधित किया है।

आप :letसभी घोषित चर के मूल्य और :let g:वैश्विक चर की सूची के लिए भी उपयोग कर सकते हैं । ( :h E121चर की एक सूची देखें जिसे आप दिखा सकते हैं)।

ध्यान दें कि इन सूचियों को पढ़ना / पार्स करना हमेशा आसान नहीं होता है। प्लगइन्स के लिए, आपका सबसे अच्छा विकल्प दस्तावेज़ीकरण पढ़ना है और आपको आवश्यक विकल्प ढूंढना है।

आप इस विकिया टिप से भी रूचि ले सकते हैं कि विम पर्यावरण कैसे प्रदर्शित करें


अन्य उत्तर को स्वीकार कर लिया है क्योंकि यह अधिक क्रियात्मक है, हालांकि इसमें मेरे प्रश्न से संबंधित दिलचस्प कमांड हैं जो मदद कर सकते हैं।
इयूलियन ओनोफ्रेई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.