vim change: x फ़ंक्शन को बचाने के बजाय बफर को हटाने के लिए;




remap (2)

मैं सेट करना चाहता हूं :x delete buffer को delete buffer लिए विम gui-mode में क्योंकि मैं हमेशा पूरे जीवीएम को मारता हूं, जो कि कष्टप्रद है। मुझे पता है कि मैं विशेष रूप if has("gui running") साथ GUI समस्याओं को सेट कर सकता हूं लेकिन पता नहीं कैसे remap :x

अग्रिम में धन्यवाद

ps: शायद टैग / टर्म remap गलत है, लेकिन मुझे सही शब्द नहीं पता है, यही कारण है कि Google ने बिल्कुल भी मदद नहीं की।


मुझे अभिव्यक्ति संक्षिप्त नाम का सबसे सुरक्षित विकल्प मिल रहा है:

cnoreabbrev <expr> x getcmdtype() == ":" && getcmdline() == 'x' ? 'bd' : 'x'

यह सुनिश्चित करेगा कि संक्षेप केवल bd बढ़ाया जाएगा जब :x अन्यथा उपयोग किया जाता है, बस x विस्तार करें

अधिक सहायता के लिए:

:h map-<expr>
:h getcmdtype()
:h getcmdline()

आगे निरीक्षण पर एक प्लगिन प्रतीत होता है जो वास्तव में हरि कृष्ण दारा द्वारा सीएमडीलीअस । यह उपरोक्त तकनीक की भिन्नता का उपयोग करता है


ऐसा लग रहा है जितना आसान नहीं है। :map कमानों के साथ काम नहीं करेगा और :command केवल :command स्वीकार करते हैं जो कि अपरकेस अक्षर से शुरू होता है। लेकिन आप उपयोग कर सकते हैं :cabbrev :

if has("gui_running")
  cabbrev x bd
endif

अद्यतन:: :cmap इस्तेमाल वास्तव में किया जा सकता है: :cmap x bd , लेकिन यह सही काम नहीं करता है: कमांड में x की प्रत्येक घटना तुरंत bd बदल दी जाती है।

संपादित करें: यह प्रश्न मैं (पुनः) नक्शा में मौजूदा आदेशों का एक डुप्लिकेट है ?





remap