自定义 Emacs 文件目录结构

4
我已经阅读了许多关于emacs项目管理的问题,但它们似乎没有涉及到我喜欢的工作方式(这可以追溯到Borland时代)。
基本上,我想创建自己的文件层次结构,从中可以打开要编辑的文件。 这将与目录结构不同:通常有一些文件从编辑角度来看逻辑上应该被收集在一起,但并不在同一个目录中等等。
目前,我一直在使用scitepm,这是一个侧边栏启动器,用于编辑器SciTE(Scintilla衍生版)。 但是我认为emacs一定能做类似的事情-我只是无法从eproject,speedbar等的各种描述中找出我的具体用例...
有什么指针吗? 还是我的工作流程过时了?
3个回答

5

Vanilla Emacs(即不带任何插件的Emacs)提供了一些功能,可以帮助您:

  • 文件集:持久的文件集合——请参见(emacs) Filesets

  • Dired可以打开一个明确的文件集,而不管它们在哪个目录中。只需将绝对文件名列表作为DIRNAME参数传递给命令dired

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

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

  • Dired书签:包括一组文件和子目录,插入的子目录,Dired标记集,隐藏的插入子目录以及“省略”的文件和子目录。

  • 自动文件书签:即使没有访问过任何文件也可以将其加入书签。

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

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

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

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

Icicles 提供其他有用功能:

这里是其项目支持的良好入口:Icicles - Support for Projects

  • 它可以轻松地保存和恢复文件名集合,并且可以持久化(或仅在会话中)。这包括emacs文件集,但也包括更灵活的文件和目录集。当您使用C-x C-f等命令时,您可以对已保存的文件名集合进行自动完成。收藏中保存的文件名可以位于您的文件系统上的任何位置(或远程位置)。

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

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

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

  • 它提供了跨一组文件或缓冲区搜索特性,包括一个持久化集合。


1
请看www.emacswiki.org/emacs/BookmarkPlus。它有很多选项和自定义功能。对你感兴趣的可能是你可以拥有多个书签文件,每个文件存储多个书签,然后有一个或多个主书签文件来存储它们,除了普通书签...你明白我的意思:)。
我主要使用bookmark+,因为它还允许将函数绑定到书签上。

你在最后提到将函数绑定到书签的细节非常有帮助。通常,功能清单不会关注最重要的东西:通常是最酷、最新的东西。这就是为什么我不得不在这里寻找评论的原因:谢谢。 - 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


哇,代码注释得真好!我相信它会帮助很多人,特别是那些需要完成具有相同基本计划的项目的人。然而,对于我的目的(这些目的是许多小型“草图”项目 - 经常使用不同的语言等),这似乎过于预先计划了 - 因为我也试图感受布局逻辑。 - mdda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接