init.lua Básico
Definição curta: Tutorial para criar o primeiro arquivo de configuração
init.luano Neovim v0.11+. Cobre estrutura básica, options, keymaps e organização.
Antes de começar
- Neovim v0.11 ou mais recente instalado — confira com
nvim --version - Um
init.luaque já carrega, ainda que vazio
O que você vai aprender
- Explicar Localização do init.lua com suas palavras
- Explicar Estrutura básica com suas palavras
- Explicar Configurar options com suas palavras
- Localizar o assunto desta página no
:helpdo seu próprio Neovim
O que é
O init.lua é o arquivo principal de configuração do Neovim quando usado com Lua. Substitui o tradicional init.vim (Vimscript).
Localização do init.lua
O Neovim procura configuração na ordem:
$XDG_CONFIG_HOME/nvim/init.lua
~/.config/nvim/init.lua (Linux/macOS)
%APPDATA%/nvim/init.lua (Windows)Verificar config
echo $XDG_CONFIG_HOME # Usually ~/.config
ls -la ~/.config/nvim/Estrutura básica
-- ~/.config/nvim/init.lua
-- Comentários começam com --
-- Configurações gerais
vim.g.mapleader = " "
-- Options
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.expandtab = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.smartindent = true
-- Keymaps
vim.keymap.set("n", "<leader>w", ":w<CR>", { silent = true })Configurar options
Opções comuns para começar
-- Interface
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.signcolumn = "yes"
-- Indentação
vim.opt.expandtab = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.smartindent = true
-- Comportamento
vim.opt.hidden = true
vim.opt.backup = false
vim.opt.writebackup = false
vim.opt.swapfile = false
vim.opt.wrap = falseCriar keymaps
Keymap básico
vim.keymap.set("n", "<leader>w", ":w<CR>", { silent = true })| Parâmetro | Descrição |
|---|---|
"n" | Modo Normal |
"<leader>w" | Sequência de teclas |
":w<CR>" | Comando a executar |
{ silent = true } | Não mostrar no command-line |
Keymaps por modo
vim.keymap.set("n", "<Esc>", ":noh<CR>", { silent = true }) -- Normal
vim.keymap.set("i", "jk", "<Esc>", { silent = true }) -- Insert
vim.keymap.set("v", "<", "<gv", { silent = true }) -- Visual (re-indent)
vim.keymap.set("v", ">", ">gv", { silent = true }) -- VisualOrganizar em módulos
Para configs maiores, separe em arquivos:
~/.config/nvim/
├── init.lua
├── lua/
│ └── user/
│ ├── options.lua
│ ├── keymaps.lua
│ └── plugins.luaCarregar módulos no init.lua
-- init.lua
require("user.options")
require("user.keymaps")
require("user.plugins")lua/user/options.lua
-- lua/user/options.lua
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.signcolumn = "yes"
vim.opt.expandtab = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.smartindent = true
vim.opt.hidden = trueTutorial passo-a-passo
-
Verificar local da config:
ls -la ~/.config/nvim/ 2>/dev/null || echo "Diretório não existe" -
Criar diretório:
mkdir -p ~/.config/nvim/lua/user -
Criar init.lua básico
-
Abrir Neovim e testar
-
Iterar e expandir
Você aprendeu
- Localização do init.lua
- Estrutura básica
- Configurar options
- Criar keymaps
- Organizar em módulos
Perguntas para reflexão
- O que Localização do init.lua resolve, e o que se perde sem isso?
- O que Estrutura básica resolve, e o que se perde sem isso?
- O que Configurar options resolve, e o que se perde sem isso?
- Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?
Artigos relacionados
Veja também
- Lua API — Referência da API Lua
- Instalação — Instalar Neovim primeiro
Referências
- Neovim Lua Guide — Guia oficial de Lua
- init.lua Tutorial — Guia da comunidade