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

2008
dehmann

Есть ли функция 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но я не говорю Лиспа.

4

2 ответа на вопрос

2
Brad Payne

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

Я проверил это с типом структуры каталогов, который вы упомянули, и _ff-find-other-file_ успешно нашел соответствующие файлы. Вы должны иметь возможность просто использовать эту функцию без необходимости что-либо настраивать. Если у вас более сложная структура каталогов, _cc-search-directoryies_ можно изменить; _ff-search-directoryies_ по умолчанию получает его содержимое из _cc-search-directoryies_. Brad Payne 13 лет назад 0
Это не работало без настройки для меня; Мне пришлось изменить `cc-search-directoryies`, но это прекрасно работает! dehmann 13 лет назад 0
2
silversby

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

Похожие вопросы