ニーモニックなキーバインドと設定レイヤーを備え、EmacsとVimの編集スタイルを組み合わせた、コミュニティ主導のEmacsディストリビューション。
- スター
- 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
ELPA または MELPA から Corfu をインストールします
M-x package-install RET corfu RET - 2
グローバルマイナーモードを有効にします
M-x global-corfu-mode RET - 3
バッファ内で M-TAB(または TAB)を押して補完します
使う前に知っておきたいこと
- Emacs 31 より前のバージョンでは、ポップアップに子フレームが必要なため、端末版 Emacs では別途 corfu-terminal パッケージが必要です。
- 自動補完はデフォルトで無効です。また、一部の補完関数では信頼できないコードが実行される可能性があるため、使用には注意が必要です。
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
Emacs標準の補完機能と補完コマンドを活用する、ミニマルな縦型補完UI。
入力中に非同期でコードをlintし、prettierやeslintなどのfixerを実行できる、Vim/Neovim用プラグイン兼LSPクライアントです。
Emacs向けのLanguage Server Protocolクライアント。IDEのような補完、診断、コードナビゲーション、リファクタリング機能を追加します。
EglotはEmacsに組み込まれたLSPクライアントで、最小限の設定で編集バッファを言語サーバーに接続します。
GNU Emacs向けのモジュール式バッファ内補完フレームワーク。入力中にコードやテキストの候補を表示します。