Autocommands

    Definição curta: Autocommands são comandos que executam automaticamente quando certos eventos ocorrem (como abrir um arquivo, salvar, mudar de modo). São o sistema de hooks do Neovim.

    Antes de começar

    • Saber sair do Neovim (:q) e navegar em modo normal

    O que você vai aprender

    • Explicar Sintaxe básica com suas palavras
    • Explicar Eventos comuns com suas palavras
    • Explicar Padrões de arquivo com suas palavras
    • Localizar o assunto desta página no :help do seu próprio Neovim

    O que é

    Autocommands permitem executar ações reativas baseadas em eventos do editor. São essenciais para configuração de plugins, formatação automática e responder a eventos do sistema.

    Índice de sub-tópicos

    Sintaxe básica

    autocmd <eventos> <padrão> <comando>

    Exemplo:

    autocmd BufWritePre *.lua :lua vim.lsp.buf.format()

    Eventos comuns

    EventoDescrição
    BufReadPreAntes de ler buffer
    BufReadPostApós ler buffer
    BufWritePreAntes de salvar buffer
    BufWritePostApós salvar buffer
    FileTypeQuando tipo de arquivo é detectado
    InsertEnterAo entrar em modo Insert
    InsertLeaveAo sair de modo Insert
    TermOpenAo abrir terminal
    VimEnterApós iniciar Neovim
    VimLeavePreAntes de sair do Neovim
    LSPAttachQuando LSP client anexa a buffer

    Padrões de arquivo

    PadrãoDescrição
    *.luaArquivos Lua
    *.pyArquivos Python
    *.mdArquivos Markdown
    *Todos os arquivos

    Grupos de autocommands

    Grupos permitem organizar e limpar autocommands:

    augroup MyGroup
        autocmd!
        autocmd BufWritePre *.lua :lua vim.lsp.buf.format()
    augroup END

    O autocmd! dentro do grupo limpa autocommands anteriores do mesmo grupo.

    Exemplo Lua

    vim.api.nvim_create_autocmd("BufWritePre", {
      pattern = "*.lua",
      callback = function()
        vim.lsp.buf.format()
      end,
    })

    Você aprendeu

    • Sintaxe básica
    • Eventos comuns
    • Padrões de arquivo
    • Grupos de autocommands
    • Exemplo Lua

    Perguntas para reflexão

    1. O que Sintaxe básica resolve, e o que se perde sem isso?
    2. O que Eventos comuns resolve, e o que se perde sem isso?
    3. O que Padrões de arquivo resolve, e o que se perde sem isso?
    4. Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?

    Artigos relacionados

    Veja também

    Referências