4

我已经阅读了许多关于 emacs 中项目管理的问题,尽管它们似乎并没有了解我喜欢的工作方式(可以追溯到 Borland 时代)。

基本上,我想创建自己的文件层次结构,我可以从中打开文件进行编辑。这与目录结构不同:从编辑的角度来看,通常有一些合乎逻辑的文件要收集在一起,但不在同一个目录中,等等。

目前,我一直在使用scitepm,它是编辑器 SciTE(一种 Scintilla 衍生产品)的侧边栏启动器。但在我看来,emacs 必须能够做类似的事情——我只是无法从 eproject、speedbar 等的各种描述中梳理出我的特定用例......

任何指针?还是我的工作流程无可救药地复古?

4

3 回答 3

5

开箱即用的Vanilla Emacs提供了一些可以提供帮助的功能:

  • 文件集:持久的文件集 --- 请参阅(emacs) Filesets.

  • Dired 可以在一组显式文件上打开,无论它们位于什么目录中。只需将绝对文件名列表作为DIRNAME参数传递给 command dired

  • TAGS 文件使您可以直接或可搜索地访问给定文件集中的“定义”。原则上,定义可以是任何东西,但通常是函数、变量、类等定义(IOW,编程结构)。

Bookmark+提供了更多可以提供帮助的功能(书签通常是永久性的):

  • Dired 书签:任何文件和子目录集,以及插入的子目录、Dired 标记集、隐藏的插入子目录以及“省略”的文件和子目录。

  • 自动文件书签:为任何文件添加书签,甚至无需访问它。

  • 书签标记:以您喜欢的任何方式对书签进行分类。标签定义书签集。按标签排序,搜索 wrt 标签,...

  • 多个书签文件:另一种定义书签集的方法。

  • 桌面书签:Emacs 会话状态 --- 带回文件集,无论在新会话中。

  • 复合或序列书签结合了多个书签的效果。

Icicles提供的其他功能可以帮助:

这是其对项目的支持的一个很好的切入点:Icicles - 对项目的支持

  • 它使您可以轻松地持久保存和恢复文件名集(或仅会话)。这包括 emacs 文件集,但也包括更灵活的文件和目录集。当您使用C-x C-fetc 时,您可以针对一组已保存的文件名完成。保存在集合中的文件名可以位于文件系统(或远程)上的任何位置。

  • 它以各种方式增强了Bookmark+的功能

  • 它增强了 Emacs TAGS 文件和代码导航的使用。

  • 它以各种方式增强了 Dired 的使用。

  • 它提供了在一组文件或缓冲区中搜索的功能,包括一个持久集。

于 2013-08-16T18:30:28.637 回答
1

看看 www.emacswiki.org/emacs/BookmarkPlus。它有很多选项和自定义。您可能会感兴趣的是,您可以拥有多个书签文件,每个书签文件都存储多个书签,然后是一个或多个存储它们的主书签文件,除了普通书签......你明白了:)

我主要使用书签+,因为它也允许将函数绑定到书签。

于 2013-08-16T18:04:58.480 回答
0

当我致力于改进一种主要的语言模式时,我尝试了几种方法来创建项目/文件组。我确定的事情还没有在这里提到,所以我会说几句话。这是EDE。它带有 CEDET,但实际上是一个单独的东西。它有几个现成的项目模板,特别是针对 Emacs Lisp、C 的,我想我最终看到了针对 Android Java 开发的定制。

这与其他解决方案的不同之处在于您需要编写一些 Emacs Lisp 代码来自定义它以执行您喜欢的操作。另一方面,它已经有许多库函数。比如:它有集中的项目管理、序列化/反序列化设置的方式、通过菜单访问的API、通过小部件修改项目设置的API。就编程方式而言,它总体上使用了一种非常干净的方法来解决这个问题。

以下不是代码的完善版本,但可能会让您了解它的外观:http ://code.google.com/p/haxe-mode/source/browse/trunk/lisp/ede/哈希表

于 2013-08-16T21:55:11.217 回答