คำตอบแรกนั้นสวยงาม แต่ก็ยังให้รายละเอียดที่สำคัญเกี่ยวกับ Emacs รุ่นใหม่ ฉันรู้จัก Emacs ด้วยตัวเองดังนั้นผู้มาใหม่คนอื่น ๆ อาจไม่ทราบเรื่องนี้ กำหนดเป้าหมายของคุณคือค้นหาข้อความภายในไฟล์ในโครงการจากนั้นคุณจะติดตั้ง Projectile โดยใช้ที่เก็บ MELPA ก่อน
สิ่งนี้จะติดตั้งแพคเกจใน. emacs.d และเพิ่มการกำหนดค่าพื้นฐานบางอย่างให้กับ. emacs ในไดเรกทอรี $ USER (สมมติว่าคุณได้สร้างไฟล์. emacs) เช่นต้องการ Projectile ในการติดตั้ง Emacs ของคุณ
อย่างไรก็ตามคุณยังคงต้องเปิดใช้งานและเชื่อมโยงส่วนนำหน้าคีย์แมปเพื่อให้คุณสามารถเรียกใช้งานได้ใน mini buffer
คำตอบที่ได้รับการยอมรับกล่าวถึงคำสั่งต่อไปนี้:
C-c p s g
สิ่งนี้จะไม่ทำงานยกเว้นว่าคุณจะกำหนดค่า Projectile ด้วยคำนำหน้าคีย์แมปนี้ แต่ฉันกำหนดค่าให้ใช้ Cc Cp เป็นคำสั่งสำหรับ Project in .emacs:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
ตอนนี้ฉันสามารถทำการค้นหาข้อความในไฟล์ในโครงการโดยใช้ grep:
C-c C-p f # switch to a project first
C-c C-p s g # perform grep search in project
หากต้องการแยกมันออก C-c C-p
จะเรียก Projectile และs g
ทำการค้นหา grep คุณจะได้ผลลัพธ์ที่สวยงามเช่นนี้โดยสมมติว่าการค้นหาของคุณคือvisit_contact
และคุณกำลังค้นหา Ruby's rspec ในโครงการ:
./spec/support/capybara_classification_code_helper.rb:21: def visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:8: visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:33: visit_contact
./spec/features/user_views_global_filters_from_line_item_spec.rb:9: visit_contact
rgrep
มีความสับสนเล็กน้อยเนื่องจากจะยกเว้นไฟล์ทั้งหมดที่ตรงกับเกณฑ์ "ไฟล์ไร้ประโยชน์" ของคุณตามค่าเริ่มต้น