Saya sudah mulai belajar pencarian kata Vim menggunakan *
dan #
sementara kursor di atas kata saat ini. Tetapi pencarian ini terbatas pada buffer file saat ini.
Apakah ada perintah atau pintasan untuk memperluas pencarian ini ke:
- semua tab yang dibuka?
- semua buffer terbuka?
Jawaban:
Saya tidak punya solusi tepat untuk masalah Anda, semoga jawaban yang lebih baik dari saya akan muncul. Tetapi inilah bagaimana saya mengatasi masalah menemukan kata di semua buffer.
Baris pertama membuat perintah
Search
dengan pola pencarian sebagai argumen, yang menuliskan hasilnya dalam daftar perbaikan cepat. Dua baris lainnya memetakan tombol panah (setidaknya untuk saya) yang tidak berguna ke sesuatu yang berguna; mereka dipetakan untuk melompat ke Pencarian berikutnya / sebelumnya atau ke kesalahan kompilasi berikutnya / sebelumnya, dll., mereka hanya melangkah melalui daftar perbaikan cepat. Anda dapat menggunakan ini sebagai berikut:sumber
:cn
atau:cp
beralih ke dokumen berikutnya.Sebenarnya ini adalah perilaku default meskipun mungkin sulit untuk diperhatikan: coba
*
ubah ke tab lain dan gunakann
ansN
dalam mode perintah untuk melompat maju dan mundur di antara pencarian pencarian.Ini mungkin lebih masuk akal jika pertama kali Anda mengaktifkan sorotan untuk semua klik:
sumber
hlsearch
itu saya tidak tahu, dan yang akan saya cari satu hari atau yang lain :-). Namun, secara default saya telah mencoba * #, n dan N, dan itu tidak melompat ke buffer file lainnya ...n
danN
jangan lompati buffer (mereka membungkus), tetapi istilah yang mereka targetkan dicari di semua tab; tekan*
dengan sorotan pada kemudian siklus melalui tab Anda - mereka semua akan disorot dengan istilah yang sama, sehingga Anda dapat menggunakann
danN
secara lokal di sana tanpa pencarian baru.hlsearch
menetapkan.sumber
Karena saya sering melakukan ini, saya membuat skrip (yang tidak bisa diperbaiki).
Anda atau orang lain mungkin menganggapnya berguna.
Penjelasan singkat:
Pada dasarnya mencari daftar buffer dan menunjukkan hasil di jendela perbaikan cepat.
Dua perintah dasar ditambahkan.
Search <pattern>
: Cari semua buffer untuk<pattern>
.Search1 <pattern>
: Cari semua buffer<pattern>
, tetapi hanya tampilkan hasil pertama untuk setiap buffer. Biasanya berguna untuk membuat daftar semua buffer di mana fungsi, variabelfoo
digunakan, (atau apa pun).Gunakan bang (
:Search! foo
) untuk menambahkan hasil.Selain itu
GSearch
danGSearch1
ditambahkan di mana perbedaannya adalah denganSearch
skrip tambahkan regex delimiter, misalnya:Dimana seperti yang
GSearch
diharapkan untuk dilampirkan.The
j
flag selalu ditambahkan untuk mencegah melompat.Kode:
Ada beberapa peretasan untuk mencegah daftar kesalahan sementara pada saat yang sama menjaga kode pendek.
try / catch
sedikit rumitbufdo
.sumber