Corfu 补全的使用姿势

Bookerly, 亚马逊专门为 Kindle 开发的字体,比较适合电子设备。

我主要在 org-mode ,Info-mode 看文档,gnus 看邮件列表,以及 mode-line 用这个变宽字体,很舒服 :grinning_face_with_smiling_eyes:

Corfu 的用户主要一下,如果把 延迟改为 0 以及前缀改为 1,在这种情况下会和 flyspell-mode 冲突,造成补全列表的候选不全。如果喜欢这种即时显示补全窗口的话,建议手动运行 flyspell 进行拼写检查。

比如这种设置:

(use-package corfu
  :demand t
  :custom
  (corfu-auto t)
  (corfu-max-width 110)
  (corfu-auto-delay 0.0)
  (corfu-auto-prefix 1)
  (corfu-preview-current nil)
  (corfu-echo-documentation t)
  :bind (:map corfu-map
              ("C-d" . corfu-info-documentation)
              ("M-." . corfu-info-location))
  :init
  (global-corfu-mode))

我在 macOS 上开了 flyspell 也不影响,在 Windows 下就有影响,估计是因为 Windows 下性能较差。

参考这个 issue:

1 个赞

Corfu 可以通过 corfu-popup 这个包在终端里面使用了。但只支持基于文本的 kind-icon 图标

这是在 iterm2 中的效果:

8 个赞

corfu 看着很强大呀。

Corfu 在除了在后端方面没 Company 那么丰富,其他方面都挺不错的,值得一试。

Company 相当于大而全,Corfu 是小而美,自由组合 :smile:

  1. 因为用的是 childframe 来显示,弹窗可以越过其他窗口。Company 的弹窗是overlay 实现,只能在窗口内显示。
  2. 通过 kind-icon 支持漂亮的 UI 图标。
  3. 通过 cape 支持更多的后端,甚至可以直接用 company 的后端。
  4. 配合 orderless 补全体验和 minibuffer 中的 vertico 保持一致。
6 个赞

哈哈哈, 感觉不错,等我把 lsp-bridge 弄完了尝试一下。

1 个赞

好耶!tty党无比开心 :smiling_face_with_three_hearts:

1 个赞

看起来很不错。说到这个,我发现 kind-icon 即使提前在 .cache/svg-lib 下载了图标,他也会从 github 下载。最难受的是,他会卡住 emacs。。就算 C-g 也没用

不会啊,本地有图标是不会再去下载的。那说明你本地的图标还没下载全。 你可以试试将我这个仓库的图标放到 ~/.emacs.d/.cache/svg-lib 目录下,这里都是全了的。

我就是从你这下载的 :joy:

那不应该啊,一共是32个图标,只要名字对就行,对应这里设置的名字:

你是在什么mode下输入哪个关键字就会提示下载图标?

emacs-lisp-mode,

README.org
material_application-braces-outline.svg
material_application-brackets-outline.svg
material_application-parentheses-outline.svg
material_circle-half-full.svg
material_code-braces.svg
material_code-brackets.svg
material_cog.svg
material_crosshairs-question.svg
material_file-code-outline.svg
material_file-document-outline.svg
material_folder.svg
material_format-list-bulleted-square.svg
material_format-list-bulleted-type.svg
material_format-list-checks.svg
material_function-variant.svg
material_function.svg
material_key-variant.svg
material_lambda.svg
material_lightning-bolt-outline.svg
material_lock-remove-outline.svg
material_note-text-outline.svg
material_numeric.svg
material_palette.svg
material_plus-circle-outline.svg
material_plus-minus.svg
material_ruler-square.svg
material_script-text-outline.svg
material_sticker-text-outline.svg
material_table-column-plus-after.svg
material_variable-box.svg
material_variable.svg
material_view-grid-plus-outline.svg

是的,我已经去掉 kind-icon 了

发现这个问题后,我也暂时去掉了 kind-icon,他的功能也不是很要紧。

我确认过了,图标名字是没问题的,我用的跟你的一样。不会再去联网。

或者你可以设置 (setq kind-icon-use-icons nil) ,这样就会用基于文本的图标,不需要下载的。

可以给 kind-icon 提个 issue,建议加一个安装 icions 的命令,一次性下载完。就不会每次都自动去下了。

嗯,好的,谢谢。我下午再试试 kind-icon

也可以试试这个命令: M-x kind-icon-reset-cache,可以重置缓存。(切换主题也要执行一次,主题的图标才会刷新)

嗯,这是一个调试的好方法。

没说主题的事,还没在意到呢。

使用的时候,Emacs 有可能会出现一个小方框,一直显示不消失,一直没找原因。

先把 kind-icon 禁用看看是什么问题。

什么样的小方框?有截图吗?