सामान्य मोड में एक शब्द को एक yanked शब्द के साथ कैसे बदलें


25

जब मुझे एक शब्द को दूसरे शब्द के साथ बदलना होता है जो मैं पहले करता हूं, तो मैं आमतौर पर एक वर्कफ़्लो का उपयोग करता हूं जो मेरे लिए अप्राकृतिक लगता है:

मान लें कि मेरे पास यह पाठ है:

foo bar buzz

और मैं चाहता हूं कि पहले जो मैंने किया था, उसके साथ मैं भागूं fooऔर barबदलूं।

हाँ करने के बाद foo, मुझे निम्नलिखित विकल्प दिखाई देते हैं:

विकल्प 1

  1. के barसाथ कर्सर रखेंw

  2. रखो fooके सामने barके साथP

  3. bशेष पर कर्सर रखें barऔर शब्द को हटा देंde

विकल्प 2

  1. कर्सर को बार पर रखें w

  2. deमिटाने के लिए उपयोग करेंbar

  3. रजिस्टर की सामग्री को 0 के साथ रखें "0P(क्योंकि मैं मिटा दिया था bar, fooअब एक सरल के साथ सुलभ नहीं है p)

दोनों ही तरीके मेरे लिए अधिक जटिल हैं और मुझे यकीन है कि इस कार्रवाई को प्राप्त करने के लिए एक अधिक कुशल तरीका है, लेकिन मैं यह नहीं जान सकता कि कैसे। यह विचार केवल एक में हटाए गए और हटाए गए क्रियाओं को संयोजित करने के लिए होगा, या कम से कम हटाए गए शब्द को यैंक रजिस्टर में रखने से बचें, क्योंकि मैं एक सरल के साथ वांछित शब्द डाल सकता हूं p

मुझे यह भी पता है कि रिप्लेस मोड के साथ ट्रिगर किया गया था, Rलेकिन यह उस चीज़ को डालने की अनुमति नहीं देता है जो याँक्ड थी।

TL; DR : एक शब्द को यैंक रजिस्टर की सामग्री से कैसे बदला जाए?

जवाबों:


31

मान लिया जाये कि आप पहले से ही yanked किया है fooके साथ yeया कुछ इसी तरह, और कहा कि कर्सर कहीं पर है foo, तो आप उपयोग कर सकते हैं Wvep:

  • Wजाने के लिए bar(यह स्पष्ट रूप से वैकल्पिक है और वर्तमान कर्सर स्थिति पर निर्भर करेगा);
  • v दृश्य मोड शुरू करने के लिए;
  • eशब्द के अंत में जाने के लिए (आप यहां अन्य गतियों का उपयोग भी कर सकते हैं, जैसे iw);
  • pचिपकाने के लिए foo; यह वर्तमान दृश्य चयन (जिसे अनाम रजिस्टर में डाल दिया जाता है "") को बदल देगा।

2
आपको निम्नलिखित विमोकास एपिसोड में रुचि हो सकती है : दृश्य विधा से चिपकना और विनिमय के साथ पाठ के दो क्षेत्रों की अदला
पीटर

6

मुझे इसे करने का एक और तरीका मिल गया है, यह विकल्प 2 के समान थोड़ा सा है लेकिन इसमें रजिस्टरों की स्थिति को गड़बड़ाने का फायदा नहीं है।

" ब्लैक होल रजिस्टर " का उपयोग करने के लिए विचार है : यह रजिस्टर के माध्यम से सुलभ है "_और इसकी विशिष्टता है कि आप इसे लिख सकते हैं लेकिन इससे नहीं पढ़ते हैं, इसलिए एक ब्लैक होल की तरह यह रजिस्टर पूरी तरह से कुछ भी गायब कर देता है जो इसमें चला जाता है। यहां हम इसका उपयोग कर सकते हैं ताकि विलोपन के fooबाद भी यान रजिस्टर में रहे bar

इस समाधान के साथ यांकिंग के बाद का प्रवाह fooहोगा:

  • के barसाथ जा रहे हैं W(या पाठ्यक्रम के किसी भी आवश्यक शब्द)
  • हटाने के लिए "ब्लैक होल रजिस्टर" का उपयोग barके साथ"_de
  • के fooसाथ यैंक रजिस्टर से लाना P। ब्लैक होल में जाने के fooबाद से यैंक रजिस्टर अभी भी समाहित है bar

मुझे यकीन नहीं है कि यह @ Carpersmoker's की तुलना में बेहतर समाधान है ( vimgolf @Carpetsmoker की जीत में ), लेकिन मुझे ब्लैक होल रजिस्टर के बारे में नहीं पता था और मुझे लगा कि इसे जानने के लिए कुछ दिलचस्पी हो सकती है।


3
  1. "फू" की शुरुआत करें। प्रेस करें yiw। वह भीतर का शब्द चिल्लाता है।

  2. पत्र को दबाते हुए "बार" पर जाएं w। फिर इसका चयन करें और वापस जाएं:viw"0p

मैं उपयोग करता हूं ciwऔर yiwबहुत कुछ।


4
टेक्स्ट ऑब्जेक्ट्स का उपयोग iwदिलचस्प है लेकिन आपका समाधान वास्तव में @ CarpetSmoker's के समान है: नेत्रहीन रूप से दूसरे शब्द का चयन करना और पहले एक को रखना। मुझे यह भी लगता है कि आपका समाधान रजिस्टर pका उपयोग करने के बजाय एक सरल के साथ काम करेगा "0
statox

1
  • जब कर्सर शब्द पर कहीं भी हो,

    • yiw- शब्द को यैंक और 0रजिस्टर में संग्रहीत करें ।
  • प्रतिस्थापित किए जाने वाले लक्ष्य शब्द पर जाएं

    • ciw शब्द को हटा देगा और आपको इन्सर्ट मोड में डाल देगा।
    • ctrl-r। A "पॉप अप करने के लिए रजिस्टर को आमंत्रित करने के लिए कहेगा।
    • 0 yanked शब्द पेस्ट करेंगे।

Yanked शब्द 0रजिस्टर में संग्रहीत (सामान्य रूप से!) हैं । :registersसंग्रहीत बफ़र्स को देखने के लिए देखें । यह एक लंबी प्रक्रिया लग सकती है, IMHO यह बहुत अधिक परिष्कृत रजिस्टर चाल के लिए दरवाजा खोलता है।

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