2024 Clojure 州调查!中分享您的想法。

欢迎!请访问关于页面以了解更多关于此网站如何运作的信息。

0
工具

你好,

我对这些都很不熟悉...

我在设置使用标准配置的 Emacs 时遇到了这个错误

Warning (evil-collection): `evil-want-keybinding' was set to nil but not before loading evil.

Make sure to set `evil-want-keybinding' to nil before loading evil or evil-collection.

See https://github.com/emacs-evil/evil-collection/issues/60 for more details.

我访问了 URL,但理解不了他们在讨论什么。

我该如何修复这个问题?

以及搭建在 Mac 上运行 Clojure 解决方案的最佳设置是什么?

3 个答案

+1

我在设置使用标准配置的 Emacs 时遇到了这个错误
配置

您发布的错误来自于一个名为 evil-collection 的 emacs 插件,这并非标准 emacs 配置的一部分。我猜您可能遵循了一个指南或使用了一个如 Spacemacs 或 Doom emacs那样的 emacs 发行版,这些发行版使用了名为 "evil" 的插件并提供了预配置。

如果您对 Clojure 和 emacs 都不太熟悉,我建议您从头开始,这样可以尽可能多地移除变量(如上面提到的 "evil" 插件)。有一本在线书籍《Clojure for the brave and true》,它涵盖了配置用于 Clojure 开发的基本 emacs。请参阅https://www.braveclojure.com/basic-emacs/

作为附加说明,"evil" 插件为 emacs 提供了类似于 vi 的模态编辑。如果您这正是您想要的,在您的 Clojure 环境启动并运行之后,您可以去选择配置 evil 以让两者都能良好工作,或者查看上面提到的某个发行版。

我在计算机上卸载并重新安装了 Emacs。当我再次启动 Emacs 时,在应用程序中出现了 Spacemacs。

我该如何完全删除之前安装的所有组件和依赖,这样我就能真正从头开始呢?

(在遵循所有回复中的任何建议之前,我不需要这样做,对吧?)
您提到您在使用 Mac。实际上,Emacs 配置可以存储在多个位置。首先关闭 Emacs。无需卸载它,只需要关闭它。然后从终端(Mac 上的 Terminal.app)尝试以下命令。

- rm -R ~/.emacs
- rm ~/.emacs.el
- rm -R ~/.emacs.d
- rm -R ~/.config/emacs

由于我不是 Spacemacs 用户,因此不知道该分发的具体信息。快速搜索提到文件 `~/.spacemacs`,所以也尝试删除它。

- rm ~/.spacemacs

上述大多数命令会根据配置文件所存放的位置而失败,但至少其中一个应该成功。运行这些命令后,尝试再次启动 Emacs,它应该显示其默认配置。
是的 - 这些命令可行 - 谢谢。
奇怪的是 - 我正在遵循 braveclojure.com/basicemacs 页面,但我在进行 M-x cider-jack-in 操作时,我的窗口与网页上的 Emacs 不相同。我的 core.clj 代码和 REPL 是垂直堆叠的,而不是并排的。

我已经尝试其他键绑定命令来匹配网页,但未能成功。我还能做些什么?
只要您能在REPL中输入代码并对其进行评估,那么窗口分割是垂直还是水平就无关紧要,这只是 Emacs 决定窗口布局的方式。如果您想让它们并排显示,请尝试“Control-x 0 Control-x 3”。

为了明确起见,Emacs 与 Clojure 没有任何关系,只是Clojure 社区早期由于支持 Lisp 而采用了 Emacs 作为其首选的编辑器之一。如果您不想同时学习两个工具并通过插件支持 Clojure,还有其他编辑器和 IDE 可能会让您感到更熟悉:Visual Studio Code 拥有 Calva,IntelliJ 拥有 Cursive 等。我并不是试图阻止您学习 Emacs,如果您愿意投入精力学习,它是一个出色的工具,但学习 Emacs 和 Clojure 恐怕是一项艰巨的任务。
0

关于配置,我建议您查看这篇 Emacs 指南:https://emacs-lsp.github.io/lsp-mode/tutorials/clojure-guide/

0

我该如何修复这个问题?

取决于您如何安装和设置 evil。如果您使用 use-package,这[1] 是其中一种方法。

[1] https://github.com/AirManH/.emacs.d/commit/6f7e3082a005cee9b413d62ffafb40e3e8ae3ed2

...