Vim および Neovim の無料の超高速 Copilot 代替品
Codeium は、すべての主要な IDE で AI を使用してコードを自動補完します。私たちは、この最新のコーディングのスーパーパワーをより多くの開発者に提供するために、Vim および Neovim 用の Codeium プラグインの実装を開始しました。オンラインで Codeium をすぐに試したい場合は、プレイグラウンドをチェックしてください。
貢献は大歓迎です!プラグインに関連するプル リクエストや問題を遠慮なく送信してください。
Vim (9.0.0185 以上) または Neovim (0.6 以上) をインストールします。
選択した vim プラグイン マネージャーを使用して、または手動でExafunction/codeium.vim
インストールします。以下のインストール オプションを参照してください。
:Codeium Auth
を実行してプラグインをセットアップし、Codeium の使用を開始します。
:help codeium
実行すると、コマンドと構成オプションの完全なリストが表示されます。また、Codeium の使用方法に関する簡単なチュートリアルについては、このガイドを参照してください。
構成オプションの完全なリストについては:help codeium
実行してください。最も一般的なオプションのいくつかを以下に示します。
Codeium は、提案を制御するために次の関数を提供します。
アクション | 関数 | デフォルトのバインディング |
---|---|---|
現在の提案をクリアする | codeium#Clear() |
|
次の提案 | codeium#CycleCompletions(1) |
|
以前の提案 | codeium#CycleCompletions(-1) |
|
提案を挿入 | codeium#Accept() |
|
提案を手動でトリガーする | codeium#Complete() |
|
提案の言葉を受け入れる | codeium#AcceptNextWord() |
|
提案からの行を受け入れます | codeium#AcceptNextLine() |
|
Codeium のデフォルトのキーバインドは設定によって無効にできます
let g: codeium_disable_bindings = 1
または Neovim では次のようになります。
vim . g . codeium_disable_bindings = 1
バインディングを無効にするだけの場合は、代わりにg:codeium_no_map_tab
オプションを使用できます。
上記のアクションを別のキーにバインドしたい場合、Vim では次のようになります。
imap codeium#Accept()
imap codeium#AcceptNextWord()
imap codeium#AcceptNextLine()
imap call codeium#CycleCompletions(1)
imap call codeium#CycleCompletions(-1)
imap call codeium#Clear()
または Neovim で (wbthomason/packer.nvim または folke/lazy.nvim を使用):
-- Remove the `use` here if you're using folke/lazy.nvim.
use {
' Exafunction/codeium.vim ' ,
config = function ()
-- Change '' here to any keycode you like.
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#Accept ' ]() end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#CycleCompletions ' ]( 1 ) end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#CycleCompletions ' ]( - 1 ) end , { expr = true , silent = true })
vim . keymap . set ( ' i ' , ' ' , function () return vim . fn [ ' codeium#Clear ' ]() end , { expr = true , silent = true })
end
}
(インストール後に:Codeium Auth
実行したことを確認してください。)
vim 設定ファイル (vimrc/init.vim) でg:codeium_filetypes
変数を設定することで、特定のファイルタイプに対して Codeium を無効にすることができます。
let g: codeium_filetypes = {
" bash " : v: false ,
" typescript " : v: true ,
}
Codeium は、ほとんどのファイルタイプでデフォルトで有効になっています。
g:codeium_enabled
変数を使用してデフォルトで codeium を無効にし、 :CodeiumEnable
実行してバッファごとに手動で有効にすることもできます。
let g: codeium_enabled = v: false
または Neovim では次のようになります。
vim . g . codeium_enabled = false
または、 g:codeium_filetypes_disabled_by_default
変数を使用してすべてのファイルタイプの Codeium を無効にし、 g:codeium_filetypes
変数を使用して指定したファイルタイプの Codeium を選択的に有効にすることもできます。
" let g:codeium_enabled = v:true
let g: codeium_filetypes_disabled_by_default = v: true
let g: codeium_filetypes = {
" rust " : v: true ,
" typescript " : v: true ,
}
完了の自動トリガーを無効にするだけの場合は、次のようにします。
let g: codeium_manual = v: true " You might want to use `CycleOrComplete()` instead of `CycleCompletions(1)`. " This will make the forward cycling of suggestions also trigger the first " suggestion manually. imapcall codeium#CycleOrComplete()
提案の自動テキスト表示 (提案に表示される灰色のテキスト) を無効にするには:
let g: codeium_render = v: false
Codeium ステータスはcodeium#GetStatusString()
関数を呼び出すことで生成できます。 Neovim では、代わりにvim.api.nvim_call_function("codeium#GetStatusString", {})
を使用できます。 Codeium ステータスを含む 3 文字の長さの文字列が生成されます。
'3/8'
- 8 つのうち 3 番目の提案'0'
- Codeium は提案を返しませんでした'*'
- Codeium の応答を待っています通常モードでは、ステータスは Codeium が有効か無効かを'ON'
または'OFF'
で示します。
ステータス行に表示するには、次の行を.vimrc
に追加します。
set statusline+={…}%3{codeium#GetStatusString()}
Codeium ロゴのない短いバージョン:
set statusline+=%3{codeium#GetStatusString()}
VIM でのステータスラインの構築の詳細については:help statusline
を確認してください。
vim-airline は、コミット 3854429d 以降、すぐに使用できる Codeium をサポートしています。
codeium#Chat()
関数を呼び出すか、 Codeium Chat
コマンドを使用すると、現在のプロジェクトで検索とインデックス作成が有効になり、新しいブラウザ ウィンドウで Codeium Chat が起動します。
: call codeium#Chat ()
:Codeium Chat
プロジェクトのルートは、Vim の現在の作業ディレクトリ内で特定のファイルまたはディレクトリが存在するかどうかを検索することによって決定され、ファイルまたはディレクトリが見つかるまで親ディレクトリをたどります。このヒントのリストはユーザーが構成可能で、デフォルト値は次のとおりです。
let g:codeium_workspace_root_hints = ['.bzr','.git','.hg','.svn','_FOSSIL_','package.json']
チャットを起動するとテレメトリが有効になることに注意してください。
{
' Exafunction/codeium.vim ' ,
event = ' BufEnter '
}
Plug ' Exafunction/codeium.vim ' , { ' branch ' : ' main ' }
Plugin ' Exafunction/codeium.vim '
use ' Exafunction/codeium.vim '
以下を実行します。 Windows では、 ~/.vim
$HOME/vimfiles
に置き換えることができます。
git clone https://github.com/Exafunction/codeium.vim ~ /.vim/pack/Exafunction/start/codeium.vim
以下を実行します。 Windows では、 ~/.config
$HOME/AppData/Local
に置き換えることができます。
git clone https://github.com/Exafunction/codeium.vim ~ /.config/nvim/pack/Exafunction/start/codeium.vim