rt。
看了官方文档,没有。只能自己git clone下来吗?
rt。
看了官方文档,没有。只能自己git clone下来吗?
好吧。。。 spacemacs是只预装了package.el吗?
使用straight.el
。
例如,你要安装format-all
,使用如下代码:
(use-package format-all
:straight (:host github :repo "lassik/emacs-format-all-the-code"))
前提是你安装了straight.el
并且:
;; install use-package
(straight-use-package 'use-package)
安装straight.el
简单极了,前提是你网络不错:
;; ensure that straight.el is installed
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
按照这样 spacemacs/packages.el at 201d22bcc975bd5f4cf459a27c1c42922179f4e2 · syl20bnr/spacemacs · GitHub 的格式放到 dotspacemacs-additional-packages
中
如果你用的是 spacemacs 可以这样:
dotspacemacs-additional-packages '(evil-replace-with-register
ef-themes
(copilot :location (recipe
:fetcher github
:repo "zerolfx/copilot.el"
:files ("*.el" "dist"))))
安利个 quelpa ,可以和 use-package 整合。
以 lsp-bridge 为例:
(use-package lsp-bridge
:defer t
:quelpa (lsp-bridge :fetcher github :repo "manateelazycat/lsp-bridge" :branch "master" :files ("*"))
:init
(global-lsp-bridge-mode)
:config
(setq acm-fetch-candidate-doc-delay 1
acm-enable-doc nil
acm-snippet-insert-index 0)
:general
(general-define-key
:keymaps 'acm-mode-map
[remap evil-complete-next] 'acm-select-next
[remap evil-complete-previous] 'acm-select-prev
[remap yas-expand] 'acm-complete
"<return>" 'private/lsp-return
"<escape>" 'acm-hide)
(common-leader
"." 'lsp-bridge-find-def
"," 'lsp-bridge-return-from-def))
一直没有仔细比较过,quelpa和straight各有什么优劣势?
straight 的 README 里面有比较
简单来说:quelpa 是对 package.el 的补充,能从各种来源下载包并编译到 elpa 文件夹中;而 straight 不依赖 package.el ,仅支持 git 这一种下载方式,提供各种方便的命名管理插件。
straight 看起来更灵活,但实际使用中更慢,会下载一堆无关的东西,慢而且空间占用还大。你遇到这个情况吗?
straight 会下载源代码再编译,占用的确相对来说比较大,可以通过设置来改善你提到的问题:
(setq straight-vc-git-default-clone-depth 1)
(straight-use-package '(org :type built-in)) ;; 使用 emacs 自带的包
PS: raxod502 文档中的 README 有点繁杂了,对于初次使用者不太友好。
这个只能轻微改善,代码还是两份,不相关的图片文档还是会被下载啊,有办法避免吗?这个是我的痛点。
没有办法解决,我理解 straight 这种方式相当于本地编译,不知道其他道友有没有奇招去绕过?
我之前使用 straight 的时候,占用较大是其中的一个痛点,后来又遇到其他的小问题,我就没用 straight 了。
我目前的方式是 利用 GitHub action 自建专用 elpa-mirror 以满足自己的需求 ,其中项目地址更改为 https://github.com/ymfsing/emacs-packages (我不知道为什么无法修改那个主题的内容了)。
PS: 目前有点偏离了,最好拉出做新的主题。
我的理解是,straight更适合包开发者,本地有有一份代码和一份编译好的包。但是这样的话跟cask比也没多大优势,可能是我使用不多吧。目前看quelpa或者直接submodule更满足大多数人。个人必须倾向于使用melpa方式,所以用package.el,有需要可能会上quelpa,暂时就不考虑straight了。