emacs .emacs
这就像试图在蹦床上固定袋鼠一样。 –西德·瓦德尔
如果您进行clojure [script]开发,则很可能通过Emacs和CIDER进行 。 通常,这种体验简直棒极了 ,但时不时地您会遇到一些怪癖。 当最新的CIDER发布时,情况就是如此,主要是因为我喜欢保留我的Emacs。
CIDER和clj-refactor
具有不兼容的稳定版本,您需要确保这些稳定版本来自melpa-unstable
稳定与不稳定
我使用Clojure 支付账单 ,因此,我负担不起走到最前沿的步伐。 这就是为什么我确保所有Emacs软件包都来自稍微值得信赖的稳定版本流的原因:
(require 'package)
(setq package-archives
'(("gnu" . "https://elpa.gnu.org/packages/")
("melpa" . "https://stable.melpa.org/packages/")
("melpa-unstable" . "https://melpa.org/packages/")))
(setq package-archive-priorities
'(("melpa" . 50)
("gnu" . 10)
("melpa-unstable" . 0)))
软件包归档文件上设置的优先级可确保安装释放的软件包(来自melpa-stable
)来代替不稳定的快照(如果存在)。 理想情况下,我希望从配置中删除melpa-unstable
,但是在某些情况下,这是必须保持的邪恶。 就像我写这篇文章的原因一样。
CIDER和
最新和最v0.17.0
( v0.17.0
)早于2018年5月,而最新的clj-refactor
版本则相当古老,可追溯到2017年6月。这两个软件包现在不兼容,如果您同时在Emacs中安装了REPL将无法启动。 已经在clj-refactor
问题跟踪器中多次报告了此问题,但是Java 9兼容性阻止了任何新发行的clj-refactor
,这意味着我们可能要等待很长时间才能拥有稳定的clojure IDE。包括重构。 我们需要摆弄自己:
;; manual package pinning:
(add-to-list 'package-pinned-packages '(clj-refactor . "melpa-unstable") t)
;; or if you're using `use-package' to install packages:
(use-package clj-refactor
:ensure t
:pin "melpa-unstable"
...)
而已。 现在,您可以安全地升级软件包,并再次享受Clojure IDE。
正如dantheobserver
在评论中适当指出的dantheobserver
, use-package
本身正在等待稳定发行一段时间。 因此,只有一种方法可以正确固定它,类似于上面的第一个选项:
(add-to-list 'package-pinned-packages '(use-package . "melpa-unstable") t)
骇客骇客!
翻译自: https://www.javacodegeeks.com/2018/05/tale-emacs-clojure-pinned-packages.html
emacs .emacs