2

我可以使用ECB(或其他一些项目意识的东西,如eprojectibuffer等)来增强 emacs 的find-file优点吗?

想象一下这种情况:我在我的 中指定了几个项目/目录ecb-source-path,我们称它们为 Project1 和 Project2,它们看起来像这样:

Project1
  foo.c
  bar.c

Project2
  foo.c
  baz.c

我希望find-file(或其他命令)能够找到并跳转到那里的文件,而不必导航到 ecb 目录缓冲区,或者已经打开缓冲区。

我想我理想的使用场景是这样的:

我想C-x C-f baz(或其他特殊命令)打开Project2/baz.c. 更进一步,如果我可以使用类似ido的 flex 匹配来获取p2fooopen ,我会很高兴Project2/foo.c

¿ 最可能?

4

4 回答 4

2

如果在您的示例中,您在 project1 foo.c 中,并且您想访问 project1 bar.c,我认为大多数项目工具(如 ede、eproject、gnu global、idutils 集成等)都有“跳转到文件”类型的命令。我当然推荐 CEDET/EDE 和 ECB 组合。键绑定是C-c . fwhich is ede-find-file

设置 CEDET 和 EDE 非常简单,但 EDE 只知道少量不同的项目类型,您可能需要手动为您的项目配置它,这不太容易。

如果你想在 project1/foo.c 并跳转到 project2/baz.c,你只需要使用 locate:

M-x locate RET baz.c RET

现在从列表中选择。

于 2010-08-14T02:08:51.740 回答
2

您可以使用filecache包来索引您想要的目录,然后使用 ido 从缓存中选择一个文件名。 是一个例子;您可以通过 Google 搜索其他实现。

于 2010-08-14T11:01:03.233 回答
2

我编写了一个包find-file-in-tags,它使您能够在TAGS文件中打开文件,而无需指定文件的路径。如果有多个文件与您输入的内容相匹配,系统会提示您优化您的选择(或打开所有文件)。

此外,如果同一个项目有多个工作区,请find-file-in-tags为所有这些工作区使用一个 TAGS 文件,但在与您正在调用的缓冲区相同的工作区中打开文件find-file-in-tags

于 2010-08-27T18:57:59.670 回答
2

看看find-file-in-project。在我看来,您正在寻找类似的东西。

于 2010-08-14T16:13:09.247 回答