Repolode
minad

minad/corfu

Corfuは、Emacs標準のcompletion-at-point機能を活用する、バッファ内表示に特化したミニマルな補完ポップアップです。

代替できる製品:Company

スター
1,555
フォーク
59
未解決の Issue
0
最終コミット
5 日前

これは何?

CorfuはEmacsのバッファ内で、カーソル位置の近くに小さなポップアップとして補完候補を表示します。矢印キーで候補を移動し、TABまたはRETで挿入できます。ミニバッファ向けUIであるVerticoに対する、バッファ内補完版です。独自のバックエンドAPIではなく、標準のcompletion-at-point(Capf)およびcompletion-in-regionインターフェースを基盤としています。

Corfu自体には補完バックエンドは付属しません。補完候補はEmacs組み込みのCapf、サードパーティの言語パッケージ、またはdabbrevから取得でき、Capeなどの関連パッケージでソースを追加できます。自動補完はデフォルトで無効ですが、corfu-autoで有効にできます。オプションの拡張機能では、エコーエリアやポップアップでの候補説明、履歴に基づく並べ替え、クイックキー、マウス操作を利用できます。

CorfuはOrderlessをはじめとする補完スタイルに対応し、ミニバッファやEshell、shellのバッファでも使用できます。Emacs 31ではターミナル版Emacsでも動作します。それより古いバージョンでは、別途corfu-terminalパッケージが必要です。

主な機能

  • 01ポップアップにカーソル位置の下または上へ候補を表示し、矢印キーで移動できます。
  • 02タイマーまたはトリガー文字をきっかけに自動補完を開始できます(デフォルトでは無効)。
  • 03annotation関数や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標準のcompletion-at-point機能を活用する、バッファ内表示に特化したミニマルな補完ポップアップです。 CorfuはEmacsのバッファ内で、カーソル位置の近くに小さなポップアップとして補完候補を表示します。矢印キーで候補を移動し、TABまたはRETで挿入できます。ミニバッファ向けUIであるVerticoに対する、バッファ内補完版です。独自のバックエンドAPIではなく、標準のcompletion-at-point(Capf)およびcompletion-in-regionインターフェースを基盤としています。
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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト