Vim 和 Neovim 的免費、超快 Copilot 替代品
Codeium 在所有主要 IDE 中使用 AI 自動完成您的程式碼。我們為 Vim 和 Neovim 推出了 Codeium 插件的實現,以便為更多開發者帶來這種現代編碼的超能力。如果您想快速在線試用 Codeium,請查看我們的 Playground。
歡迎貢獻!請隨意提交拉取請求和與插件相關的問題。
安裝 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", {})
來代替。它產生一個 3 個字元長的字串,帶有 Codeium 狀態:
'3/8'
- 8 個建議中的第三個'0'
-Codeium 未回傳任何建議'*'
- 等待 Codeium 回應在正常模式下,狀態會透過顯示'ON'
或'OFF'
來顯示 Codeium 是否啟用或停用。
為了在狀態行中顯示它,請將以下行新增到您的.vimrc
中:
set statusline+={…}%3{codeium#GetStatusString()}
沒有 Codeium 標誌的較短版本:
set statusline+=%3{codeium#GetStatusString()}
請檢查:help statusline
以取得有關在 VIM 中建置狀態行的更多資訊。
自提交 3854429d 以來,vim-airline 支援 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