Uma configuração do Neovim limpa, moderna e altamente otimizada, baseada no framework LazyVim com atalhos de produtividade e integrações inteligentes personalizadas.
~/.config/nvim/
├── init.lua # Ponto de entrada (carrega lua/config/lazy.lua)
├── lazyvim.json # Estado dos extras ativados via :LazyExtras
├── lazy-lock.json # Lockfile de controle de versão dos plugins
├── LICENSE # Licença
├── README.md # Este README
├── stylua.toml # Formatação do StyLua
└── lua/
├── config/
│ ├── autocmds.lua # Comandos automáticos (sincronização de arquivos externos)
│ ├── keymaps.lua # Atalhos globais personalizados (Ctrl+S, Ctrl+A, Alt+Setas, Terminal cwd...)
│ ├── lazy.lua # Bootstrapping do lazy.nvim e plugins do LazyVim
│ └── options.lua # Configurações (shell do Windows, Neovide, desligamento de relativo e root do projeto)
└── plugins/
├── blink.lua # Autocompletar ultrarrápido com blink.cmp (preset default)
├── colorscheme.lua # Tema Gruvbox personalizado (com fundo transparente)
├── diagnostics.lua # Diagnósticos inline modernos (tiny-inline-diagnostic.nvim)
├── multicursor.lua # Suporte a múltiplos cursores com vim-visual-multi
└── surround.lua # Manipulação de delimitadores com mini.surround (mapeamentos gz)
- Lazy Loading: Plugins carregados assincronamente sob demanda, mantendo o startup instantâneo.
- Controle e Estabilidade: Lockfile (
lazy-lock.json) para congelar versões e evitar quebras por atualizações de terceiros. - LazyVim Extras: Ative suporte a linguagens ou ferramentas visuais instantaneamente com
:LazyExtras.
- blink.cmp (
lua/plugins/blink.lua): Configurado com o presetdefault.- Exibe documentação automaticamente após 250ms.
- Use
<C-x>para abrir as sugestões / alternar a exibição da documentação. - Use
<C-y>ou<CR>(Enter) para aceitar a primeira sugestão ou a sugestão selecionada.
- Autoreload automático: O Neovim detecta e recarrega arquivos que foram editados externamente (ex: pelo Git ou editores externos) assim que você foca o editor ou entra em um buffer.
- Múltiplos Cursores: Plugin
vim-visual-multiativado emlua/plugins/multicursor.lua. - Surround: Configuração personalizada do
mini.surroundcom prefixogzemlua/plugins/surround.lua(ex:gzapara adicionar,gzdpara deletar,gzrpara substituir delimitadores).
- Terminal no CWD: Os atalhos do terminal (
<C-/>,<c-_>e<leader>ft) foram ajustados para abrir o terminal no diretório atual de trabalho (getcwd()), ideal para monorepos. O terminal padrão na raiz do projeto pode ser acessado via<leader>fT. - Sem Formatação ao Salvar: O recurso de auto-format foi desligado por padrão (
vim.g.autoformat = false). Formate manualmente com o atalho<leader>cf. - Sem Números Relativos: Desativado por padrão para maior clareza visual (
vim.opt.relativenumber = false).
| Atalho | Modo | Ação |
|---|---|---|
Ctrl + A |
Normal / Visual | Seleciona todo o conteúdo do arquivo |
Ctrl + S |
Normal / Insert / Visual | Salva o arquivo sem rodar autocmds/auto-format (salvamento rápido) |
<leader>cf |
Normal | Formata o buffer atual manualmente |
Ctrl + C |
Visual | Copia a seleção para a área de transferência do sistema |
Ctrl + V |
Insert / Visual | Cola da área de transferência do sistema |
Alt + ⬆️/⬇️/⬅️/➡️ |
Todos | Redimensiona painéis de janelas |
<C-/> ou <leader>ft |
Normal | Abre terminal no CWD (diretório atual) |
<leader>fT |
Normal | Abre terminal na Raiz do Projeto |
gza / gzd / gzr |
Normal / Visual | Adiciona / Deleta / Substitui delimitadores (surround) |
- Uma Nerd Font instalada (ex: JetBrainsMono Nerd Font) para renderizar os ícones corretamente.
Rode o comando abaixo para clonar a configuração e instalar todas as dependências (Neovim, ripgrep, fd, lazygit, Node.js e compiler):
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/henriwasd/nvim/master/setup.ps1 | iex"Rode o comando abaixo no terminal para instalar a configuração e todas as dependências:
curl -fsSL https://raw.githubusercontent.com/henriwasd/nvim/master/setup.sh | bash-
Backup da configuração antiga (se aplicável):
Rename-Item -Path $env:LOCALAPPDATA\nvim -NewName nvim.backup
-
Clonar o repositório na pasta correta:
git clone https://github.com/henriwasd/nvim.git $env:LOCALAPPDATA\nvim
-
Instalar dependências adicionais via terminal:
- ripgrep (busca de texto):
winget install BurntSushi.ripgrep.MSVC - fd (busca de arquivos):
winget install sharkdp.fd - lazygit (interface Git):
winget install JesseDuffield.lazygit - Node.js (para LSPs):
winget install OpenJS.NodeJS.LTS - Zig (compilador para Treesitter):
winget install zig.zig
- ripgrep (busca de texto):
-
Backup da configuração antiga (se aplicável):
mv ~/.config/nvim ~/.config/nvim.backup
-
Clonar o repositório na pasta correta:
git clone https://github.com/henriwasd/nvim.git ~/.config/nvim -
Instalar dependências usando seu gerenciador de pacotes:
- Debian/Ubuntu:
sudo apt update && sudo apt install -y ripgrep fd-find nodejs npm build-essential - Arch Linux:
sudo pacman -S ripgrep fd nodejs npm gcc lazygit
- Fedora:
sudo dnf install -y ripgrep fd-find nodejs npm gcc-c++ make
- Debian/Ubuntu:
-
Iniciar o Neovim:
nvim
Para remover todas as ferramentas instaladas pelo script de setup e limpar as pastas de dados e cache do Neovim:
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/henriwasd/nvim/master/uninstall.ps1 | iex"curl -fsSL https://raw.githubusercontent.com/henriwasd/nvim/master/uninstall.sh | bash