Clojure

编辑器

Clojure 是一种交互式语言,只有使用支持代码评估(通过连接的 REPL)和结构化编辑(将代码形式视为数据而不是文本)的编辑器,才能获得最佳的 Clojure 体验。幸运的是,有许多优秀的 Clojure 编辑器提供了这些功能以及许多其他程序员便利。

请注意,下面描述的许多编辑器都处于积极开发中。此处的链接和资源可能会过时。我们欢迎您提出 问题问题

Emacs 是仍在积极使用的最古老的编辑器之一。作为一个在其自身 Lisp 变体中可扩展的平台,它提供了几乎任何你可能想要做的事情的选项。正如你可能期望的那样,强大的可扩展性意味着将此工具配置到你喜欢的程度本身可能是一项工作,对于某些人来说,Emacs 更像是一种生活方式而不是一个编辑器。也就是说,仅供 Clojure 开发人员使用的友好起点是存在的,你可以选择吸收 Emacs 生态系统的速度。

需要注意的主要 Emacs 模式是

  • clojure-mode,一个 Emacs 主模式,它为 Clojure(Script) 提供了字体锁定(语法高亮)、缩进、导航和重构支持。

  • CIDER 通过 cider-mode 扩展了 Emacs,支持 Clojure 的交互式编程,cider-mode 是一个 Emacs 次要模式,它补充了 clojure-mode 以提供交互式支持。

  • inf-clojure - 基于流行的 inferior-lisp 包的想法,提供与 Clojure 子进程(REPL)的基本交互。

一些开始的地方

  • GNU Emacs - 下载和安装 - 官方 GNU Emacs 页面

  • Practicalli Spacemacs 安装指南,一个社区驱动的 Emacs 配置,适用于 Clojure - 包括 clojure-mode 和 CIDER

  • Prelude - 适用于 Emacs 初学者的 Emacs 配置,不特定于 Clojure,但包括 Clojure 支持(clojure-mode、CIDER)

  • Aquamacs - Aquamacs 是专为 Mac 原生用户设计的 Emacs,与 inf-clojure 模式配对时,足以满足简约的 Clojure 环境。

IntelliJ - 侧重 Java 的 Clojure

IntelliJ IDEA 是支持各种语言和工具的主要“现代”IDE 之一。IntelliJ 以其作为复杂的 Java 编辑器而闻名,它利用静态分析平台为大型 Java 代码库提供了出色的可探索性和重构功能。适用于 JVM 开发的 IntelliJ IDEA 社区版可作为 免费下载 提供。

两个重要的插件可用于在 IntelliJ 上启用 Clojure 开发

  • Cursive - 一个功能齐全的 Clojure 开发环境

  • clojure-extras - 集成了额外的功能,例如内联评估结果和通过 clj-kondo 进行的代码风格检查。

如果您已经熟悉 Java 或预计要处理混合的 Clojure/Java 项目,那么 Cursive 是一个不错的选择。

VS Code - 快速发展,对初学者友好

Visual Studio Code 正在快速发展,被用于各种语言,Clojure 也不例外。

用于 Clojure 交互式开发的 Calva 环境使用静态和动态分析的混合来提供广泛的语言支持。此外,Calva 还特别努力通过其 入门 体验让初学者更容易上手,这是一个在浏览器中运行的零安装版本。

Vim - 高效的文本编辑

Vim(或 vi)也是一个历史悠久的编辑器,以其快速有效地编辑文本的能力而闻名。它已成为 vi 的事实上的替代品,vi 是其基础的原始 Unix 可视化编辑器。

其独特而强大的 UI 足够流行,以至于上面提到的大多数其他编辑器都包含了复制 Vim 核心 UI 功能的 vi 模式。

Neovim 是 Vim 的一个分支。虽然它保持了高度的兼容性,但这两个编辑器之间存在一些显着差异。

Vim 和 Neovim 都具有很强的可扩展性,并且为它们提供了大量的插件。大多数(但不是全部)插件都可以在这两个编辑器上使用。

以下插件为 Vim 和 Neovim 提供 Clojure 支持

以下插件仅为 Neovim 提供 Clojure 支持

  • Conjure - 专注于交互式开发

除了 Clojure 插件外,还值得扩展 Vim 以改进 s 表达式的编辑。以下插件可以在 Vim 和 Neovim 中使用

还有许多插件可以提供括号的颜色匹配。

其他

其他环境也存在,但活动性较低和/或使用较少。请参阅 工具 页面以获取其他想法。

原作者:Alex Miller