कस्टम कस्टम कमांड, डिफ़ॉल्ट विम कमांड के साथ तार लगाएं


1

मैं अपने .vimrc में एक नया कस्टम कमांड बनाने की कोशिश कर रहा हूं, ताकि जब मैं टाइप करूं

:Hcom

कमांड करंट लाइन के टेक्स्ट को HTML कमेंट में बदल देगी।

उदहारण के लिए:

abcdef
:Hcom
<!-- abcdef -->


मैं न तो मैक्रो का उपयोग करना चाहता हूं और न ही मैपिंग का। समतुल्य स्थूल होगा

let @h = '0i<\!-- ^[A -->^['

मुझे नहीं पता कि यह कैसे करना है। क्या यह बिना स्क्रिप्ट के संभव है? मैंने सफलता के बिना, भागने की कोशिश की

:command Hcom put='0i<\!-- ^[A -->^['

जवाबों:


1

:putआदेश आवेषण सामग्री रजिस्टर (या, विशेष मामले के रूप तुम यहाँ का उपयोग कर रहे, एक अभिव्यक्ति है, यहाँ के मूल्यांकन का परिणाम: एक स्थिर स्ट्रिंग) सचमुच बफर में। यह वापस आदेश खेलने के लिए इस्तेमाल नहीं किया जा सकता है।

जैसा कि आपके आदेश सामान्य हैं और मोड मैपिंग सम्मिलित करते हैं, आप :normal!उन्हें निष्पादित करने के लिए उपयोग कर सकते हैं। एक मुख्य मानचित्रण सीधे दाहिने हाथ की ओर ले जाएगा; :commandEx मोड में कस्टम s के रूप में काम करते हैं, आपको :normalEx से सामान्य मोड में अनुवादक की आवश्यकता होती है।

:command! Hcom normal! 0i<!-- ^[A -->^[

एम्बेडेड ^[को शाब्दिक एस्केप वर्ण होना चाहिए; मैं उन्हें लिखने की सलाह दूंगा :help key-notation; आपको फिर दोहरे उद्धरण चिह्नों की आवश्यकता है और :executeस्ट्रिंग की व्याख्या करने के लिए:

:command! Hcom execute "normal! 0i<!-- \<Esc>A -->\<Esc>"

इससे पहले कि आप इस कमांड को ट्विक करने में बहुत अधिक ऊर्जा का निवेश करें, कृपया ध्यान दें कि कई कमेंटेटर प्लगइन्स हैं जो इसे बहुत अच्छी तरह से करते हैं, और वे सामान्य (और अक्सर एक्स्टेंसिबल) हैं ताकि वे किसी भी फ़ाइल प्रकार के लिए काम करें:


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