Omarchy 2.0 - LazyVim - LazyExtras

Continuando meus posts de dicas sobre Omarchy resolvi postar sobre LazyVim que já vem pré-instalado.

LazyVim

Mesmo se não usa Omarchy, recomendo instalar LazyVim, só fazer isso:

# required
mv ~/.config/nvim{,.bak}

# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

git clone https://github.com/LazyVim/starter ~/.config/nvim

rm -rf ~/.config/nvim/.git

nvim

Pronto, é só isso. NeoVim, pra quem não sabe, é um fork mais moderno do antigo Vim (por isso o comando é nvim, reservando vim pro antigo). Ele troca o antigo VimScripts por scripts em Lua e tem várias otimizações e funcionalidades de qualidade de vida melhores. Hoje em dia, não tem porque usar o Vim antigo mais.

Usando Lua dá pra configurar o Nvim como quiser. Mas dá muito trabalho configurar tudo do zero. É um bom exercício, mas sendo prático, não compensa pro dia a dia. É melhor instalar um setup pré-configurado como os antigos LunarVim que eu usava antes e até recomendei em alguns videos de Linux do meu canal, ou o AstroNvim ou o LazyVim que atualmente é meu favorito. Qualquer um deles é um bom começo e vai ser preferência pessoal qual vai escolher.

Cada plugin que eles instalam tem diversas funcionalidades e combinações de teclas (hotkeys) próprias que precisa ler na documentação pra saber o que faz o que. Recomendo ir na seção plugins do site oficial e ler um por um. Tem muita coisa que você nem espera e todos são muito úteis.

LazyVim sozinho já ajuda bastante porque ele abre pop-ups documentando algumas das hotkeys. Por exemplo, o que se chama de comando Leader em LazyVim é a “barra de espaço”. Quando apertar, vai aparecer esse menu de contexto:

Leader context menu

A partir daqui, se digitar, digamos “b”, vai aparece outro menu de contexto:

Buffer context menu

E se digitar “b” de novo, ele vai trocar pro próximo arquivo já aberto no Buffer. Buffer é o nome em Vim onde ficam os arquivos já abertos. Deletar do Buffer é o equivalente a “fechar o arquivo”.

Da próxima vez, não precisa olhar os menus, só digitar rápido de uma só vez: “Espaço+b+b”. E é assim que você vai decorando os comandos que mais usa.

Alguns comandos que vale a pena já saber são: Espaço+Espaço" (duas vezes), e vai abrir o menu que abre arquivos. digite algumas letras do nome do arquivo e vai filtrando dinamicamente:

find files

Ou então “Espaço+e” pra abrir o Explorer NeoTree. Digite “?” pra abrir um popup com os comandos que pode usar pra criar novos sub-diretórios ou arquivos no subdiretório:

NeoTree

Quando aprender os demais comandos e plugins, vai notar que nem precisa abrir NeoTree, ele é mais pra quando quiser explorar visualmente mesmo. Mas pro dia a dia comando como “:e” devem ser suficiente. Aliás, “:” (dois pontos) é o comando pra executar funções do NeoVim. Por exemplo “:q” é quit, ou “:w” é write e “:wq” é write e quit ao mesmo tempo.

Se quiser aprender mais a fundo sobre NeoVim, recomendo o canal do YouTube do camarada Eustáquio Rangel que é veterano de Linux, Rails e Vim e ele ensina NeoVim do zero (sem LazyVim).

TaQ

Agora, digamos que já aprendeu o básico de NeoVim e LazyVim, e agora quer começar a mexer nos seus projetos de PHP, Java, C#, Ruby, Python ou o que for. Vai notar que o LazyVim não tem nenhuma funcionalidade pra nenhuma delas.

O que fazer agora? Instalar VS Code?? NÃO!!

Isso porque você não executou :LazyExtras.

LazyExtras command

Digite exatamente assim e veja isto:

Enabled Plugins

Essa janela parece complicada mas é só uma lista de plugins dividida em seções. No começo aparecem os plugins já instalados e habilitados. Caso não queira algum deles, basta usar as setas pra descer o cursor até uma delas e apertar “x” pra desmarcar. Mas deixe essa seção como está. Vamos descer até a seção de “Languages”:

Languages section

É nesta seção que estão todas as linguagens que você pode habilitar o suporte. Basta descer com as setas e ir marcando com “x” quais quer instalar. E tem de tudo, desde Angular, Vue, Erlang, Elixir, Rust, Zig, Haskell e muito mais.

Ao lado de cada linguagem tem o grupo de plugins individuais que ele vai instalar. Pra saber o que cada uma faz, digite o nome delas no Google e ache a página com a documentação, onde vai ter hotkeys e configurações extras que pode fazer.

Com isso vai ganhar coisas como Linters, syntax highlighting, LSP, snippets e muito mais.

E se quiser instalar plugins a mais que não tem listado, dá pra adicionar manualmente. Leia a seção de Adding Plugins na documentação.

Linter

LazyVim + LazyExtras é 90% de tudo que precisa pro seu dia a dia de desenvolvimento de software. É mais leve e mais rápido que um VS Code, usando muito menos memória e vai ser muito melhor especialmente em máquinas mais antigas. Não tenha preguiça de aprender Vim, um programador de verdade não deveria ficar num VS Code só porque tem preguiça de aprender hotkeys extras.