जवाबों:
यहाँ एक "लाइन" टेक्स्ट-ऑब्जेक्ट्स है:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
और एक कच्चा "बफर" टेक्स्ट-ऑब्जेक्ट:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
--- संपादित करें ---
: एक "ऑपरेटर" एक आदेश है कि अपने आप में कुछ नहीं करता है d
, y
आदि
उन कुंजियों को दबाते हुए आपको "ऑपरेटर-लंबित मोड" में डाल दिया जाता है, जहां विम आपको यह बताने के लिए इंतजार करता है कि आप क्या चाहते हैं कि यह "ऑपरेटर-लंबित गति" के साथ ... पर संचालित हो।
आप कस्टम ऑपरेटर-लंबित गतियों का उपयोग :omap
या :onoremap
परिभाषित कर सकते हैं । यहां इस्तेमाल की जाने वाली तकनीक से प्रेरित है :help omap-info
:
ध्यान दें कि मैं प्रयोग किया जाता है :onoremap
क्योंकि il
, al
और i%
पहले से ही मौजूद नहीं है। यदि आप किसी मौजूदा गति या पाठ-ऑब्जेक्ट को ओवरराइड कर रहे हैं - कहते हैं ip
- आपको एक पुनरावर्ती मैपिंग का उपयोग करना चाहिए :omap
:।
:help :map-operator
थोड़ा और अधिक उन्नत विधि का वर्णन करता है।
देखें :help v_o
के लिए o
दृश्य मोड में।
o
Onoremap में (ऑपरेटर लंबित मोड) क्या है ? o
विजुअल मोड में क्या करता है? मुझे लगता है कि यह "अन्य पक्ष" है, क्योंकि यह एक चयन के दूसरे पक्ष पर कूदने लगता है ... मुझे इस :h
पर कैसे पता चलेगा ? मैं इसके साथ नहीं मिल सकता है :h x_o
या :h o
।
मैं 0 के बजाय ^ का उपयोग करने के लिए एक अतिरिक्त समाधान का सुझाव दूंगा (इसलिए पहले वर्ण की शुरुआत में यह रेखा शुरू होती है:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
इस तरह अगर हम "लाइन में बदलाव" करते हैं तो यह इंडेंटेशन स्तर का सम्मान करेगा।