विम में, मेरे .vimrc में, मैं एक आदेश को फिर से परिभाषित कैसे कर सकता हूं (यानी: ई) कुछ और के रूप में? मैं :e *
को :tabe *
के रूप में फिर से परिभाषित करना चाहता हूं।विम: कमांड को फिर से परिभाषित करें
उत्तर
मैं यह करने के लिए एक तरीका खोज निकाला। How to disable a built-in command in vim देखें। उस से, हम देख सकते हैं कि हम कमांड को बदलने के लिए cabbrev का उपयोग कर सकते हैं। मेरी जरूरतों के लिए, cabbrev e tabe
सही है।
लेकिन हम उपयोगकर्ता द्वारा परिभाषित लोगों के लिए उपयोगकर्ताओं के लिए सुलभ निचले केस वर्णों से शुरू होने वाले आदेशों को कम करने के लिए इस समाधान को सामान्यीकृत कर सकते हैं: उपयोगकर्ता द्वारा परिभाषित एक अंतर्निहित कमांड को परिभाषित करने के लिए cabbrev (re) का उपयोग करें। इस प्रकार, हम अंतर्निहित कमांड के साथ-साथ उपयोगकर्ता परिभाषित लोगों को फिर से परिभाषित करने में सक्षम हैं।
:command -nargs=+ E :tabe "<args>"
:cabbrev e E
सब है कि:
यहाँ एक उदाहरण है, जो मेरी समस्या के लिए मेरे ऊपर उल्लिखित समाधान के बराबर है है।
जैसा कि मैं इसे समझता हूं, आप नहीं कर सकते। उपयोगकर्ता परिभाषित कमांड में अपरकेस पहला अक्षर होना चाहिए।
:help :command
अधिक जानकारी के लिए
है कि मैं अब तक देखा है एक प्लगइन के बिना सबसे अच्छा समाधान नहीं है:
cnoreabbrev <expr> e getcmdtype() == ":" && getcmdline() == 'e' ? 'tabe' : 'e'
आप एक सरल का उपयोग करते हैं:
cnoreabbrev e E
रूप @Yktula ने सुझाव दिया अपने आदेश टूट जाएगा यदि आप करना चाहते हैं:
echo e f
जो बन जाएगा:
echo E f
इसके बजाए।
:Alias e tabe
प्लगइन भी लिखने के समय को getcmdtype() == ":"
तकनीक का उपयोग करता:
टिप्पणी में @pydave द्वारा समझाया, cmdalias plugin बस के रूप में सुरक्षित उर्फ करने के लिए एक सरल अंतरफलक कहते हैं इसकी कार्यक्षमता को लागू करें।
आप इसे [cmdalias] (http://www.vim.org/scripts/script.php?script_id=746) का उपयोग कर सकते हैं ताकि इसे सरल बनाया जा सके: 'एलियास ई टैब' और यह आपके लिए getcmdline जादू करेगा। – idbrii
- 1. MATLAB - YTickLabel को फिर से परिभाषित करें
- 2. विम को फिर से कैसे प्रस्तुत करें:! दे घुमा के?
- 3. डायनामिक रूप से कमांड लाइन कमांड उत्पन्न करें, फिर पावरहेल
- 4. विम कमांड
- 5. लाटेक्स: तारांकित आदेश को फिर से परिभाषित करना
- 6. विम में बफर को फिर से खोलने के लिए कैसे?
- 7. जीएलआईबी फिर से परिभाषित क्यों करता है?
- 8. विम में कमांड मोड से बैकस्पेस कैसे करें?
- 9. विम कमांड लॉग
- 10. विम कॉमा कमांड कुंजियां
- 11. मेमेंटो/कमांड पैटर्न के साथ फास्ट पूर्ववत/फिर से करें?
- 12. मैं अजगर में फ़ंक्शंस को फिर से परिभाषित कैसे करूं?
- 13. मैं जावास्क्रिप्ट में 'यह' को फिर से परिभाषित कैसे करूं?
- 14. PHP स्थिरांक को फिर से परिभाषित करना संभव है?
- 15. व्युत्पन्न कक्षा में एक टाइपपीफ को फिर से परिभाषित करना?
- 16. लिस्प आपको भाषा को फिर से परिभाषित करने देता है?
- 17. WPF में एक संसाधन को फिर से परिभाषित/उपनाम?
- 18. को फिर से परिभाषित नाम एक्सेल रेंज तो Apache POI
- 19. क्या सी ++ कीवर्ड को फिर से परिभाषित करना कानूनी है?
- 20. विम कमांड लाइन रंग सेटिंग
- 21. डीबगिंग को सरल बनाने के लिए आईओ को फिर से परिभाषित करें?
- 22. क्या मैं एक सी ++ मैक्रो को फिर से परिभाषित कर सकता हूं, फिर इसे वापस परिभाषित कर सकता हूं?
- 23. फिर क्लिक करें फिर से सक्षम करें क्लिक करें jQuery
- 24. विम: पाइप रजिस्टर बाहरी कमांड
- 25. विम कमांड लाइन एस्केप टाइमआउट
- 26. तालिका एनीमेशन को फिर से लोड करें
- 27. ट्रीस्टोर को फिर से लोड कैसे करें?
- 28. स्थिर प्रारंभकर्ता को फिर से आमंत्रित करें
- 29. gdbinit को फिर से लोड कैसे करें?
- 30. विम में कैसे पता लगाएं कि कमांड
यदि आप टाइप करना चाहते हैं तो यह तोड़ता है: 'echo e f', जो इसके बजाय' echo e f' बन जाएगा। मेरा जवाब इस पर काबू पाने का प्रयास करता है। –