O que é o Neovim? Qual é a diferença do Vim? E por que eu deveria me importar?

118

Eu tenho ouvido falar sobre o Neovim ; como isso difere do Vim? Todos os pontos na página inicial são apenas mudanças arquitetônicas 'sob o capô'. Como usuário, qual é a diferença para mim?

Martin Tournoij
fonte
1
O recurso assíncrono é um salva-vidas. Isso torna o vim muito mais fluido e muitos plugins podem tirar proveito dele.
Tommyip 19/05/19
O tutor foi aprimorado. Parece diferente.
Fernando Rodriguez
"Um site bonito, é uma coisa que Neovim fez de certo." - Bram Moolenaar da entrevista
michael
Algumas das opções básicas parecem estranhas e irrelevantes para os objetivos principais ... Muitas delas parecem com alguém que não gosta do código antigo e quer fazê-lo "corretamente". Posso concordar que o código antigo é feio. Mas será necessário muito esforço para fazer uma nova implementação. É muito parecido com o que aconteceu com Elvis: uma reescrita tornaria muito melhor, mas demorou tanto tempo, durante o qual o Vim adicionou mais recursos, que eventualmente não há tantos usuários de Elvis. E o Elvis reescrito pode ter um código legal, mas os usuários não percebem isso. binpress.com/vim-creator-bram-moolenaar-interview
NeilG 01/07
Espero que as coisas boas que o NeoVim venha com possam ser adicionadas ao Vim. Quero dizer, quem não quer melhor suporte a plugins, uma GUI e incorporação melhores? A grande questão é como fazer isso e quem vai implementá-lo corretamente. binpress.com/vim-creator-bram-moolenaar-interview
NeilG 01/07

Respostas:

81

Assim como a página inicial do neovim descreve, o objetivo do neovim é preparar o caminho para um projeto de código aberto melhor e mais aberto pela comunidade.

As alterações arquiteturais não apenas trarão mais estabilidade e melhorarão o desempenho ao vim, mas também tornarão o código muito mais sustentável e reduzirão a barreira de entrada para quem estiver interessado em contribuir.

Uma das principais alterações também inclui o recurso principal de acesso à execução de tarefas / tarefas de forma assíncrona no vim, que tem sido um dos recursos mais solicitados do vim desde muito tempo. Isso pode ajudar a melhorar ainda mais o desempenho do vim, especialmente porque o vim não precisará ser bloqueado enquanto um trabalho em segundo plano estiver realizando alguma coisa.

Como usuário do vim, não há muita mudança, além do fato de o neovim crescer como um software muito mais rápido (corrigir problemas, adicionar recursos) em comparação com o stock vim e ter um desempenho muito melhor a longo prazo.

Dhruva Sagar
fonte
24
+1. Permitam-me também acrescentar que o fato de haver muito poucas alterações visíveis ao usuário é uma coisa boa.
Carlosdc
27
Isso parece uma reformulação de um press release em vez de um resumo real de por que alguém deveria se importar. Por exemplo, uso o vim há duas décadas e não consigo me lembrar da última vez em que o programa principal me mostrou algum tipo de instabilidade. Por que devo me preocupar com "mais estável"?
Caleb
2
Tarefas assíncronas não devem significar mais bloqueio da interface do vim para realizar trabalhos que possam estar em segundo plano.
Alxndr
3
Há alguma evidência nos dois anos de que o neovim está ativo, que está crescendo mais rápido e tem melhor desempenho?
Sparhawk
8
Não é mais verdade que o Vim não tem suporte para executar tarefas em segundo plano de forma assíncrona.
Rico
36

Estou abordando especificamente:

Por que eu deveria me importar? Como usuário, qual é a diferença para mim?

O que mais me empolga como usuário do Vim são os novos tipos de plugins, integrações e interfaces que serão ativados pelas alterações no âmbito do Neovim.

Com o passar do tempo, você começará a ver plugins e programas realmente impressionantes que funcionam com o Neovim, mas não com o Vim. Há uma lista de plugins específicos do Neovim: aqui no github do neovim .

Não sei como está atualizado, mas estou animado para vê-lo crescer à medida que obtemos mais ferramentas para tornar a codificação mais eficiente e agradável.

Jim Garvin
fonte
15

Minha adição favorita que Neovim traz para a mesa é o modo terminal. Agora você pode dividir sua janela do Neovim e ter um emulador de terminal rodando de um lado e editando um arquivo do outro lado! Suponho que você possa executar o Neovim dentro de si agora, apenas no caso de realmente querer fazer isso.

Ter plug-ins assíncronos também será extremamente útil em breve; isso significa que finalmente podemos ter uma conclusão de código muito boa, depois de apenas 40 anos de espera!

O Neovim também possui melhor suporte de mouse que o Vim.

Johnathan Andersen
fonte
2
Eles devem chamá-lo de Metavim: P
Tumbler41
Não conheço nenhuma alteração específica do mouse que o Neovim tenha, o que o tornaria melhor que o Vim.
jamessan
O que vem à mente agora é que você pode estar em uma sessão ssh terminal, abrir o Neovim e clicar em um local para editá-lo. Eu não acho que o Vim possa fazer isso, embora seja possível que eu ainda não tenha um .vimrc grande o suficiente! Eu acho que isso pode ser melhor denominado como suporte ssh do que o suporte ao mouse.
Johnathan Andersen
Definitivamente, é possível usar o mouse no Vim por uma conexão SSH (eu apenas tentei), mas se você não conseguiu fazê-lo funcionar no Vim e funciona por padrão no NeoVim, acho que é um ponto de dados em favor da sua declaração de que o o suporte no NeoVim é melhor;).
Rich
1
Estou usando o mouse no Vim regular ao longo SSH de Putty em execução no Windows com uma única set mouse=alinha no vimrc por um bom tempo
Thunderbeef
5

Dois pontos que ainda não foram abordados por outras respostas e podem ser interessantes para um usuário, mesmo ou especialmente novos usuários sem um (ou com um pequeno) arquivo de configuração:

  1. NeoVim que não tentar ser Vi compatível por padrão. Eles alteraram muitos valores padrão para as configurações e estão discutindo ativamente essas alterações: # 2676 , # 6289
  2. Ele pode ser incorporado em outro processo (lembra-se da integração do netbeans ?) E possui muitas GUIs diferentes, portanto o MacVim não é mais a GUI mais extravagante que você pode encontrar para a sua $EDITOR.
Lucas
fonte