The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.7 KiB

+++ title = "Eu Refiz Minha Configuração do NeoVim" date = 2022-01-19

[taxonomies] tags = ["vim", "neovim", "configuração", "lsp", "treesitter"] +++

Por algum motivo obscuro, minha instalação do NeoVim não queria mais mostrar os alertas do LSP. Então eu decidi refazer minha configuração.

Acredite-me, eu não fiz porque "PQP, tudo quebrado". Eu acredito que eu poderia encontrar o problema com a forma como o LanguageClient estava instalado -- poderia até mesmo estar desatualizado, já que eu atualizei para o NeoVim 0.6 recentemente -- mas eu também geria instalar o TreeSitter para ter um suporte melhor à coloração do fonte. Estes dois fatores foram suficientes para tentar fazer uma configuração nova, e eu decidi que eu iria fazer a coisa toda, usando o arquivo de configuração em formato Lua.

Eu comecei com o post do Takuya Matsyama como referência -- eu não costumo usar gerenciadores de pacote (e provavelmente aí é que está o problema com o plugin desatualizado) e eu prefiro trabalhar com submódulos e coisas do tipo -- um formato que é bem próximo da forma como o Pathogen funciona.

Como eu queria mover algumas coisas da minha antiga configuração para a nova, eu precisei procurar como "traduzí-las". Foi aí que eu encontrei um post por Heiker Curiel, que lista as antigas opções de configuração e como elas aparecem numa configuração em Lua.

O resultado é que eu agora tenho uma instalação novinha do NeoVim, com todas as firulas:

O arquivo de configuração (e submódulos) está no meu repositório pessoal do Git.

O que ficou pra trás?

Enquanto eu estava migrandion, eu resolvi não adicionar algumas coisas nessa nova configuração:

  • Fuzzy find: Anteriormente eu estava usando o Skim para abrir arquivos com fuzzy find (digite algumas letras, veja uma lista de arquivos que tem essas letras). O plugin do Vim para o Skim apresentava alguns problemas (algumas vezes ignorando completamente o que era digitado na entrada, o que me faz pensar que o plugin teria crasheado de alguma forma). Mas, como eu só usava quando estava entediado, eu acabei deixando a opção de fuzzy find de fora; minha forma favorita de procurar arquivos é usando o atalho -, que eu botei para chamar o :Ex.
  • Snippets: UltiSnips não estava funcionando antes então eu resolvi não tentar de novo. Eu provavelmente vou procurar por alguma outra opção no futuro.
  • Configuração por tipo de arquivo: Anteriormente eu tinha um bocado de "autocommands" para definir configurações específicas para cada arquivo (por exemplo, arquivos Python devem usar espaços ao invés de tabulações, mas arquivos HTML devem usar tabulações ao invés de espaços). Eu deixei de fora porque, até onde eu vi, não há suporte na versão em Lua para isso (ainda é possível rodar comandos VimScript, mas eu tô sendo meio chato com relação à isso).
  • Remover espaços no final das linhas: A minha configuração anterior tinha um autocommand para executar uma expressão regular que removia todos os espaços no final das linhas. Como eu atualmente estou usando mais Rust e a configuração do LSP roda um autoformatter (no caso, o rustfmt) e isso já remove os espaços, eu decidi não aplicar essa opção de novo.