Você quer usar o GitHub Copilot dentro do Neovim para obter sugestões de código com IA enquanto digita. O GitHub Copilot requer o plugin oficial para Neovim e uma assinatura do GitHub Copilot. Este artigo explica como instalar o plugin, autenticar sua conta e configurar as principais opções para que o Copilot funcione corretamente no seu editor.
Principais Conclusões: Configuração do GitHub Copilot no Neovim
- Instalação com gerenciador de plugins lazy.nvim ou vim-plug: A maneira mais rápida de instalar o plugin copilot.lua e mantê-lo atualizado.
- Comando :Copilot auth: Autentica sua assinatura do GitHub Copilot diretamente do Neovim.
- vim.g.copilot_enabled = true no init.lua: Ativa o Copilot globalmente para que as sugestões apareçam em todos os buffers.
Como o GitHub Copilot Funciona no Neovim
O GitHub Copilot é uma ferramenta de conclusão de código com IA que sugere linhas ou funções inteiras enquanto você digita. No Neovim, ele funciona como um plugin que se comunica com o serviço do GitHub Copilot. O plugin intercepta suas teclas digitadas, envia contexto para a nuvem e retorna sugestões que aparecem inline.
Antes de começar, você precisa destes pré-requisitos:
- Uma conta GitHub com uma assinatura ativa do Copilot. Copilot Pro ou Copilot Business funcionam.
- Neovim versão 0.5 ou superior. O plugin usa APIs Lua disponíveis apenas em versões recentes do Neovim.
- Um gerenciador de plugins. Este guia usa lazy.nvim, a escolha mais comum para Neovim 0.8 e superior.
- Node.js versão 16 ou superior. O servidor de linguagem do Copilot é executado no Node.js.
O plugin em si é um wrapper Lua chamado copilot.lua. Ele substitui o plugin antigo copilot.vim e oferece melhor desempenho e mais opções de configuração. O repositório oficial é github.com/zbirenbaum/copilot.lua.
Instalar o copilot.lua com lazy.nvim
Se você já usa lazy.nvim, adicionar o Copilot leva apenas um bloco de código no seu arquivo de configuração do Neovim. O arquivo geralmente está localizado em ~/.config/nvim/init.lua no Linux e macOS ou ~/AppData/Local/nvim/init.lua no Windows.
- Abra seu arquivo de configuração do Neovim
Executenvim ~/.config/nvim/init.luano terminal. Se o arquivo não existir, crie-o. - Adicione a especificação do plugin lazy.nvim
Insira este bloco dentro da sua função de configuração do lazy.nvim:{
"zbirenbaum/copilot.lua",
cmd = "Copilot",
event = "InsertEnter",
config = function()
require("copilot").setup({})
end,
}
A linhacmd = "Copilot"carrega o plugin apenas quando você executa um comando do Copilot. A linhaevent = "InsertEnter"carrega quando você entra no modo de inserção, momento em que as sugestões aparecem. - Salve o arquivo e reinicie o Neovim
Execute:wqpara salvar e sair. Em seguida, abra o Neovim novamente. O lazy.nvim baixará e compilará o copilot.lua automaticamente. - Verifique se o plugin foi carregado
Execute:Copilot status. Você deve ver uma mensagem informando que o Copilot ainda não está autenticado. Isso é esperado.
Autenticar o GitHub Copilot no Neovim
A autenticação vincula sua instância do Neovim à sua assinatura do GitHub Copilot. O processo usa um fluxo de código de dispositivo, então você não precisa colar um token manualmente.
- Execute o comando de autenticação
No Neovim, digite:Copilot authe pressione Enter. O plugin mostrará uma URL e um código de oito caracteres na área da linha de comando. - Abra a página de ativação do dispositivo
Copie a URL https://github.com/login/device e cole-a no seu navegador. Você também pode digitá-la manualmente. - Insira o código do dispositivo
Digite o código de oito caracteres exatamente como mostrado no Neovim. Clique em Continuar ou Autorizar. - Confirme no Neovim
Após a autorização, volte ao Neovim. Execute:Copilot statusnovamente. Você deve ver uma mensagem como “Copilot: Online e pronto”.
Se você vir um erro sobre o Node.js não encontrado, instale o Node.js versão 16 ou superior em nodejs.org e reinicie o Neovim. O Copilot não funcionará sem o runtime Node.js.
Configurar o Copilot no Neovim
A configuração padrão funciona para a maioria dos usuários. Mas você pode personalizar o comportamento das sugestões, os atalhos de teclado e a aparência do painel. Todas as configurações vão dentro da chamada require("copilot").setup({}).
Ativar ou Desativar o Copilot Globalmente
- Defina a flag global de ativação
Adicione esta linha ao seu init.lua fora da chamada setup:vim.g.copilot_enabled = true
Defina comofalsepara desativar o Copilot sem desinstalar o plugin. - Alternar o Copilot rapidamente
Execute:Copilot enableou:Copilot disablepara alterar o estado da sessão atual.
Alterar a Aparência das Sugestões
O Copilot mostra sugestões como texto virtual ao lado do cursor. Você pode controlar o atraso e o formato da sugestão.
- Ajustar o atraso da sugestão
Dentro da chamada setup, adicione:suggestion = {
enabled = true,
auto_trigger = true,
debounce = 75,
keymap = {
accept = "",
next = "",
prev = "",
},
}
O valordebounceestá em milissegundos. Valores menores fazem as sugestões aparecerem mais rápido, mas usam mais CPU. As entradas keymap permitem aceitar uma sugestão com Alt+L em vez de Tab. - Desativar o acionamento automático
Definaauto_trigger = falsese quiser solicitar sugestões manualmente com uma combinação de teclas.
Usar o Painel do Copilot
O painel mostra várias sugestões alternativas de uma vez. Você pode navegar por elas e aceitar uma.
- Abrir o painel
Execute:Copilot panel. Uma janela dividida verticalmente é aberta com várias opções de sugestão. - Navegar e aceitar
Use j e k para mover entre as sugestões. Pressione Enter para aceitar a destacada.
Problemas Comuns Após a Instalação
Status do Copilot Mostra “Offline”
Isso geralmente significa que o processo Node.js falhou ao iniciar. Verifique se o Node.js está instalado e se seu caminho está na variável PATH do sistema. Execute node --version no terminal para confirmar. Se a versão for inferior a 16, atualize o Node.js. Reinicie o Neovim após a atualização.
Nenhuma Sugestão Aparece no Modo de Inserção
O Copilot precisa de alguns segundos após você começar a digitar para gerar sugestões. Se nada aparecer após 5 segundos, verifique estas configurações:
- Confirme que
vim.g.copilot_enabledestá definido comotrue. - Certifique-se de que
auto_triggernão está definido comofalsena sua configuração. - Verifique se o tipo de arquivo é suportado. O Copilot funciona com a maioria das linguagens de programação, mas pode não mostrar sugestões em arquivos de texto simples.
- Execute
:Copilot statuspara confirmar que o plugin está online.
O Copilot Sugere Código Irrelevante
O Copilot baseia as sugestões no arquivo atual e nos arquivos recentes que você tem abertos. Se as sugestões estiverem fora do alvo, abra mais arquivos de contexto no mesmo buffer. Você também pode limpar o cache do Copilot executando :Copilot detach e depois :Copilot attach para o buffer atual.
GitHub Copilot no Neovim: Comparação de Opções de Plugin
| Item | copilot.lua (recomendado) | copilot.vim (antigo) |
|---|---|---|
| Descrição | Plugin nativo em Lua com suporte à API moderna do Neovim | Plugin em Vimscript para Vim e versões antigas do Neovim |
| Método de instalação | lazy.nvim, packer.nvim ou vim-plug | vim-plug ou instalação manual via Vimball |
| Formato de configuração | Tabelas Lua no init.lua | Variáveis Vimscript no .vimrc |
| Desempenho | Inicialização mais rápida devido ao carregamento preguiçoso | Inicialização mais lenta em configurações grandes |
| Suporte a painel | Sim, embutido | Não, requer plugin separado |
Para novas instalações do Neovim, use copilot.lua. Ele é mantido ativamente e se integra melhor ao ecossistema Lua. Use copilot.vim apenas se você estiver preso ao Neovim 0.4 ou anterior.
Agora você tem o GitHub Copilot instalado e configurado no Neovim. Você pode aceitar sugestões com Alt+L, navegar pelas alternativas com Alt+] e Alt+[, e abrir o painel com :Copilot panel para ver várias opções de uma vez. Para ajustes finos, experimente o valor de debounce e a configuração auto_trigger para corresponder à sua velocidade de digitação.