你最近移除了哪些插件和功能

从不编译, 编译省的那些性能几乎没什么意义,而且调试起来还有点麻烦, emacs社区那帮人有时间鼓捣这个还不如完善一些标准库, 免得每次写插件都得require f.el, s.el, dash.el之类的. cl-lib, seq,各自都缺失很多方法,又互相重叠, 我现在基本都是dash一把梭,实在找不到的方法比如sort之类的才会去用seq.

5 个赞

Emacs lisp byte code 是跨平台并且向前兼容,我都是直接复制 macOS 上编译好的 elpa 包到 windows,在理解宏展开的前提下不会出什么问题

也就是 filter/grep 这种操作能用外部代码,font-lock 的 inner loop 这种涉及基本显示逻辑的情况也没法外部代码做。甚至于平滑滾动的控制这种在浏览一个文件时要调用几千次的情况也都是要 lisp 写的。

dash.el 基本上所有定义都不到 3 行,很多只有一行,还有一堆仅是 alias,相比用 dolist 没有什么实质上的新功能。f.el s.el 同理都只是 emacs API 的二次包装,没有实质上的内容,以我这样一个对 Clojure 没什么感觉的人的观点来说就是过度抽像了。

以 flycheck maintainer 的说法,Emacs 26 以后 subr-x + seq 己经覆盖了 dash.el 的常用功能,虽然 dash.el 在 gnu elpa 里,也就是说已经算进了 Emacs

2 个赞

最近一年Centaur Emacs进行了一些精简和优化,很多包进行了更新,主要如下:

  1. projectile → project
  2. flycheck → flymake
  3. persp-mode → tar-bar-mode/tabspaces
  4. lsp-mode → eglot (+lsp-booster)
  5. dap-mode → dape
  6. ivy/counsel/swiper → vertico/consult/embark
  7. company → corfu
  8. flx/prescient → orderless
  9. all-the-icons → nerd-icons
  10. undo-tree → vundo
  11. ace-link → link-hint
6 个赞

link-hint 不知道 telega 里面的 link,不知道该如何添加这种 link 的识别(

可以自己定义,具体可以问问作者

突然发现avy-goto-word 可以取代ace jump。所以就扒ace jump去掉了。

我记得大佬之前还在社区说过 flymake 功能比 flycheck 少,现在如何呀?

比较好奇缺了些啥功能,可以举些例子么

请问大佬, 在您开发和使用的过程中, orderless 相比 prescient.el 有什么优势吗?

(对我而言, prescient.el 可以根据输入的频率来排序补全选项, 目前我还没找到别的包可以实现这个功能)

我也从 flycheck 换成 flymake 了

1 个赞

我现在lint主要用的就是lsp,所以flycheck不再是刚需了.

flymake 现在重写了,功能补上了,又是内置包,配合eglot使用没有问题了,所以就换了。

2 个赞

输入频率是指历史记录吗?如果是 history 的话,vertico 的配置项 vertico-sort-function 可以做到按历史记录排序,而且是默认的。

ok,有空我尝试一下。现在大佬有用到 flymake 的什么 UI 插件吗?

orderless 不支持sort,优势是与vertico/corfu等无缝集成,配置简单。prescient 功能更多,灵活性稍弱,针对每个completion框架要单独安装个插件。至于sort的功能直接留给了vertico/consult,没有那么强大但是够用了,所以就弃用prescient。

可以看看这个的比较:

oantolin/orderless: Emacs completion style that matches multiple regexps in any order (github.com)

1 个赞

为了避免冲突,用 emacs-sideline/sideline-flymake: Show flymake errors with sideline (github.com),没有使用child frame之类的方案。

Ok,谢谢安利,这个 sideline 我之前也用过(和 flycheck 集成) :joy:,但是我一直遇到一个 bug:如果在有 sideline 显示的情况下 M-x revert-buffer,会导致 sideline 永远留在 buffer 上,只有重新访问文件才能去除。加上有些时候它的显示感觉怪怪的,就没有用下去了。

是有这个问题,可以用这个办法解决:

(add-hook 'before-revert-hook #'sideline--disable)
1 个赞

counsel的触手非常之多,比如这几个我常用的,counsel-unicode-charcounsel-compile-envcounsel-ag(这个consult貌似有人做了,但是没合入主线)。

还有swiper的函数,比如swiper-mcswiper-C-sswiper-avy这些,如果要consult支持反而不好做。

我认为ivy至今依然是用户的最优选择。虽然ivy的体量比vertico大很多,但是性能并不比vertico要差,在许多方面ivy表现的更出色(更少出现明显卡顿)。

1 个赞

这个 sideline 有没有办法显示在行代码后一定距离的地方啊,屏幕大的时候全屏就有点尴尬,除非缩小窗口。