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.

我去到了相应的网址,但无法理解他们讨论的内容。

我该如何修复这个问题?

以及如何设置才是搭建在 Mac 上运行 Clojure 解决方案的理想配置?

3 条答案

+1
by

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

你发布的错误信息源自于一个不包含在标准 Emacs 配置中的 Emacs 包(evil-collection)。我假设你遵循了一个指南或者正在使用 Spacemacs 或 Doom Emacs 这样的 Emacs 发行版,它们使用了名为 "evil" 的包并提供预配置。

如果你同时对 Clojure 和 Emacs 都很新手,我建议你从头开始,这样你可以尽可能多地去除变量(比如上面提到的 "evil" 包)。有一本在线书籍 "Clojure for the brave and true" 涵盖了配置用于 Clojure 开发的标准 Emacs。《Clojure for the brave and true》的在线书籍地址为: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 是垂直堆叠,而不是并排。

我已经尝试了其他与网页匹配的快捷键命令,但没有成功。我还能做什么?
by
只要您可以在REPL中输入代码并获得评估结果,那么窗口分为垂直还是水平并不重要,这只是Emacs决定如何布局它的窗口的方式。如果要让它们并排显示,请尝试使用“Control-x 0 Control-x 3”。

为了明确,Emacs与Clojure无关,只是恰好Clojure社区在早期就接受了Emacs作为其首选编辑器之一,因为它支持Lisp。如果您不想同时学习两种编辑器并支持通过插件使用Clojure,则可能有其他编辑器和IDE对您来说更熟悉:Visual Studio Code有Calva,IntelliJ有Cursive等等。我并不是试图阻止您学习Emacs,如果您能投入学习它,它是一个伟大的工具,但是同时学习Emacs和Clojure可能会是一项艰巨的任务。
0
by

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

0
by

我该如何修复这个问题?

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

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

...