如何在.cpp和.hpp之间切换不在同一目录中?


4

是否有一个Emacs函数可以切换到不在同一目录中的文件.cpp.hpp

我知道有拨动source.el,但它显然不处理的情况下.cpp,并.hpp在不同的目录。但我的目录结构是这样的:

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

它之间切换并不难src/foo.cppinclude/foo.hpp但我不会说Lisp。

Answers:


2

find-file.el中查看ff-find-other-file。如果.h和.cpp文件位于同一目录中,这将起作用,但您应该可以通过修改ff-search-directories的值来将其用于不同的位置。


我用你提到的目录结构类型对它进行了测试,并且ff-find-other-file成功找到了相应的文件。您应该能够使用该功能而无需自定义任何内容。如果你有一个更复杂的目录结构,可以修改cc-search-directories ; ff-search-directories默认从cc -search-directories获取其内容。
布拉德佩恩

如果没有我的定制,它就行不通; 我不得不修改cc-search-directories,但效果很好!
dehmann 2011年

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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.