चरित्र x के nth होने तक कर्सर से हटाएं


16

मुझे पता है कि मैं जब तक कर्सर से हटा सकते हैं और एक चरित्र पहला मामला सहित कर सकते हैं एक्स के साथ d/x<CR>या के साथ v/x<CR>dअगर मैं पहले चयन को देखने के लिए और फिर हटाना चाहते हैं। मैं वर्तमान कर्सर स्थिति से x की n घटना तक कैसे हटा सकता हूं ?

उदाहरण के लिए, यदि कर्सर पहले स्थान पर है

यदा यदा यदा
यदा यदा यदा
यदा यदा यदा
यदा यदा यदा x

xx

और मुझे तीसरे x को निकालने के लिए एक कमांड टाइप करना होगा जिसका परिणाम होना चाहिए:

यदा
xx

जवाबों:


22

तुम कर सकते हो :

wd4/x<Enter>

यदि आप अपने पाठ के ऊपर बाईं ओर शुरू करते हैं

व्याख्या

  • w : अगले शब्द की शुरुआत के लिए कदम
  • d : हटाओ
  • 4/x<Enter> : x की चौथी घटना तक

यदि आप यह नहीं जानते हैं कि आप कितनी बार पहले से ऐसा करना चाहते हैं, तो आप यह भी कर सकते हैं: d/x<Enter>और फिर .दोहराने के लिए मारा


5
बोनस टिप: यह भी साथ काम करता है fऔर दोस्तों ( F, t, T, ;): जैसे 2fxआप दूसरी करने के लिए मिल जाएगा x, या 2;पिछले दोहराएँगे fदो बार।
मार्टिन टूरनोइज

1
@Carpetsmoker: यह केवल वर्तमान लाइन में अक्षरों के लिए काम करता है।
जर्गेन क्रैमर

5

आप इसे टाइप करके देख सकते हैं

<n>df<x>

कहाँ पे:

<n> is the number of occurrence of particular character
df<x> means delete till you find the occurrence of character x

0
<n>macro 

आम तौर पर मैक्रो "एन" बार दोहराने के लिए उपयोग किया जाता है।

तो x की पहली घटना तक हटाने के लिए, आप उपयोग करेंगे 1dfx। इसी तरह, x की तीसरी घटना तक हटाने के लिए, आप उपयोग करेंगे 3dfx


1
मुझे लगता है कि आपने "मैक्रो" शब्द को याद किया था: विम में मैक्रो एक रजिस्टर में दर्ज की जाने वाली कुंजी का एक क्रम है और आपका रजिस्टर @xकहां xहै। आप जिस चीज का जिक्र कर रहे हैं वह एक सामान्य मोड कमांड है।
statox

हां मेरा मतलब एक सामान्य आदेश था। लेकिन यह एक मैक्रो के लिए भी सच है। हम मैक्रो से पहले एक नंबर जोड़कर मैक्रो n बार चला सकते हैं।
तत्कालीन कुलचेवाला

1
हाँ यह सच है। मैं सिर्फ यह इंगित कर रहा था कि <n>macroमैक्रोज़ के लिए कोई मानक संकेतन नहीं है और जैसा कि आपके उत्तर में सामान्य मोड कमांड का उपयोग किया जाता है यह कापिल के समान ही है।
statox

0

दिया हुआ:

yada yada yada$
yada yada yada x$
yada yada yada x$
yada yada yada x$
xx$

जहाँ $लाइनें ( :set listमोड) के संकेत समाप्त होते हैं , यदि कर्सर yadaपहली पंक्ति में दूसरे स्थान पर है, तो पहले हमें hइसे हटाने में शामिल करने के लिए, पूर्ववर्ती स्थान का उपयोग करना होगा। फिर बस 4d/xEnter। दूसरे शब्दों में, बस सामने एक गिनती d/x। परिणाम ठीक है:

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