O que é Neovim e como você pode começar a usá-lo?
Principais conclusões
- Embora tenha uma reputação assustadora, o Neovim é um editor de texto poderoso que vale a pena aprender.
- Neovim é um substituto imediato para o Vim, com uma arquitetura reformulada e suporte para plugins escritos em Lua.
- Os plug-ins podem adicionar novas categorias de recursos ao Neovim.
Quer você seja um programador experiente, esteja começando a programar ou simplesmente queira editar alguns arquivos, um bom editor de texto é uma ferramenta essencial. Embora tenha uma reputação assustadora e, sim, uma pequena curva de aprendizado, vale a pena aprender o Neovim, talvez até mais do que seus antecessores célebres.
O que é NeoVim?
Para explicar o que é o Neovim, precisamos dar um passo atrás e explicar o que o levou a isso. Na história do Unix e dos sistemas operacionais semelhantes ao Unix (incluindo Linux), menos softwares são mais conhecidos do que o vi. Este editor de texto remonta a 1976 e você quase pode garantir que este é o editor de texto padrão que você encontrará em qualquer sistema Linux.
Entre outros recursos importantes, o vi faz uso da edição modal. Isso significa, em poucas palavras, que você opera no modo de inserção, que é onde você “insere” texto, ou no modo normal, onde em vez de inserir texto, as teclas executam diversas ações relacionadas à edição. Melhor ainda, você pode encadear esses comandos em uma espécie de linguagem para permitir uma edição poderosa com apenas algumas teclas.
Por mais poderoso que o vi fosse, sua natureza básica não é a mais adequada para projetos maiores ou mais envolventes. O Vim não foi o primeiro clone do vi, mas esta versão, que significa vi Melhorado e foi escrita por Bram Moolenaar e originalmente lançada para o Commodore Amiga em 1991. O Vim adicionou muitos recursos que consideramos garantidos em um editor de texto atualmente, como realce de sintaxe, preenchimento automático e suporte a Unicode.
O Neovim é, em muitos aspectos, como o Vim era para o vi. O Neovim funciona como um substituto imediato para o Vim, a ponto de você poder continuar usando seu arquivo .vimrc antigo, se desejar. Dito isso, o Neovim também suporta escrever suas configurações em scripts Lua, ao mesmo tempo que oferece muito mais poder, especialmente se você já for um programador.
Existe uma comunidade ativa de desenvolvedores em torno do Vim e do Neovim, e os projetos não parecem estar em competição ativa. Embora o Neovim tenda a obter novos recursos primeiro, e alguns recursos mais experimentais possam nunca chegar ao editor mais experiente, ambos parecem bastante saudáveis.
Principais diferenças entre Vim e Neovim
Para começar, existem mais semelhanças entre o Vim e o Neovim do que diferenças. Apesar de ser usuário do Vim/Neovim há anos, mantenho uma cópia do Practical Vim de Drew Neil em minha mesa. Apesar da nítida falta de um “neo” no título, ainda não li uma dica nesse livro que não fosse aplicável no Neovim.
Para os desenvolvedores, o Neovim pretende ser mais simples de manter e estender, com interfaces de usuário mais avançadas possíveis. Isso significa que, para os usuários, obteremos novos recursos sofisticados com mais rapidez, enquanto a base de código simplificada deve facilitar a manutenção para garantir que continuaremos usando esses recursos.
Na prática, o principal diferencial entre Neovim e Vim é, como já sugerido acima, o ecossistema de plugins. Lua não é apenas uma linguagem mais conhecida que o Vimscript, mas, em geral, a arquitetura de plugins que o Neovim usa dá aos plugins mais controle sobre o ambiente. Isso significa que os plug-ins podem transformar o Neovim de maneiras totalmente novas.
Além da opção de usar Lua para seu arquivo de configuração, o Neovim também usa uma estrutura de diretórios diferente. Enquanto o Vim tende a procurar por um .vimrc
em seu diretório inicial, o Neovim segue a especificação do diretório base XDG. Se você estiver usando um Mac, isso não fará sentido para você, mas para usuários de Linux, isso significa que sua configuração do Neovim fica em $HOME/.config/nvim
da mesma maneira como muitos outros programas.
Noções básicas do Neovim
O Neovim não é tão difundido ou comum quanto o Vim (pelo menos ainda não), mas ainda está disponível na maioria das principais distribuições Linux.
Instalando o Neovim
Em sistemas Ubuntu ou Debian, execute:
sudo apt install neovim
No Fedora, execute o seguinte:
sudo dnf install neovim
Para sistemas baseados em Arch, execute:
sudo pacman -S neovim
Para obter o desempenho ideal, depois que o Neovim estiver instalado, execute o aplicativo com o comando nvim
, pressione Escape para ter certeza de que está no modo Normal e digite o seguinte:
:checkhealth
Se houver algum programa adicional em que o Neovim dependa e que não esteja instalado, este comando irá informá-lo. Caso você tenha problemas no futuro, é útil saber disso.
Aprendendo o básico
O Vim e, por extensão, o Neovim, têm a reputação de ser um software difícil de aprender. Eu diria que isso é em grande parte falso. Sim, acostumar-se à edição modal demora um pouco, mas, além disso, aprender os atalhos de teclado não é mais complicado do que aprender atalhos de teclado em qualquer outro aplicativo.
Felizmente, tanto o Vim quanto o Neovim vêm com um tutor integrado para mostrar o que fazer. Há muito o que aprender sobre o Neovim para abordar no escopo deste artigo, mas o tutorial integrado é um ótimo lugar para começar.
Para começar a aprender, execute nvim
, presumindo que ainda não o fez, e execute o seguinte:
:Tutor
E, ei, pelo menos você aprenderá como sair do programa.
Configurando o Neovim
Ao contrário do Vim padrão, que usa um único arquivo .vimrc
monolítico, o Neovim pode usar uma abordagem mais modular, supondo que você esteja usando arquivos Lua. Isso não tem muito impacto no desempenho real do editor, mas ajuda a organizar sua configuração se você estiver usando muitas personalizações e plug-ins.
Claro, se você é novo no Neovim, provavelmente ainda não terá muitas personalizações para adicionar. Dito isso, se você estiver interessado em escrever código Python, você pode querer instalar alguns plug-ins que simplificam a escrita de código Python. A arquitetura modular do Neovim facilita isolá-los em seus próprios arquivos de configuração em uma subpasta, portanto, se você decidir que não gosta de determinado arquivo, é fácil removê-lo de sua configuração.
Novamente, criar a configuração perfeita do Neovim está além do escopo deste artigo. Se você for como a maioria das pessoas, provavelmente montará uma configuração retirando pedaços de vários dotfiles que você encontra no GitHub. Felizmente, existe uma opção mais fácil.
Personalização do Neovim facilitada
Tudo começou com pessoas compartilhando suas próprias configurações, mas ao longo dos anos, vários editores viram “distribuições” aparecerem, não muito diferentes das distribuições Linux. Eles também existem para o Neovim, arquivos de configuração efetivamente pré-configurados que você pode colocar em seu diretório inicial, testar e ajustar de acordo com sua preferência.
Duas distribuições populares do Neovim são LazyVim e NvChad. Se você olhar as capturas de tela de qualquer uma dessas distribuições, ficará surpreso ao saber que ainda está olhando para o Neovim. Com ícones, uma barra lateral e guias visuais na parte superior da tela, você quase esperaria estar vendo uma captura de tela do VS Code.
O LazyVim pretende ser o mais completo pronto para uso, a tal ponto que, se você já conhece o Neovim, pode parecer muito diferente. Dito isso, a distribuição é ótima para iniciantes, com um pacote integrado que fornece dicas úteis sobre o que pressionar uma determinada tecla fará quando você começar a inserir uma combinação de teclas.
O NvChad, por outro lado, é um pouco menos completo desde o início, mas ainda oferece uma experiência fortemente modificada além do Neovim básico. Se você quer algo que pareça um editor moderno, mas quer mergulhar um pouco mais fundo nas águas do Neovim na primeira tentativa, experimente este.
Mesmo se você optar por começar com o editor básico, vale a pena aprender Neovim e Vim, mesmo se você passar para outros editores em pouco tempo. Você nunca sabe quando saber uma ou duas coisas sobre um editor de texto da década de 1970 pode ser útil.