nvim setup
Minha configuração para utilizar o NeoVim.
Depois de semanas com o blog criado e sem ter ideia do que escrever, me esbarro com mais uma "polêmica" na bolha dev no twitter:
Ao ler os comentários percebi que muita gente não tem ideia do que é possível fazer com o NVIM e como ele pode ser mais fácil do que você pensa. Então, resolvi escrever um post mostrando como eu configuro o meu NVIM.
Importante ressaltar que eu não sou um expert com 10 anos de experiência utilizando o Vim, mas comecei a usar há mais ou menos 1 ano e desde então tem sido a única "IDE" que utilizo.
lazyvim
Eu utilizo o LazyVim que é um configuração inicial para o NVIM que já vem com alguns plugins instalados e configurados para facilitar a nossa vida. O LazyVim é uma mão na roda para quem está começando e não sabe como configurar, ele resolve um problema gigantesco que é a configuração inicial do NVIM para novatos.
Para instalar o LazyVim recomendo a documentação oficial que é bem simples: Documentação LazyVim
plugins
Este post não é sobre como instalar/configurar plugins, mas sim mostrar quais plugins/configurações eu utilizo e para que eles servem. Todos os plugins contém uma documentação ensinando a como instalar na sua página do github.
Começando pelos amados temas (um dos motivos para eu utilizar o NVIM é a liberdade de costumização)
Atualmente eu alterno entre quatro temas:
Neste momento em que escrevo este Post, estou utilizando o tema tokyonight - storm com transparência.
Os demais plugins
Como são muitos plugins, vou listar todos e tentar dar uma breve explicação dos que considero mais importantes.
- neo-tree - Abre a árvore de diretórios do projeto (barra lateral esquerda com os arquivos do projeto).
- treesitter - Responsável por fazer o syntax highlight e outras coisas mais.
- cmp - Autocompletar
- telescope - Pesquisa de arquivos, buffers, etc.
- bufferline - Mostra os buffers abertos no topo do NVIM.
- lualine - Mostra informações do arquivo que está aberto na barra inferior (parecido com o que o tmux faz).
- navbuddy
- navic
- noice - Notificações no NVIM.
- mini-animate
- neoscroll
- spectre - Find and replace.
- lorem - Gera Lorem ipsum.
- flash - Busca e destaca palavras.
- refactoring - Refatoração de código.
- fidget
- breadcrumbs
- copilot - Github copilot.
- git - Integração com o git.
LSP
Para LSP eu utilizo as configurações pré-definidas que o Lazy disponibiliza através do LazyExtras
Configurações do NeoVim
Quando estamos começando a aprender é comum que a gente copie configurações realizadas por outras pessoas é normal e até aconselhável para que você consiga adaptar ao seu estilo, essas configurações que estou mostrando e irei mostrar tem grande influência de outras pessoas, como: Devaslife, ThePrimeagen, TypeCraft e bastante outros.
options.lua
Esse arquivo em específico foi copiado de um setup que achei em um post no x (falecido twitter) e adaptado para mim.
Para não ocupar uma página gigantesca de código irei deixar o link referente a esse arquivo: options.lua
keymaps.lua
As keymaps segue a mesma ideia, a começo fui copiando e pegando de várias pessoas os atalhos que elas usavam e fui adaptando para o meu gosto.
Para não ocupar uma página gigantesca de código irei deixar o link referente a esse arquivo: keymaps.lua
como instalar/configurar o LazyVim?
Caso você tenha curiosidade de como configurar o seu LazyVim existe alguns links que pode te ajudar a entender: