21天学会Emacs第四天: vertico, orderless, marginalia, embark和consult使用简介

15 个赞

B站视频: 完全可以代替 ivy, swiper和counsel

4 个赞

大佬的视频与时俱进呀哈哈,我一年多前入坑的时候看21天,还是讲的 ivy。不过现在我看很多人用这一套来替换 ivy/swiper,不知道有什么区别呢

do one thing and do it well. 每个package只专注于一个功能,并且把它做到最好,另外代码简单,跟Emacs结合紧密,出问题容易reasoning,容易扩展,性能好。

1 个赞

重新学习一下。 :kissing:

@guanghui.qu 大佬,请教下关于 emacs-rime 输入法的配置。 我看到你的 rime 配置中,emacs-rime 和 系统的rime(鼠须管和小狼毫)设置使用相同的 rime-user-data-dirrime-share-data-dir,这样系统rime 和 librime 不会冲突吗?还需要什么特别的设置吗?

我按你的设置的话,emacs-rime 中没法识别词库,只能打一些简单的字。

我一直是把 系统 rime 的配置 和 librime 的配置独立开,这样一台电脑中就有需要维护两个词库确实不方便。

1 个赞

换形码输入法,不用维护词库。 :crazy_face:

貌似没有冲突耶,不过我是用的五笔输入法。

我的也是独立的,但是我把词库做了个软连接,这样就只维护一个词库就可以了,不过我用的是五笔 :joy:

懂了,估计是因为你用的形码,不需要词库。拼音的话估计会有问题。

我也试试软连接方案,多谢提醒。

在启用vertico后,好像所有completing-read函数都被vertico的模式接管了,导致的后果是候选都被默认按照使用顺序排序了。我有些原来的包改成completing-read后,希望还按照原来的顺序来排序,不知道应该咋设置这部分候选不要按照默认的vertico模式来排序呢? 谢谢;

;; Change the default sorting function.
;; See `vertico-sort-function' and `vertico-sort-override-function'.
(setq vertico-multiform-commands
      '((describe-symbol (vertico-sort-function . vertico-sort-alpha))))

(setq vertico-multiform-categories
      '((symbol (vertico-sort-function . vertico-sort-alpha))
        (file (vertico-sort-function . sort-directories-first))))

;; Sort directories before files
(defun sort-directories-first (files)
  (setq files (vertico-sort-history-length-alpha files))
  (nconc (seq-filter (lambda (x) (string-suffix-p "/" x)) files)
         (seq-remove (lambda (x) (string-suffix-p "/" x)) files)))

这个我也试了,感觉没有生效啊。 我是想让候选列表保持原样,按照下面写的:

(require 'vertico-multiform)
(setq vertico-multiform-commands
      '((irfc-browser (vertico-sort-function . (lamba ())))))

那个sort函数无论是空函数还是nil,好像排序都还是按照vertico默认的来的;

我试了wiki中的例子,就是让目录排到前面的,但是也不生效;还需要配置啥嘛?

歪个楼, 我想问一下你们放弃 ivy 的原因是什么?

其实我也不知道,只是尝个鲜?看大家都换了,所以也想试试。还真没觉得ivy有啥不好,说不定哪天又换回去了。

2 个赞

只hook 了completion-read兼容性更好,ivy遇到没有hack completion read 的场合会失效

能否给个具体例子,我看看怎么解决

明天我看看怎么能简化成例子。 话说那个sort-directories-first函数排序能对find-file生效吗?我试了没效果啊?还是我的用法不对?我还是抄的wiki的写法?

最好有实际例子,不然我也不清楚你说的问题