Alternativa Copilot gratuita e ultrarrápida para Vim e Neovim
Codeium completa automaticamente seu código com IA em todos os principais IDEs. Lançamos esta implementação do plugin Codeium para Vim e Neovim para levar esse superpoder de codificação moderno a mais desenvolvedores. Confira nosso playground se quiser experimentar rapidamente o Codeium online.
Contribuições são bem-vindas! Sinta-se à vontade para enviar solicitações pull e problemas relacionados ao plugin.
Instale o Vim (pelo menos 9.0.0185) ou Neovim (pelo menos 0.6)
Instale Exafunction/codeium.vim
usando o gerenciador de plugins vim de sua escolha ou manualmente. Consulte Opções de instalação abaixo.
Execute :Codeium Auth
para configurar o plugin e começar a usar o Codeium.
Você pode executar :help codeium
para obter uma lista completa de comandos e opções de configuração ou consultar este guia para obter um tutorial rápido sobre como usar o Codeium.
Para obter uma lista completa de opções de configuração, você pode executar :help codeium
. Algumas das opções mais populares são destacadas abaixo.
Codeium fornece as seguintes funções para controlar sugestões:
Ação | Função | Vinculação padrão |
---|---|---|
Limpar sugestão atual | codeium#Clear() |
|
Próxima sugestão | codeium#CycleCompletions(1) |
|
Sugestão anterior | codeium#CycleCompletions(-1) |
|
Inserir sugestão | codeium#Accept() |
|
Acionar sugestão manualmente | codeium#Complete() |
|
Aceitar palavra da sugestão | codeium#AcceptNextWord() |
|
Aceitar linha da sugestão | codeium#AcceptNextLine() |
|
Os atalhos de teclado padrão do Codeium podem ser desativados configurando
let g: codeium_disable_bindings = 1
ou no Neovim:
vim . g . codeium_disable_bindings = 1
Se desejar apenas desabilitar a ligação
, você pode alternativamente usar a opção g:codeium_no_map_tab
.
Se você quiser vincular as ações acima a chaves diferentes, isso pode ser parecido com o seguinte no Vim:
imap codeium#Accept()
imap codeium#AcceptNextWord()
imap codeium#AcceptNextLine()
imap call codeium#CycleCompletions(1)
imap call codeium#CycleCompletions(-1)
imap call codeium#Clear()
Ou no Neovim (usando wbthomason/packer.nvim ou 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
}
(Certifique-se de ter executado :Codeium Auth
após a instalação.)
O Codeium pode ser desabilitado para tipos de arquivos específicos definindo a variável g:codeium_filetypes
em seu arquivo de configuração do vim (vimrc/init.vim):
let g: codeium_filetypes = {
" bash " : v: false ,
" typescript " : v: true ,
}
Codeium está habilitado por padrão para a maioria dos tipos de arquivos.
Você também pode desabilitar o codeium por padrão com a variável g:codeium_enabled
e habilitá-lo manualmente por buffer executando :CodeiumEnable
:
let g: codeium_enabled = v: false
ou no Neovim:
vim . g . codeium_enabled = false
Ou você pode desabilitar o codeium para todos os tipos de arquivos com a variável g:codeium_filetypes_disabled_by_default
e usar a variável g:codeium_filetypes
para habilitar seletivamente o codeium para tipos de arquivos especificados:
" 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 ,
}
Se você quiser apenas desabilitar o acionamento automático de conclusões:
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()
Para desativar a renderização automática de texto de sugestões (o texto cinza que aparece para uma sugestão):
let g: codeium_render = v: false
O status do Codeium pode ser gerado chamando a função codeium#GetStatusString()
. No Neovim, você pode usar vim.api.nvim_call_function("codeium#GetStatusString", {})
em vez disso. Ele produz uma string longa de 3 caracteres com status Codeium:
'3/8'
- terceira sugestão de 8'0'
- Codeium não retornou sugestões'*'
- aguardando resposta do Codeium No modo normal, o status mostra se o Codeium está habilitado ou desabilitado mostrando 'ON'
ou 'OFF'
.
Para mostrá-lo na linha de status, adicione a seguinte linha ao seu .vimrc
:
set statusline+={…}%3{codeium#GetStatusString()}
Variante mais curta sem logotipo Codeium:
set statusline+=%3{codeium#GetStatusString()}
Por favor, verifique :help statusline
para obter mais informações sobre como construir statusline no VIM.
vim-airline suporta Codeium pronto para uso desde o commit 3854429d.
Chamar a função codeium#Chat()
ou usar o comando Codeium Chat
permitirá a pesquisa e indexação no projeto atual e iniciará o Codeium Chat em uma nova janela do navegador.
: call codeium#Chat ()
:Codeium Chat
A raiz do projeto é determinada procurando no diretório de trabalho atual do Vim alguns arquivos ou diretórios específicos presentes e sobe para os diretórios pais até que um seja encontrado. Esta lista de dicas é configurável pelo usuário e o valor padrão é:
let g:codeium_workspace_root_hints = ['.bzr','.git','.hg','.svn','_FOSSIL_','package.json']
Observe que iniciar o chat permite a telemetria.
{
' Exafunction/codeium.vim ' ,
event = ' BufEnter '
}
Plug ' Exafunction/codeium.vim ' , { ' branch ' : ' main ' }
Plugin ' Exafunction/codeium.vim '
use ' Exafunction/codeium.vim '
Execute o seguinte. No Windows, você pode substituir ~/.vim
por $HOME/vimfiles
:
git clone https://github.com/Exafunction/codeium.vim ~ /.vim/pack/Exafunction/start/codeium.vim
Execute o seguinte. No Windows, você pode substituir ~/.config
por $HOME/AppData/Local
:
git clone https://github.com/Exafunction/codeium.vim ~ /.config/nvim/pack/Exafunction/start/codeium.vim