Rentangkan gerakan f dan t ke baris berikutnya

16

Adakah cara itu t{char}dan f{char}akan terus bekerja di baris berikutnya jika {char}tidak ada di baris yang diberikan?

Saya ingin menghindari penggunaan /{char}<CR>untuk menyimpan 1 keystroke dan tidak memiliki sorotan pencarian, terutama ketika saya membutuhkan ini dalam kombinasi dengan kata kerja (misalnya dfa, ct.).

cbaumhardt
sumber
2
Anda dapat melakukannya d/auntuk menghapus ke berikutnya adan c/.menghapus ke berikutnya .. Jika Anda menggunakan hlsearchdan tidak menginginkannya saat melakukan operasi ini, Anda dapat membuat pemetaan yang melakukan d/operasi Anda dan kemudian menonaktifkan penyorotan (diakhiri dengan :nohlsearch).
jjaderberg
2
Anda dapat menggunakan (atau mempelajari) plugin seperti github.com/rhysd/clever-f.vim (dengan g:clever_f_across_no_lineset ke 0 dan opsi lain yang diaktifkan / dinonaktifkan sesuka hati).
VanLaser
1
Dahu membuat plugin untuk ini: github.com/dahu/vim-fanfingtastic
EvergreenTree
1
Saya masih berpikir plugin terbaik untuk ini adalah easymotion
Vitor
1
Saya juga membuat sebuah plugin: improvedft
Christian Brabandt

Jawaban:

6

Saya juga menggunakan dahu / vim-fanfingtastic selama beberapa waktu dan merasa sangat membantu. Ini mendukung pengulangan semantik dengan .terima kasih kepada perpustakaan tpope / repeat.vim yang juga harus Anda pasang.

Alternatifnya adalah chrisbra / peningkatan yang melakukan hal yang kurang lebih sama.

rhysd / clever-f.vim memiliki opsi untuk mengaktifkan pencarian multi-line, walaupun fitur utamanya adalah memungkinkan funtuk mengulang pencarian yang sedang dilakukan, seperti yang ;sudah dilakukan.

Semua itu menangani ;dan ,kunci seperti yang diharapkan.

The Kerugian dengan multi-line fdan tadalah bahwa jika Anda menekan tombol yang salah, Anda akan diambil dari baris saat ini ke suatu tempat yang tak terduga dalam file. Ctrl-Odapat membantu di saat-saat itu. (Ini bisa berbahaya dengan cperubahan jika Anda tidak menyadari bahwa Anda baru saja menelan beberapa baris, tetapi itu hanya masalah bagi saya.)

Ada plugin terkait lainnya, dengan pendekatan yang sedikit berbeda, seperti justinmk / vim-sneak dan goldfeld / vim-seek yang meminta dua karakter , membuatnya lebih mudah (tetapi masih tidak dijamin) untuk mencapai lokasi target Anda.

Dan kemudian ada easymotion / vim-easymotion . Ini menawarkan banyak tombol gerak yang kuat , beberapa di antaranya memerlukan satu atau dua penekanan tombol ekstra untuk mengkonfirmasi karakter target ketika ada banyak kandidat.


Tetapi saat ini saya menggunakan solusi buatan sendiri. Saya bekerja dengan penulis EasyMotion untuk membuat fdan mem- t flash counter marker atas semua karakter yang cocok di depan Anda.

masukkan deskripsi gambar di sini

Ini bertindak sebagai asisten hitungan alami untuk gerakan vanila vim. Ketika Anda mencoba untuk pindah ke suatu tempat dengan fxtetapi kemudian menemukan ada lebih banyak xdi jalan daripada yang Anda pikirkan, Anda dapat membaca angka yang melintas di atas karakter yang Anda tuju, dan kemudian lakukan [count];untuk melompat ke sana.

Anda dapat menemukan cabang di sini . Pastikan untuk membaca bagian Tambahkan petunjuk bermanfaat untuk mengatur pemetaan kunci.

Namun untuk coperasi yang berubah, masih lebih baik untuk melakukannya dengan benar pertama kali . Dalam kasus-kasus tersebut, saya merekomendasikan untuk menggunakan penekanan tombol ekstra dalam vmode Visual, atau menggunakan salah satu lompatan yang dijamin EasyMotion.

joeytwiddle
sumber