Emacs:如何快速找到项目中的文件?

时间:2012-03-11 15:09:25

标签: emacs cedet

现在,我正在使用ede来管理我的cpp项目,并且我尝试在项目中快速找到一个文件,但是我失败了。我用ede-find-file找到“db.h”,它位于“d:/projects/leveldb/include/db.h”,不幸的是,它说找不到。

我的配置放在

之下
(setq leveldb_root "d:/projects/leveldb/")

(ede-cpp-root-project
  "leveldb"
  :file (concat leveldb_root ".gitignore")
  :system-include-path '("C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
                       "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/include")
  :include-path '("/"
                "/include"))

并且,是否有任何关于项目管理和文件查找解决方案的建议? (我也尝试过find-file-in-project)。

我使用ede是因为我需要ede-cpp-root-project来自动设置semanticdb。

6 个答案:

答案 0 :(得分:11)

看看projectile。 Projectile是Emacs的项目交互库。它的目标是在项目级别上提供一组很好的功能,而不会引入外部依赖项。例如,查找项目文件是在纯elisp中完成的,无需使用GNU find。

该库提供简单的项目管理和导航。项目的概念非常基本 - 只是一个包含特殊文件的文件夹。目前git,mercurial和bazaar repos默认被视为项目。如果要将文件夹手动标记为项目,只需在其中创建一个空的.projectile文件。

答案 1 :(得分:4)

我用于C / C ++项目的解决方案之一是使用GNU Global。您可以将gtags模块与Emacs一起使用,这比内置标签系统更优越。一旦安装了GNU Global并配置了Emacs gtags,就可以从源代码树的顶层运行gtags来生成标记。现在,如果您运行 M-x gtags-find-file 来打开由Global索引的文件。为了便于使用,您可以使用方便的键击来绑定此命令。

答案 2 :(得分:3)

对于原始ede项目类型,例如生成或生成的项目类型 读取Automake文件,EDE知道所有文件以及它们的位置 正在编入你的程序。

对于ede-cpp-root,它没有要使用的文件列表,所以它只是真的 在当前目录中搜索或包含路径。包含路径是 关键,因为智能完成需要它。

如果您想使用ede-find-file进行常规文件发现,那么就是您 可以集成在GNU Global等外部工具中,也可以作为idutils集成 两个文件的后端数据库。你也可以启用你的 系统的locate命令。

自定义ede-locate-setup-options以包含您想要的任何工具 喜欢使用,然后它应该按照需要工作。

答案 3 :(得分:2)

好吧,我真的不知道如何解决你的问题,但我可以尝试解决它。如果您安装了ido软件包(http://www.emacswiki.org/emacs/InteractivelyDoThings),通常可以通过这种方式快速查找文件。在我看来,这是一个查找文件的解决方案。

答案 4 :(得分:0)

或者您可以尝试xcscope.el,找到您想要的文件(+更多),速度非常快 您已正确设置了cscope数据库。

答案 5 :(得分:0)

另一个选择是gpicker。它实际上是一个外部工具,但是有一个emacs的集成插件。它提供有关其相对路径的项目文件的模糊搜索,并使其非常快。我使用它大约三年,强烈建议尝试gpicker其他emacs用户。