วิธีใช้ Ctrl-P เพื่อค้นหาเนื้อหาไฟล์แบบโต้ตอบสำหรับไฟล์ทั้งหมดในโครงการได้อย่างไร?


15

ฉันพยายามวันนี้เพื่อทำการค้นหาในทุกไฟล์ของโครงการ ฉันใช้Ctrl-Pและค้นหาในบรรทัดดังนี้:

ภาพหน้าจอ

แต่ผลลัพธ์ของการค้นหาจะอยู่ที่ไฟล์ที่เปิดก่อนหน้านี้เท่านั้น main.phpนี่ฉันเปิดเท่านั้น

คุณรู้วิธีค้นหาไฟล์ทั้งหมดโดยไม่ต้องเปิดทีละไฟล์หรือไม่?

ขอบคุณ


1
นี่คือสิ่งที่ฉันต้องการเช่นกัน หากคุณใช้ ack หรือ ag ประสิทธิภาพจะไม่เป็นปัญหา รวมทั้งถ้าคุณใช้ neovim มันควรจะเป็น async ดังนั้นไม่ควรมี block ใด ๆ
mhartington

ในที่สุดฉันก็ใช้ ag เป็นคำสั่ง ctrlp :)
nobe4

คำตอบ:


13

:CtrlPLine ควรทำงานกับบัฟเฟอร์ที่แสดงรายการ

หากคุณอย่างต้องการใช้คุณลักษณะที่ไฟล์ในโครงการของคุณทุกท่านสามารถเพิ่มเข้าไปในรายการอาร์กิวเมนต์ (และรายการบัฟเฟอร์) กับสิ่งที่ต้องการ:

:argadd **/*.php

แต่นั่นไม่ได้ฟังดูดีมากสำหรับเหตุผลด้านประสิทธิภาพ

การใช้:vimgrepหรือ:grepฟังดีกว่าสำหรับฉันมาก:

:vim foo **/*.php
:cw

คุณสูญเสีย "ความเลือน" ของ CtrlP อย่างชัดเจน แต่คุณได้รับความน่าเชื่อถือและความยืดหยุ่นในการตอบแทน

อ้างอิง:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix

ความแตกต่างที่สำคัญระหว่าง CtrlP และเป็นกลุ่ม-grep เป็น CtrlP เป็นแบบโต้ตอบ
ideasman42

1

คุณควรใช้ปลั๊กอินSidesearchหรือfzf

ทั้งสองอนุญาตให้ค้นหาในไดเรกทอรีซ้ำโดยใช้ silversearch-ag

fzf อนุญาตให้ค้นหาไฟล์ที่อยู่ในรายการซึ่งรวมถึงสตริงของคุณ


1
สวัสดี @MisterBanal ยินดีต้อนรับสู่เว็บไซต์ของเรา! คุณควรแม่นยำในคำตอบของคุณหากปลั๊กอินเหล่านี้สามารถเชื่อมต่อกับ CtrlP ตามที่ถาม OP หากพวกเขาสามารถถูกขัดจังหวะคุณควรอธิบายวิธีและถ้าพวกเขาไม่สามารถคุณอย่างน้อยควรให้ตัวอย่างพื้นฐานของวิธีการใช้พวกเขามิฉะนั้นคำตอบของคุณไม่ตอบคำถาม (คุณสามารถเปลี่ยนคำตอบด้วยปุ่ม "แก้ไข" ใต้ข้อความ)
statox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.