在Linux中通过Emacs/Vim进行Haskell编码:将文件组织到项目中



关于在Linux的Emacs/VIM中编写Haskell,我有两个问题:

  1. 如果想将一个 haskell 代码库组织到多个项目中(给定项目的文件存储在特定文件夹中),那么 emacs 和 vim 可以处理这个问题吗?原因是我之前使用过IDE,所有项目都一次加载到会话中,但不确定这对Emacs/VIM如何工作。

  2. IDE的另一个好处是,我可以从给定项目中定义函数,即使该函数定义位于单独的项目中(即存储在单独的文件夹中)。Emacs/VIM 能处理这个问题吗?

这里有一些讨论:Haskell IDE for Windows?

  1. VIM/Emacs 并不关心你如何组织文件。它们主要是编辑器,因此无论您如何布局目录结构,都可以使用它们来编辑文件。除此之外,最好遵循一些标准约定,或者针对您将要使用的工具调整结构。你可以看看Haskell项目的结构。使用Cabal来构建你的项目和管理它的依赖关系也很方便。
  2. VIM/Emacs 可以使用 Ctags 索引文件在项目中导航。有关如何创建这些索引文件的可用选项,请参阅标记。索引工具不需要任何特定的项目结构,因此如果您需要在多个项目中导航,您只需将包含多个项目的目录索引到一个索引文件中即可。

有一种叫做 Projectile 的 Emacs 模式允许一些"类似项目"的功能,这可能是你正在寻找的。我自己并没有真正使用它(我倾向于坚持旧的 *nix 编辑文件的方式),所以我不能给你细节,但检查一下也没有什么坏处。

不确定我是否正确理解了问题的要点。以下是我关于在 Vim 中管理多个项目问题的建议,而不考虑所使用的语言。

您可以利用 vim 会话。通过 .vimrc 中的一些自定义函数/键映射,您将能够为每个项目保留一个单独的会话文件,无论是在项目目录中还是专用于会话文件的目录中。

这是一般操作方法:http://vim.runpaint.org/editing/managing-sessions/在那里,您会发现许多专门解决处理多个项目特定会话问题的脚本:如何在退出时自动保存 vim 会话并在启动时自动重新加载,包括拆分窗口状态?

最新更新