![如何在不在同一目录的 .cpp 和 .hpp 之间切换?](https://linux22.com/image/1268031/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E5%9C%A8%E5%90%8C%E4%B8%80%E7%9B%AE%E5%BD%95%E7%9A%84%20.cpp%20%E5%92%8C%20.hpp%20%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2%EF%BC%9F.png)
Emacs 是否有一个函数可以在不在同一目录中的文件.cpp
之间切换?.hpp
我知道切换源.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
但我不会说 Lisp。
答案1
看一眼ff-查找其他文件, 在查找文件如果 .h 和 .cpp 文件位于同一目录中,则此方法有效,但您可以通过修改ff-搜索目录。
答案2
感谢 Brad 的提示!如果更多人发现这个问题,这里有一个对我有用的方法(在 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)