Saya menemukan diri saya memahami basis kode yang sama berulang-ulang. Meskipun bekerja dengan baik, setiap perintah membutuhkan waktu sekitar 10 detik, jadi saya memikirkan cara untuk membuatnya lebih cepat.
Jadi dapatkah grep
menggunakan semacam indeks? Saya mengerti indeks mungkin tidak akan membantu regexps yang rumit, tetapi saya menggunakan sebagian besar patters yang sangat sederhana. Apakah ada pengindeks untuk kasus ini?
EDIT: Saya tahu tentang ctag dan sejenisnya, tapi saya ingin melakukan pencarian teks lengkap.
Jawaban:
bagaimana dengan cscope , apakah ini cocok dengan sepatu Anda?
Mengizinkan kode penelusuran untuk:
sumber
Pengindeksan teks lengkap
Ada alat seperti recoll , swish -e dan sphinx tetapi Anda harus memeriksa apakah mereka dapat mendukung jenis kriteria pencarian yang Anda butuhkan.
Ingat
Swish-e
Sphinx
grep
Saya terkejut grep selambat yang Anda jelaskan, dapatkah Anda mengurangi jumlah file yang dicari? Sebagai contoh ketika saya hanya perlu mencari file sumber untuk satu yang dapat dieksekusi (dari banyak dalam proyek) saya memberi makan grep nama-nama dari perintah yang mencantumkan file sumber untuk program itu:
sources
adalah program khusus untuk lingkungan pengembangan saya tetapi Anda mungkin memiliki (atau dapat membangun) sesuatu yang setara.Saya berasumsi Anda sudah mencoba teknik yang jelas seperti
Saya telah membaca saran bahwa
-P
opsi saat inigrep
dapat mempercepat pencarian secara signifikan.sumber
grep, tidak. Tetapi ada beberapa program yang menggunakan indeks dan ditujukan untuk basis kode.
ctags
(ada versi yang disediakan dengan vim),etags
(ditujukan untuk digunakan dengan emacs),global
(lebih independen dari editor) adalah yang saya pikirkan sekarang tetapi mungkin ada yang lain.sumber
Anda dapat menyalin basis kode Anda pada disk RAM.
sumber
jika Anda ingin menggunakan mesin pencarian teks lengkap .. gunakan satu:
sumber
Tidak, kurasa tidak. Tetapi mungkin ada solusi sederhana: Coba ack. Saya pikir jika Anda memberinya kesempatan, Anda akan menemukannya secara signifikan lebih cepat daripada grep, membutuhkan string pencarian yang lebih pendek untuk mendapatkan hasil pencarian yang lebih baik, dan memiliki banyak fitur yang diinginkan, sambil menggunakan banyak perintah yang sama. Satu hal yang membuatnya lebih cepat (walaupun tidak diindeks) adalah ia mengabaikan lebih banyak hal yang tidak ingin Anda cari. Ini ditulis dalam Perl dan menggunakan ekspresi reguler Perl (dan karena itu juga memiliki port Mac dan Windows, juga).
http://betterthangrep.com/
sumber