Функции навигации по исходному коду Emacs

Я работаю над большим проектом C ++. Я работаю с Emacs в течение последних шести месяцев. Я попытался настроить CEDET, чтобы иметь возможность легко ориентироваться, но я обнаружил некоторые проблемы.

1.- Иногда семантика не находит некоторые символы, а иногда нет ... Я не знаю четко, какие файлы это семантическая индексация. Я пытался использовать EDE (следуя инструкциям в этой статье http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html ), но я также нашел некоторые проблемы ...

  • У меня есть несколько версий (релизов) одного и того же проекта, каждая в своей папке. Как я могу сказать emacs, с каким проектом я работаю?
  • Как я могу сказать ede, где искать мои заголовочные файлы? Могу ли я указать только корневой каталог, и семантик будет искать заголовочные файлы во всех подкаталогах?

2.- Я работал с vim + cscope некоторое время назад, и я помню, что был способ вернуться назад в стек символов (Ctrl-T). Есть ли что-то подобное в emacs?

PD> Некоторые данные, чтобы прояснить вопрос.

У меня есть несколько выпусков одного и того же проекта. У каждого есть свой корневой каталог. Каждый проект имеет несколько модулей, каждый из которых находится внутри подкаталога. В каждом модуле есть файл заголовков.

/home/user/
          |
           \Release-001
          |           |
          |            \makefile
          |            \ Module-001
          |           |           |
          |           |            \makefile
          |           |            \subdir-001
          |           |           |          \header-001.h
          |           |           |          \header-002.h
          |           |            \subdir-002
          |           |           |          \header-003.h
          |            \ Module-002
          |           |           |
          |           |            \makefile
          |           |            \subdir-003
          |           |           |          \header-004.h
          |           |           |          \header-005.h
          |           |            \subdir-004
          |           |           |          \header-006.h
          |
           \Release-002
          |           |
          |            \makefile
          |            \ Module-001
          |           |           |
          |           |            \makefile
          |           |            \subdir-001
          |           |           |          \header-001.h
          |           |           |          \header-002.h
          |           |            \subdir-002
          |           |           |          \header-003.h
          |            \ Module-002
          |           |           |
          |           |            \makefile
          |           |            \subdir-003
          |           |           |          \header-004.h
          |           |           |          \header-005.h
          |           |            \subdir-004
          |           |           |          \header-006.h

Это конфигурация о EDE, которая есть в моем .emacs

;; Cedet load commands
(add-to-list 'load-path "~/emacs-dir/cedet/cedet")
(load-file "~/emacs-dir/cedet/cedet/common/cedet.el") 

;; EDE: activating mode.
(global-ede-mode t)

;; Projects definition
(ede-cpp-root-project "Release-001"
                     :name "Release-001"
                     :file "~/Release-001/makefile"
                     :include-path '("/"
                                     )
                     :system-include-path '("~/exp/include")
                     :spp-table '(("SUSE9" . "")
                                )
)
(ede-cpp-root-project "Release-002"
                     :name "Release-002"
                     :file "~/Release-002/makefile"
                     :include-path '("/"
                                     )
                     :system-include-path '("~/exp/include")
                     :spp-table '(("SUSE9" . "")
                                )
)

Просто чтобы сообщить вам ... Я работаю с консольной версией (-nw) emacs.

6
задан tshepang 6 March 2014 в 20:35
поделиться