Как переключаться между.cpp и.hpp, которые не находятся в одном каталоге?

Есть ли функция 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-other-file в файле find-file.el. Если файлы.h и.cpp находятся в одном и том же каталоге, это будет работать, но вы сможете использовать его в разных местах, изменив значение ff-search-directoryies.

Спасибо за подсказку, Брэд! В случае, если больше людей найдут этот вопрос, вот один способ, который сработал для меня (в 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)
Другие вопросы по тегам