Bagaimana Anda melakukan pencarian tambahan di beberapa file teks di VIM?

5

Apakah ada cara agar VIM melakukan pencarian inkremental pada file teks?

Vim sudah melakukan pencarian tambahan di dalam file yang saat ini terbuka.

Contoh program yang menunjukkan jenis pencarian yang saya coba selesaikan adalah Kecepatan Nosional untuk MacOS, Resop untuk windows atau SimpleNote untuk web.

Aplikasi ini melakukan pencarian instan atau tambahan dalam file direktori tertentu dan membuatnya mudah / cepat untuk mempersempit file yang Anda cari atau membuat file baru.
Saya menggunakan keduanya tetapi lebih suka tinggal dalam satu editor. (Yang menjadi VIM)

Apakah ada beberapa plug in yang akan melakukan ini?

Alex
sumber
Tertarik dengan GTD? Bergabunglah dengan Produktivitas dan Organisasi Pribadi , kami mencari pengguna & pakar ... :)
Tamara Wijsman

Jawaban:

4

Anda dapat menggunakan vimgrepperintah, misalnya:

:vimgrep /searchword/ ~/**

Lihat

:help vimgrep

untuk detail.

luar biasa
sumber
yang tidak melakukan pencarian instan di mana Anda melihat hasil saat Anda mengetik (atau apakah saya salah?)
Alex
Tidak, tidak. Tidak jelas itu yang Anda inginkan. (Saya tidak terbiasa dengan perangkat lunak yang Anda sebutkan, dan "pencarian instan" agak kabur.)
frabjous
1
Saya pikir kata yang seharusnya saya gunakan adalah "incremental" bukan "instan"
Alex
2

Ada plugin bagus yang melakukan hal itu tetapi dengan buffer: LustyExplorer .

Ada juga plugin lain yang hampir melakukan itu dengan file: EasyGrep dan Ack tetapi tidak juga melakukan pencarian tambahan.

Yang pertama (dan yang lainnya, dan NV atau Resoph Notes) dapat melakukan pencarian tambahan karena semua file ada di memori, bekerja seperti semacam database. Tampaknya sedikit lebih sulit untuk diterapkan pada file acak.

Saya benar-benar ingin melihat fungsi seperti itu di Vim karena saya baru saja pindah ke Linux penuh waktu dan tidak ada pengganti Kecepatan Nosional yang saya ketahui. NV adalah bagian utama dari alur kerja saya di Mac OS X dan itu sebenarnya satu-satunya bagian yang hilang, saat ini. Penjelasan Drew Wagner tentang masalah dan proposisi untuk solusi tampaknya menarik.

romainl
sumber
2

Belum. Untuk mendapatkan kinerja pencarian inkremental yang baik kemungkinan akan membutuhkan seseorang untuk menulis sebuah plugin dalam c yang memuat file ke dalam struktur data besar yang dioptimalkan. Mungkin ada cara untuk meretas vim untuk menjalankan grep ke seluruh database setiap kali Anda menekan tombol, tetapi itu mungkin tidak akan cukup cepat.

Untuk contoh plugin vim open source yang melakukan pencarian inkremental (sayangnya pada nama file, bukan isi file), Anda bisa melihat pada command-t plugin:

https://wincent.com/products/command-t

Kendala teknis lain yang mungkin ditemui seseorang jika seseorang mencoba memuat seluruh database catatan ke dalam vim buffer adalah bahwa setiap pengguna secara default terbatas pada 1024 file yang dibuka secara bersamaan, dan banyak basis data note berisi lebih banyak catatan daripada itu. Batas dapat diangkat dengan cukup mudah, tetapi pengguna tidak harus berurusan dengan hal-hal seperti itu.

Andrew Wagner
sumber