Repolode
minad

minad/corfu

Corfu 是 Emacs 的极简缓冲区内补全弹窗,基于 Emacs 内置的补全机制实现。

可替代:Company

Star
1,555
Fork
59
未关闭 Issue
0
最近提交
6天前

这是什么?

Corfu 在 Emacs 缓冲区光标附近显示一个小型补全弹窗,可用方向键选择候选项,并通过 TAB 或 RET 插入。它是 Vertico 迷你缓冲区界面在缓冲区内的对应版本,直接基于标准的 completion-at-point(Capf)和 completion-in-region 接口实现,而不是自定义后端 API。

Corfu 本身不提供补全后端,候选项来自 Emacs 内置 Capf、第三方编程语言包或 dabbrev,配套的 Cape 等包可补充更多来源。自动补全默认关闭,可通过 corfu-auto 开启。可选扩展提供回显区或弹窗形式的候选文档、基于历史的排序、快捷键选择和鼠标支持。

Corfu 支持 Orderless 等补全样式,也可用于迷你缓冲区以及 Eshell、Shell 缓冲区。在 Emacs 31 上可用于终端版 Emacs,较早版本需要额外安装 corfu-terminal。

核心功能

  • 01弹窗显示在光标上方或下方,支持方向键导航。
  • 02支持定时器或触发字符触发自动补全,默认关闭。
  • 03支持通过 annotation 和 affixation 函数显示候选注释。
  • 04可按前缀、长度、字母顺序或历史记录排序。
  • 05支持 Orderless 补全样式,并可配置分隔符。
  • 06提供回显区文档、弹窗文档、快捷键选择等可选扩展。

适用场景

  • 在 Emacs 中编写代码时获取缓冲区内补全。
  • 在 Eshell 或 Shell 缓冲区中补全命令和路径。
  • 写作时利用 dabbrev 或 Capf 源补全单词。
  • 结合 Orderless 实现灵活的高级匹配过滤。

快速上手

  1. 1

    从 ELPA 或 MELPA 安装 Corfu

    M-x package-install RET corfu RET
  2. 2

    启用全局次模式

    M-x global-corfu-mode RET
  3. 3

    在缓冲区中按 M-TAB(或 TAB)进行补全

使用前须知

  • 在 Emacs 31 之前的版本中,弹出窗口依赖子框架,终端 Emacs 需要额外安装 corfu-terminal 包。
  • 自动补全默认关闭;部分补全函数可能执行不可信代码,使用时需谨慎。

标签

#emacs#completion#editor#elisp#in-buffer-completion#autocomplete

常见问题

corfu 是什么?
Corfu 是 Emacs 的极简缓冲区内补全弹窗,基于 Emacs 内置的补全机制实现。 Corfu 在 Emacs 缓冲区光标附近显示一个小型补全弹窗,可用方向键选择候选项,并通过 TAB 或 RET 插入。它是 Vertico 迷你缓冲区界面在缓冲区内的对应版本,直接基于标准的 completion-at-point(Capf)和 completion-in-region 接口实现,而不是自定义后端 API。
corfu 可以免费使用吗?用的什么许可证?
corfu 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
corfu 还在维护吗?
活跃维护中。corfu 最近一次提交是在 2026年11月1日。
corfu 适合用来做什么?
在 Emacs 中编写代码时获取缓冲区内补全。 在 Eshell 或 Shell 缓冲区中补全命令和路径。 写作时利用 dabbrev 或 Capf 源补全单词。 结合 Orderless 实现灵活的高级匹配过滤。
corfu 怎么安装和运行?
从 ELPA 或 MELPA 安装 Corfu: M-x package-install RET corfu RET 启用全局次模式: M-x global-corfu-mode RET 在缓冲区中按 M-TAB(或 TAB)进行补全
在哪里获取 corfu?
源代码和安装说明在 GitHub 上:https://github.com/minad/corfu

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目