क्या वर्तमान लाइन के लिए कोई टेक्स्ट ऑब्जेक्ट है?


जवाबों:


13

यहाँ एक "लाइन" टेक्स्ट-ऑब्जेक्ट्स है:

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:

  1. आप एक दृश्य मोड मानचित्रण को परिभाषित करते हैं जो वांछित क्षेत्र को कवर करता है,
  2. आप उस मैपिंग का उपयोग ऑपरेटर द्वारा लंबित मैपिंग में करते हैं।

ध्यान दें कि मैं प्रयोग किया जाता है :onoremapक्योंकि il, alऔर i%पहले से ही मौजूद नहीं है। यदि आप किसी मौजूदा गति या पाठ-ऑब्जेक्ट को ओवरराइड कर रहे हैं - कहते हैं ip- आपको एक पुनरावर्ती मैपिंग का उपयोग करना चाहिए :omap:।

:help :map-operator थोड़ा और अधिक उन्नत विधि का वर्णन करता है।

देखें :help v_oके लिए oदृश्य मोड में।


ठंडा। क्या आप इसके कुछ अंशों को समझाते हैं? oOnoremap में (ऑपरेटर लंबित मोड) क्या है ? oविजुअल मोड में क्या करता है? मुझे लगता है कि यह "अन्य पक्ष" है, क्योंकि यह एक चयन के दूसरे पक्ष पर कूदने लगता है ... मुझे इस :hपर कैसे पता चलेगा ? मैं इसके साथ नहीं मिल सकता है :h x_oया :h o
lindhe

स्पष्टीकरण जोड़ा गया।
रोमेल

1

मैं 0 के बजाय ^ का उपयोग करने के लिए एक अतिरिक्त समाधान का सुझाव दूंगा (इसलिए पहले वर्ण की शुरुआत में यह रेखा शुरू होती है:

xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>

इस तरह अगर हम "लाइन में बदलाव" करते हैं तो यह इंडेंटेशन स्तर का सम्मान करेगा।


विम मास्टर काना द्वारा यह कार्यक्षमता प्रदान करने वाला एक प्लगइन भी है: github.com/kana/vim-textobj-line/blob/master/doc/…
Blasco
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.