Yi 是一组包,可作为构建您自己的文本编辑器的构建块。仅运行 stack install yi 或 cabal install -j yi 类似于打开一盒乐高积木并在那里找到组装好的宇宙飞船。请注意,这种方式将无法使用自定义配置。为了拥有个性化的配置,需要使用 Yi 作为库来创建自己的文本编辑器。一个好的起点是在 example-configs 目录中选择您喜欢的示例配置,构建它,运行它,并修改它。 Yi 曾经有一个动态配置 (à la Xmonad)。所以每次更改配置后,Yi 都需要重新编译才能启动。现在,建议使用静态配置,这样可以在没有整个 Haskell 生态系统的情况下分发二进制文件。静态示例配置不需要放在任何特定目录中(但您仍然可以使用 ~/.config/yi)。
安装配置(使用 stack install 或 cabal install)。确保堆栈(或 cabal)安装可执行文件的文件夹位于您的 PATH 中。使用 package.yaml 文件中可执行文件行下的命令运行 Yi(即 yi-vty-emacs 用于 emacs 配置)。您还可以在此处更改可执行文件名称。您可以像静态配置一样安装它。确保将示例配置复制到 ~/.config/yi 文件夹中。在第 3 步之后,您应该可以只使用 yi 命令来启动 Yi。如果您更改配置文件,Yi 会自动检测您的更改并自行重建。有关更详细的安装说明,请参阅此文档页面。如果您正在使用 nix 包管理器,黑客指令也在那里。前端负责呈现编辑器状态并将用户事件传递给核心;动作描述了如何与编辑器进行交互,它是最易使用的部分。它围绕三个 monadic DSL 的堆栈构建:BufferM 用于所有缓冲区本地操作,例如插入、删除文本和缓冲区内容的注释。可以理解为一个monad,封装了一个buffer的状态。
EditorM 用于编辑器级别的操作,例如打开和关闭窗口和缓冲区。涉及多个缓冲区的操作也在这一级别处理。 YiM 用于 IO 级操作。在那里,可以对文件、进程等进行操作。这是唯一可以执行 IO 的级别。 Keymaps 代表如何触发操作,它们是使用或创建您需要的操作的基础;我们的邮件列表是 yi-devel,托管在 Google 网上论坛。请在此列表中向我们提问!所有开发讨论都出现在此列表中。 IRC:#yi@Freenode 请注意,它相当慢(与#haskell 相比非常慢),因此请准备好停留超过 5 分钟。