F ve t komutları Vim'de ne yapar?


126

Biri bana fve tkomutlarının vim'de ne yaptığını ve tam olarak nasıl çalıştığını açıklayabilir mi? Bu bilgiyi bulamıyorum ama insanlar bana bunların çok faydalı olduğunu söylüyor. Mümkünse bir örnekle cevabı gerçekten takdir ediyorum, teşekkürler!

Yanıtlar:


205

Bu gibi sorularla ilk durağınız vim'in dahili yardımı olmalı :h fve :h t. Ancak, bu durumda, bu girişler örnek olmadan biraz şifreli. Şu satıra sahip olduğumuzu varsayalım ( ^= imleç konumu):

The quick brown fox jumps over the lazy dog.
^

Bu komutlar bir satırdaki karakterleri bulur. Yani fbburada imleci olacaktır:

The quick brown fox jumps over the lazy dog.
          ^

tgibidir fancak imleci önceki karakterin üzerine yerleştirir. Yani tbsana verecektim:

The quick brown fox jumps over the lazy dog.
         ^

Bu komutları fyanlış olarak hatırlayabilirsiniz t. Ayrıca, o karakterin n'inci oluşumuna gitmek için komutların başına bir sayı ekleyebilirsiniz. Örneğin 3fb, imlecin sağındaki üçüncü b'ye gider. Benim örnek cümlemde sadece bir b var, bu yüzden imleç hiç hareket etmeyecek.


4
Çok teşekkürler, bu mükemmeldi,: h komutunu tamamen unuttum, bu benim Vim'i kullandığım ilk haftam, bu çok yardımcı oldu teşekkürler!
Dan

1
'Fb' yaparken, b (rown) 'a götürülüyorum. Nasıl doğrudan b (r) sahibi olurum ? Hjkl olmadan bir yol var mı?
dangdis

16
Ve harfleri büyük yazarsanız, geriye doğru atlar. Yani örneğin Fbveya Tb.
be-ndee

2
@ancm, be-ndee'nin dediği gibi, Fx veya Tx, burada x aranacak karakterdir.
mickey

1
:helpezoterik olmayan kalabalık için her zaman en iyi açıklamayı sağlamadığından, yeni başlayanlar için bağımlı olmadıkları için muhtemelen kolay davranmaya değer . ne anlama to [count]'thgeliyor?
Tycholiz

122

Sadece eklemek Michael Kristofik cevabı , hiçbir açıklama fya tda söz etmeden tamamlandıktan ;.

Gönderen bu Vim hile levha :

; "En son f, t, F veya T [sayım] kez tekrarlayın."

Öyleyse, @ MichaelKristofik'in temasına devam etmek için:

The quick brown fox jumps over the lazy dog.
^

yazın foilk 'o' gitmek için:

The quick brown fox jumps over the lazy dog.
            ^

ve sonra bir ;sonrakine gitmek için:

The quick brown fox jumps over the lazy dog.
                 ^

1
the; ipucu oldukça kullanışlıdır, ancak 't' ile nasıl çalıştığını görmüyorum. denedim ve t komutu kaç defa tekrarlanırsa yazılsın aynı konumda kaldım.
Peter Perháč

@ PeterPerháč Birkaç kez noktalı virgül basın. Benim için çalışıyor.
LondonRob

@ PeterPerháč, sanırım t komutuyla daha zor, çünkü ileriye doğru x'i ararken, noktalı virgül her vurduğunuzda aynı x'i bulacak, dolayısıyla hareket etmeyecek. L'ye bir kez basıp sonra noktalı virgül kullanırsanız çalışmalıdır.
mickey

@ PeterPerháč Satırdaki son yerde (bir karakterden önce) olmadığınızdan emin olun ve bir sonraki geçtiği yeri bulmalıdır.
Adam Evans

51

Ben bulmak fve tbirlikte çok faydalı dve c. Örneğin, ct:imlecinizden sonraki iki noktaya kadar her şeyi değiştirmenize izin verir, ancak iki nokta üst üste silmenize izin vermez. Bunu "kolon değiştirme" olarak hatırlayabilirsiniz.


5
1! Gibi Deyimler ct,veya ct)hızlı kullanmak harika hissediyorum bir işlev çağrısına bir veya son argüman değiştirin.
nperson325681

15
Tercih ederim, vt:cçünkü belirli bir harfin her geçtiğini her zaman% 100 doğru görmezsiniz. İle vsize görsel seçimi, güzel bir görsel işaret görebilirsiniz.
Bentley 4

1
Anımsatıcıyı tercih ederim, "iki nokta üst üste kadar değiştir"
Patrick Michaelsen

34

fxbir sonrakine atlar xsatırda bir .

txsatırda bir sonrakinden hemen önceki karaktere atlar x.

Bir öncekine ulaşmak için Fxve Txtuşlarını kullanabilirsiniz . x

2fxİkinciye atlamak için kullanabilirsinizx .

Yani, fFve tTparantez sonraki seti (hızlı gitmek istediğinizde yararlıdır f(imleç itibaren) veya silme her şey, ama önceki hariç =(dT= ) ve benzeri ...

Bakın :h motion.txt. Aklınızı başınızdan alacak.


2
o 2fxşeyden bahsettiğiniz için teşekkürler . Hep karıştırırımf2x
Yar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.