我正在开发一个大型 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
这是我的 .emacs 中关于 EDE 的配置
;; 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" . "")
)
)
只是想让你知道......我正在使用 emacs 的控制台版本(-nw)。