GitHub Copilot no Neovim: Passos de Instalação e Configuração
🔍 WiseChecker

GitHub Copilot no Neovim: Passos de Instalação e Configuração

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.

  1. Abra seu arquivo de configuração do Neovim
    Execute nvim ~/.config/nvim/init.lua no terminal. Se o arquivo não existir, crie-o.
  2. 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 linha cmd = "Copilot" carrega o plugin apenas quando você executa um comando do Copilot. A linha event = "InsertEnter" carrega quando você entra no modo de inserção, momento em que as sugestões aparecem.
  3. Salve o arquivo e reinicie o Neovim
    Execute :wq para salvar e sair. Em seguida, abra o Neovim novamente. O lazy.nvim baixará e compilará o copilot.lua automaticamente.
  4. 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.

  1. Execute o comando de autenticação
    No Neovim, digite :Copilot auth e pressione Enter. O plugin mostrará uma URL e um código de oito caracteres na área da linha de comando.
  2. 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.
  3. Insira o código do dispositivo
    Digite o código de oito caracteres exatamente como mostrado no Neovim. Clique em Continuar ou Autorizar.
  4. Confirme no Neovim
    Após a autorização, volte ao Neovim. Execute :Copilot status novamente. 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

  1. Defina a flag global de ativação
    Adicione esta linha ao seu init.lua fora da chamada setup:
    vim.g.copilot_enabled = true
    Defina como false para desativar o Copilot sem desinstalar o plugin.
  2. Alternar o Copilot rapidamente
    Execute :Copilot enable ou :Copilot disable para 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.

  1. Ajustar o atraso da sugestão
    Dentro da chamada setup, adicione:
    suggestion = {
      enabled = true,
      auto_trigger = true,
      debounce = 75,
      keymap = {
        accept = "",
        next = "",
        prev = "",
      },
    }

    O valor debounce está 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.
  2. Desativar o acionamento automático
    Defina auto_trigger = false se 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.

  1. Abrir o painel
    Execute :Copilot panel. Uma janela dividida verticalmente é aberta com várias opções de sugestão.
  2. 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_enabled está definido como true.
  • Certifique-se de que auto_trigger não está definido como false na 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 status para 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.