วิธีสลับระหว่าง. cpp และ. hpp ที่ไม่ได้อยู่ในไดเรกทอรีเดียวกัน


4

มีฟังก์ชั่น Emacs ที่สลับระหว่าง.cppและ.hppไฟล์ที่ไม่ได้อยู่ในไดเรกทอรีเดียวกันหรือไม่?

ฉันรู้ว่ามีtoggle-source.elแต่ดูเหมือนจะไม่จัดการกับกรณีที่.cppและ.hppอยู่ในไดเรกทอรีที่แตกต่างกัน แต่โครงสร้างไดเรกทอรีของฉันเป็นเช่นนี้

project1/src/foo.cpp
project1/include/foo.hpp
project2/src/bar.cpp
project2/include/bar.hpp

มันไม่ควรจะเป็นเรื่องยากที่จะสลับไปมาระหว่างsrc/foo.cppและinclude/foo.hppแต่ผมไม่ได้พูดชัด

คำตอบ:


2

ลองดูที่ff หาอื่น ๆ ไฟล์ในFind-file.el หาก .h และ .cpp ไฟล์ในไดเรกทอรีเดียวกันนี้ก็จะทำงาน แต่คุณควรจะสามารถที่จะใช้กับสถานที่ที่แตกต่างกันโดยการปรับเปลี่ยนค่าของFF-ค้นหาไดเรกทอรี


ฉันทดสอบสิ่งนี้ด้วยประเภทของโครงสร้างไดเรกทอรีที่คุณพูดถึงและff-find-other-fileพบไฟล์ที่เกี่ยวข้องได้สำเร็จ คุณควรจะสามารถใช้ฟังก์ชั่นนั้นโดยไม่จำเป็นต้องปรับแต่งอะไรเลย หากคุณมีโครงสร้างไดเรกทอรีที่ซับซ้อนมากขึ้นcc-search-directoryสามารถแก้ไขได้ ff-search-ไดเรกทอรี่ได้รับเนื้อหาจากซีซีค้นหาไดเรกทอรีตามค่าเริ่มต้น
แบรดเพน

มันไม่ทำงานหากไม่มีการปรับแต่งสำหรับฉัน ฉันต้องแก้ไขcc-search-directoriesแต่ใช้งานได้ดี!
dehmann

2

ขอบคุณสำหรับคำใบ้แบรด! ในกรณีที่ผู้คนพบคำถามนี้มากขึ้นนี่เป็นวิธีหนึ่งที่เหมาะกับฉัน (ใน emacs-23.2.1):

(setq cc-other-file-alist
      '(("\\.c"   (".h"))
       ("\\.cpp"   (".h"))
       ("\\.h"   (".c"".cpp"))))

(setq ff-search-directories
      '("." "../src" "../include"))

;;; Bind the toggle function to a global key
(global-set-key "\M-t" 'ff-find-other-file)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.