Arquivo init.lua
O init.lua é o "ponto zero" do seu Neovim. É a partir dele que o editor ganha vida e carrega toda a sua personalização.
O que ele faz?
Ao abrir o Neovim, ele busca por este arquivo no caminho ~/.config/nvim/init.lua. Qualquer código Lua inserido aqui será executado imediatamente no startup.
Atenção
O Neovim aceita apenas um arquivo raiz:
init.lua OU init.vim. Se você tiver os dois, poderá haver conflitos ou o editor ignorará um deles.Navegando pela API Lua
vim.opt — Preferências
Controla o comportamento visual e funcional do editor.
lua
vim.opt.number = true -- Ativa números de linha
vim.opt.relativenumber = true -- Números relativos
vim.opt.tabstop = 2 -- Largura do tabvim.keymap.set — Atalhos
A ferramenta principal para criar seus próprios atalhos.
lua
-- Sintaxe: vim.keymap.set(modo, teclas, ação, opções)
vim.keymap.set("n", "<C-s>", ":w<CR>", { desc = "Salvar" })
vim.keymap.set("n", "<leader>q", ":q<CR>", { desc = "Sair" })Modos Comuns
"n" Normal"i" Inserção"v" VisualExemplo Base Funcional
Abaixo, um exemplo de como o seu init.lua pode começar antes de migrarmos para a estrutura modular.
~/.config/nvim/init.lua
-- Tecla líder (Leader Key)
vim.g.mapleader = " "
-- Opções Globais
local opt = vim.opt
opt.number = true
opt.expandtab = true
opt.shiftwidth = 2
-- Autocomando: Destacar texto ao copiar (Yank)
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank({ timeout = 200 })
end,
})
-- require("user") -- Carregará sua pasta lua/user/ futuramenteModularização
Embora você possa colocar tudo em um único arquivo, conforme sua config cresce, recomendamos separar em módulos (como vimos na seção de estrutura).