30.1 RC版本已经发布,对于即将到来的30版本大家有什么期待的新功能?

RT

有哪些大家期待已久的功能更新? 什么插件已经可以删除了? 哪些配置可以改动?

https://git.savannah.gnu.org/cgit/emacs.git/?h=emacs-30

5 个赞

集成vc-use-package,:vc下位替代:straight,去年撤离straight.el大胜利。

1 个赞

vc 可以固定 commit 或者 branch 么?

可以的,分别对应 :branch:rev 关键字,比如:

(use-package elpa-mirror
  :vc (:url "https://github.com/redguardtoo/elpa-mirror"
       :branch "emacs29"
       :rev "3bbf59e837b01a611e6d8b97e2328f0729e5e21e"))
6 个赞

Emacs 30.1 released

4 个赞

:vc 只能说是 straight 的简易版替代。 straight 的创建 lockfile 的功能以及基于 lockfile 回退版本的功能无可替代。当然 elpaca 最近也终于实现了 lockfile 机制了。但是 elpaca 对 ELPA 这样的根本就没有 git repo 的包的锁版本的机制仍然处理的不够完善。lockfile 目前做的最好的仍然是 straight。

完了 Mitsuharu port 落后于时代了

1 个赞

最期待的是这个 PEG,写代码会更加舒服,再也不用写复杂的正则了。

5 个赞

:vc 也可以指定版本,感觉也是够用了。

目前vc-use-package只能通过:rev手动控制git head,既不能自动更新,也不能自动回滚。

但是它可以控制包的版本,保证依赖项的包版本符合预期,通过这一点做到内外包的依赖耦合。如果用户大部分包都只用elpa的稳定版,反而更香。

至于lockfile,借用一句懒猫大大的结论,世界的尽头是git submodule。

1 个赞

不怕,我是隔段时间更新一次elpa的package

今天刚把straight.el换成自带的package,感觉启动速度慢了很多 (0.15s —> 0.32s)。请教一下大家是我设置有什么问题吗

(setq package-user-dir (expand-file-name "elpa" user-emacs-directory))
(require 'use-package-ensure)
(require 'package)
(setq use-package-always-ensure t
      use-package-always-defer t
      use-package-expand-minimally t
      use-package-vc-prefer-newest t
      package-archives '(("melpa" . "https://melpa.org/packages/")
                         ("nongnu" . "https://elpa.nongnu.org/nongnu/")
                         ("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)

(setq package-quickstart t)

试了一下但没有什么明显提升。。

去掉(package-initialize)试试呢

直接去掉会报错,改成(package-activate-all)后速度和之前差不多了

在emacs初始化的时候package-activate-all应该会自动调到,除非你在early-init里禁用了。

确实,之前用straight 时把它禁用了

今天直接用 scoop 升级 30.1 后先后报了几个错误,但是 emacs --debug-init 又没有错误信息。

  • M-x 时: vertico-multiform--setup: Symbol’s function definition is void: compat--completion-metadata-get
  • 打开org文件时:File mode specification error: (void-function internal--without-restriction)

作为小白我选择删库重来,直接扬了整个 elpa 文件夹(

重新启动安装后观察似乎 use-package 没能正确写入 package-selected-packages ,又直接重新 eval 整个 init.el (

总之现在好像没问题了( Windows 端启动速度从 6 秒左右变到 10 秒左右了 ←多装了几个包变成 15+,又开启 use-package-always-defer t 后变回 8 秒了

怎么解决的?我之前(require 'org) balabala…就没问题,(use-package org :demand t balabala…)却有问题