Apa yang dilakukan perintah f dan t di Vim?


126

Adakah yang bisa menjelaskan kepada saya apa yang dilakukan fdan tperintah di vim dan bagaimana cara kerjanya? Sepertinya saya tidak dapat menemukan informasi ini tetapi orang-orang terus mengatakan kepada saya bahwa mereka sangat berguna. Akan sangat menghargai jawaban dengan contoh jika memungkinkan, terima kasih!

Jawaban:


204

Perhentian pertama Anda dengan pertanyaan seperti ini harus menjadi bantuan internal vim, :h fdan :h t. Namun, dalam hal ini, entri tersebut agak samar tanpa contoh. Misalkan kita memiliki baris ini ( ^= posisi kursor):

The quick brown fox jumps over the lazy dog.
^

Perintah-perintah ini menemukan karakter pada sebuah garis. Jadi fbakan menempatkan kursor di sini:

The quick brown fox jumps over the lazy dog.
          ^

tseperti ftetapi menempatkan kursor pada karakter sebelumnya. Jadi tbakan memberi Anda:

The quick brown fox jumps over the lazy dog.
         ^

Anda dapat mengingat perintah ini sebagai find dan till. Selain itu, Anda dapat menambahkan awal perintah dengan angka untuk pindah ke kemunculan karakter tersebut. Misalnya, 3fbakan pindah ke b ketiga di sebelah kanan kursor. Contoh kalimat saya hanya memiliki satu b, sehingga kursor tidak akan bergerak sama sekali.


4
Terima kasih banyak, itu sempurna, saya benar-benar lupa tentang: perintah h ini minggu pertama saya menggunakan Vim, ini sangat membantu terima kasih!
— Dan

1
Saat melakukan 'fb', saya dibawa ke b (rown). Bagaimana saya bisa langsung ke b (r) sendiri? Apakah ada cara, tanpa hjkl?
— dangdis

15
Dan jika Anda menulis huruf dalam huruf besar, maka ia melompat mundur. Jadi misalnya Fbatau Tb.
— be-ndee

2
@ancm seperti be-ndee berkata, Fx atau Tx, di mana x adalah karakter yang dicari.
— mickey

1
mungkin layak untuk mudah bagi pemula untuk tidak bergantung pada :help, karena tidak selalu memberikan penjelasan terbaik untuk kerumunan non-esoterik. apa to [count]'thartinya?
— Tycholiz

121

Hanya untuk menambah jawaban Michael Kristofik , tidak ada deskripsi fatau tlengkap tanpa menyebutkan ;.

Dari lembar contekan Vim ini :

; "Ulangi waktu f, t, F atau T terbaru."

Jadi, untuk melanjutkan tema @ MichaelKristofik:

The quick brown fox jumps over the lazy dog.
^

ketik fountuk pergi ke 'o' pertama:

The quick brown fox jumps over the lazy dog.
            ^

dan kemudian ;pergi ke yang berikutnya:

The quick brown fox jumps over the lazy dog.
                 ^

1
itu; tip cukup berguna, meskipun saya tidak melihat cara kerjanya dengan 't'. saya mencoba dan saya terjebak di posisi yang sama tidak peduli berapa kali perintah t diulang.
— Peter Perháč

@ PeterPerháč Tekan tanda titik koma beberapa kali. Bekerja untukku.
— LondonRob

@ PeterPerháč, saya kira itu lebih rumit dengan perintah t, karena ketika mencari maju untuk x, tanda titik koma akan menemukan x yang sama setiap kali Anda menekan;, sehingga tidak bergerak. Jika Anda menekan l sekali dan kemudian titik koma itu harus bekerja.
— mickey

@ PeterPerháč Pastikan Anda belum memiliki (satu karakter sebelum) kejadian terakhir di telepon, dan itu akan menemukan kejadian berikutnya.
— Adam Evans

51

Saya menemukan fdan tsangat berguna dalam kombinasi dengan ddan c. Misalnya, Anda ct:akan mengganti semuanya dari kursor hingga ke titik dua berikutnya, tetapi tidak menghapus titik dua. Anda dapat mengingatnya sebagai "ubah ke titik dua".


5
+1! Idiom suka ct,atau ct)dengan cepat mengganti satu atau argumen terakhir ke pemanggilan fungsi terasa menyenangkan untuk digunakan.
— nperson325681

15
Saya lebih suka vt:ckarena Anda tidak melihat selalu melihat setiap kemunculan huruf yang diberikan 100% benar. Dengan vAnda dapat melihat pemilihan visual, isyarat visual yang bagus.
— Bentley4

1
Saya lebih suka mnemonik, "ubah sampai titik dua"
— Patrick Michaelsen

34

fxmelompat ke yang berikutnya x di telepon.

txmelompat ke karakter tepat sebelum yang berikutnya x di telepon.

Anda dapat menggunakan Fxdan Txuntuk mencapai yang sebelumnya x .

Anda dapat menggunakan 2fxuntuk melompat ke baris kedua xdi telepon.

Jadi, fFdan tTberguna ketika Anda ingin pergi dengan cepat ke set kurung berikutnya ( f() atau menghapus semuanya dari kursor ke, tetapi tidak termasuk, sebelumnya =( dT=) dan seterusnya ...

Lihat :h motion.txt. Itu akan meledakkan pikiran Anda.


2
terima kasih telah menyebutkan 2fxhal itu. Saya selalu bingung denganf2x
— Yar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.