2013-08-16 41 views
4

我已经阅读了许多关于emacs项目管理的问题,虽然他们似乎没有得到我喜欢的工作方式(可以追溯到Borland的日子)。emacs中的自定义文件层次

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

此刻,我一直在与scitepm合作,这是编辑器SciTE(一种闪烁体衍生物)的侧栏发射器。但在我看来,emacs必须能够做类似的事情 - 我只是不能从各种描述的eproject,speedbar等中挑出我的具体使用案例......

任何指针?或者,我的工作流程是绝望的复古?

回答

5

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

  • 文件集:持久性文件集---看(emacs) Filesets

  • Dired可以明确的组文件被打开,不管他们在什么目录,只是传递的绝对文件名作为参数DIRNAME命令dired列表。

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

Bookmark+提供了一些更多的功能,可以帮助(书签通常peristent):

  • Dired书签:任何一组文件和子目录,连同插入的子目录,设置Dired的标记,隐藏的插入子目录以及“省略”文件和子目录。

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

  • 书签标记:按照喜欢的方式对书签进行分类。标签定义了一组书签。按标签排序,搜索wrt标签,...

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

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

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

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

这里是一个很好的切入点,其对项目的支持:Icicles - Support for Projects

  • 它可让您轻松地持续(或仅限会话)save and restore sets of file names。这包括emacs文件集,但也包括更灵活的文件和目录集。当您使用C-x C-f等时,您可以使用保存的一组文件名来完成。集合中保存的文件名可以位于文件系统(或远程)的任何位置。

  • enhances the Bookmark+ features以各种方式。

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

  • enhances the use of Dired以各种方式。

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

1

查看www.emacswiki.org/emacs/BookmarkPlus。 它有很多选项和定制。 对你而言有趣的是你可以拥有多个书签文件,每个书签文件存储多个 书签,然后存储它们的一个或多个主文件书签文件, 除正常书签之外...你得到的点:)

我主要使用书签+,因为它允许将功能绑定到书签 。

+0

你详细地有关绑定功能,书签是非常有帮助的结束。通常,软件包的功能列表并不关注最重要的东西:通常是最酷的/最新的东西。这就是为什么我必须在这里寻找评论:谢谢。 – mdda

0

当我正在改进一种主要的语言模式时,我尝试了几种方法来创建项目/文件组。我已经解决的事情还没有在这里提到过,所以我会对此说几句。这是EDE。它配备了CEDET,但实际上是另一回事。它有几个现成的项目模板,专门用于Emacs Lisp,C,我认为我最终看到了针对Android Java开发的定制。

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

下面是不是代码的抛光版本,但可能给你的是什么它可能看起来像一个想法:http://code.google.com/p/haxe-mode/source/browse/trunk/lisp/ede/haxe.el

+0

哇 - 很好的评论代码!我相信它会帮助很多人 - 尤其是那些需要制定具有相同基本游戏规划的项目的人。然而,为了我的目的(这是很多小的'草图'项目 - 通常用不同的语言,等等),这似乎太过预先计划 - 因为我也试图感受布局的逻辑。 – mdda