F और T कमांड Vim में क्या करते हैं?


126

किसी ने मुझसे करने के लिए व्याख्या कर सकते हैं क्या fऔर tआदेशों vim में क्या है और वास्तव में वे कैसे काम? मुझे यह जानकारी नहीं मिल रही है लेकिन लोग मुझे बता रहे हैं कि वे बहुत उपयोगी हैं। यदि संभव हो तो एक उदाहरण के साथ उत्तर की सराहना करेंगे, धन्यवाद!

जवाबों:


204

इस तरह के सवालों के साथ आपका पहला पड़ाव विम की आंतरिक मदद होना चाहिए, :h fऔर :h t। हालाँकि, इस मामले में, वे प्रविष्टियाँ बिना किसी उदाहरण के थोड़ी गुप्त हैं। मान लें कि हमारे पास यह पंक्ति ( ^= कर्सर स्थिति) है:

The quick brown fox jumps over the lazy dog.
^

ये आदेश वर्णों को एक पंक्ति में पाते हैं। इसलिए fbयहां कर्सर रखें:

The quick brown fox jumps over the lazy dog.
          ^

tपसंद है fलेकिन कर्सर को पूर्ववर्ती चरित्र पर रखता है। तो tbआप दे देंगे:

The quick brown fox jumps over the lazy dog.
         ^

आप इन आदेशों को fइंड और tबीमार के रूप में याद कर सकते हैं । साथ ही, आप उस वर्ण की nth घटना पर जाने के लिए एक नंबर के साथ कमांड को प्रीपेन्ड कर सकते हैं। उदाहरण के लिए, 3fbकर्सर के दाईं ओर तीसरी बी में जाएगा। मेरे उदाहरण वाक्य में केवल एक बी है, हालांकि कर्सर बिल्कुल भी नहीं बढ़ेगा।


4
बहुत बहुत धन्यवाद, यह एकदम सही था, मैं पूरी तरह से भूल गया: एच कमांड यह मेरा पहला सप्ताह है विम का उपयोग करते हुए, यह एक बहुत बड़ी मदद धन्यवाद था!
दान

1
'Fb' करते समय, मुझे b (पंक्तिबद्ध) में ले जाया जाता है। मैं सीधे b (r) पर कैसे पहुँचूँगा? क्या कोई रास्ता है, बिना hjkl के?
डॉगीज़ जूल

15
और अगर आप बड़े अक्षरों में लिखते हैं, तो यह पीछे की ओर कूदता है। तो उदाहरण के लिए Fbया Tb
23

2
@ancm as be-ndee ने कहा, Fx या Tx, जहां x को खोजने के लिए वर्ण है।
मिकी

1
यह संभवत: शुरुआती के लिए आसान नहीं है पर निर्भर करता है :help, क्योंकि यह हमेशा गैर-गूढ़ भीड़ के लिए सबसे अच्छा विवरण प्रदान नहीं करता है। क्या to [count]'thमतलब है?
टाइकोलिज़

121

बस में जोड़ने के लिए माइकल Kristofik का जवाब , का कोई विवरण fया tभी उल्लेख किए बिना पूरा हो गया है ;

से इस विम चीट शीट :

; "नवीनतम एफ, टी, एफ या टी [गिनती] बार दोहराएं।"

तो, @ माइकलक्रिस्टोफ़िक थीम जारी रखने के लिए:

The quick brown fox jumps over the lazy dog.
^

foपहले 'ओ' में जाने के लिए टाइप करें:

The quick brown fox jumps over the lazy dog.
            ^

और फिर ;अगले एक पर जाने के लिए:

The quick brown fox jumps over the lazy dog.
                 ^

1
; टिप बहुत उपयोगी है, हालांकि मैं यह नहीं देखता कि यह 'टी' के साथ कैसे काम करता है। मैंने कोशिश की और मैं उसी स्थिति में फंस गया हूं चाहे कितनी बार टी कमांड को दोहराया जाए।
पीटर पेराह

@ पीटरपेराह प्रेस अर्धविराम कई बार। मेरे लिये कार्य करता है।
लंदनबोर

@ पीटरपेराह, मुझे लगता है कि यह टी कमांड के साथ छल है, क्योंकि जब एक्स के लिए आगे की खोज की जाती है, तो अर्धविराम हर बार जब आप हिट करते हैं, तो उसी एक्स को पाएंगे; यदि आप एक बार एल मारा और फिर अर्धविराम यह काम करना चाहिए।
मिकी

@ PeterPerháč सुनिश्चित करें कि आप लाइन में अंतिम घटना से पहले (एक वर्ण पर) पहले से नहीं हैं, और इसे अगली घटना मिलनी चाहिए।
एडम इवांस

51

मुझे लगता है fऔर tसाथ संयोजन में बहुत उपयोगी dऔर c। उदाहरण के लिए, ct:आपको अपने कर्सर से अगले कॉलोन तक सब कुछ बदलने देगा, लेकिन कोलन को हटाएं नहीं। आप इसे "कोलन में परिवर्तन" के रूप में याद कर सकते हैं।


5
+1! मुहावरों की तरह ct,या ct)एक फ़ंक्शन कॉल के लिए एक या अंतिम तर्क को जल्दी से बदलने के लिए उपयोग करने के लिए अद्भुत लगता है।
nperson325681

15
मैं पसंद करता हूं vt:cक्योंकि आप हमेशा किसी दिए गए पत्र की प्रत्येक घटना को 100% सही नहीं पाते हैं। साथ vआप दृश्य चयन, एक अच्छा संकेत देती देख सकते हैं।
बेंटले 4

1
मैं मेमनोनिक को पसंद करता हूं, "बृहदान्त्र तक परिवर्तन"
पैट्रिक

34

fxलाइन पर अगले करने के लिए कूदता है x

txलाइन पर अगले से पहले चरित्र के लिए कूदता है x

आप उपयोग कर सकते हैं Fxऔर पिछलेTx तक पहुंच सकते हैं । x

आप लाइन पर 2fxदूसरे में कूदने के लिए उपयोग कर सकते हैं x

इसलिए, fFऔर tTउपयोगी हैं जब आप कोष्ठक के अगले सेट पर जल्दी जाना चाहते हैं ( f() या कर्सर से सब कुछ हटा दें, लेकिन पिछले, =( dT=) को छोड़कर …

देख :h motion.txt । इससे तुम्हारा दिमाग खुल जाएगा।


2
उस 2fxबात का उल्लेख करने के लिए धन्यवाद । मैं हमेशा इसे भ्रमित करता हूंf2x
यार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.