Bagaimana cara menggunakan Ctrl-P untuk mencari konten file secara interaktif untuk semua file dalam suatu proyek?

15

Saya mencoba hari ini untuk melakukan pencarian pada setiap file proyek. Saya menggunakan Ctrl-P dan mencari di baris seperti ini:

tangkapan layar

Tetapi hasil pencarian hanya pada file yang dibuka sebelumnya. Di sini saya buka saja main.php.

Apakah Anda tahu cara mencari di semua file tanpa harus membukanya satu per satu?

Terima kasih,

nobe4
sumber
1
Ini adalah sesuatu yang saya inginkan juga. Jika Anda menggunakan ack atau ag, kinerja seharusnya tidak menjadi masalah. Plus jika Anda menggunakan neovim, itu harus async, jadi seharusnya tidak ada blok juga.
mhartington
Akhirnya saya menggunakan ag sebagai perintah ctrlp :)
nobe4

Jawaban:

13

:CtrlPLine sebenarnya seharusnya bekerja pada buffer yang terdaftar.

Jika Anda benar - benar ingin menggunakan fitur itu pada setiap file di proyek Anda, Anda bisa menambahkannya ke daftar argumen (dan dengan demikian daftar buffer) dengan sesuatu seperti:

:argadd **/*.php

tetapi itu tidak terdengar seperti ide yang sangat bagus untuk alasan kinerja.

Menggunakan :vimgrepatau :grepterdengar jauh lebih baik bagi saya:

:vim foo **/*.php
:cw

Anda kehilangan "ketidakjelasan" CtrlP, jelas, tetapi Anda mendapatkan keandalan dan fleksibilitas sebagai imbalannya.

Referensi:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix
romainl
sumber
Perbedaan utama antara CtrlP dan vim-grep, adalah CtrlP bersifat interaktif .
ideasman42
1

Anda harus menggunakan plugin thesis Sidesearch atau fzf

Keduanya memungkinkan untuk mencari di direktori rekursif menggunakan silversearch-ag

fzf memungkinkan untuk mencari file-file yang terdaftar yang termasuk string Anda.

TuanBanal
sumber
1
Hai @ MasterBanal, selamat datang di situs kami! Anda harus tepat dalam jawaban Anda jika plugin ini dapat dihubungkan dengan CtrlP seperti yang diminta OP. Jika mereka dapat dihubungkan, Anda harus menjelaskan bagaimana dan jika mereka tidak bisa, Anda setidaknya harus memberikan contoh dasar tentang bagaimana menggunakannya jika tidak, jawaban Anda tidak benar-benar menjawab pertanyaan. (Anda dapat mengubah jawaban Anda dengan tombol "edit" di bawah teks).
statox