Как переключаться между.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)