基本上,我想创建自己的文件层次结构,从中可以打开要编辑的文件。 这将与目录结构不同:通常有一些文件从编辑角度来看逻辑上应该被收集在一起,但并不在同一个目录中等等。
目前,我一直在使用scitepm,这是一个侧边栏启动器,用于编辑器SciTE(Scintilla衍生版)。 但是我认为emacs一定能做类似的事情-我只是无法从eproject,speedbar等的各种描述中找出我的具体用例...
有什么指针吗? 还是我的工作流程过时了?
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的使用。
它提供了跨一组文件或缓冲区搜索特性,包括一个持久化集合。
由于我正在改进一种主要的语言模式,我尝试了几种方法来创建项目/文件组。我选择的方法还没有在这里提到,所以我会简单介绍一下。它是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