Qu'est-ce que Neovim? En quoi est-ce différent de Vim? Et pourquoi devrais-je m'en soucier?

118

J'ai entendu parler de Neovim ; en quoi est-ce différent de Vim? Tous les points de la page d'accueil ne sont que des modifications architecturales «sous le capot». En tant qu'utilisateur, quelle est la différence pour moi?

Martin Tournoij
la source
1
La fonctionnalité asynchrone est un épargnant de vie. Cela rend vim beaucoup plus fluide et beaucoup de plugins peuvent en tirer parti.
tommyip
Le tuteur est amélioré. Ça a l'air différent.
Fernando Rodriguez
"Un joli site web, c'est une chose que Neovim a bien faite." - Bram Moolenaar de l'interview
michael
Certains des choix de base semblent étranges et sans rapport avec les objectifs principaux ... Cela ressemble beaucoup à quelqu'un qui n'aime pas l'ancien code et qui veut le faire "correctement". Je conviens que l'ancien code est moche. Mais il faudra déployer beaucoup d'efforts pour effectuer une nouvelle mise en œuvre. Cela ressemble beaucoup à ce qui est arrivé à Elvis: une réécriture l’améliorerait beaucoup, mais cela a pris si longtemps, pendant lequel Vim a ajouté plus de fonctionnalités, qu’au final, il n’y avait pas beaucoup d’utilisateurs d’Elvis. Et le Elvis réécrit peut avoir un bon code, mais les utilisateurs ne le remarquent pas. binpress.com/vim-creator-bram-moolenaar-interview
NeilG
J'espère que les belles choses que NeoVim propose peuvent être rajoutées à Vim. Je veux dire, qui ne veut pas un meilleur support de plugin, une meilleure interface graphique et une meilleure intégration? La grande question est de savoir comment faire cela et qui va le mettre en œuvre correctement. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Réponses:

81

Comme le décrit la page d'accueil de neovim, l'objectif de neovim est d'ouvrir la voie à un projet open source de meilleure qualité et plus ouvertement conduit par la communauté.

Les modifications architecturales apporteront non seulement plus de stabilité et d’amélioration des performances à vim, mais rendront le code beaucoup plus facile à gérer et réduiront légèrement la barrière d’entrée pour tous ceux qui souhaitent contribuer.

L'un des changements clés inclut également la fonctionnalité principale d'accès aux tâches / tâches exécutées de manière asynchrone dans vim, qui est l'une des fonctionnalités les plus demandées de vim depuis longtemps. Cela peut aider à améliorer encore les performances de vim, en particulier parce que vim n'aura pas à se bloquer lorsqu'un travail en arrière-plan est en train de faire quelque chose.

En tant qu'utilisateur vim, peu de choses pourraient changer si ce n'est que neovim devrait devenir un logiciel beaucoup plus rapide (résolution de problèmes, ajout de fonctionnalités) par rapport à stock vim et qu'il aura de bien meilleures performances à long terme.

Dhruva Sagar
la source
24
+1 Permettez-moi d'ajouter que le fait qu'il y ait très peu de changements visibles par l'utilisateur est une bonne chose.
Carlosdc
27
Cela se lit comme un remaniement d'un communiqué de presse plutôt que comme un résumé des raisons pour lesquelles quelqu'un devrait s'en soucier. Par exemple, j'utilise vim depuis deux décennies et je ne me souviens plus de la dernière fois où le programme principal m'a montré une sorte d'instabilité, alors pourquoi devrais-je me soucier de «plus stable»?
Caleb
2
Les tâches asynchrones ne devraient plus bloquer l'interface de vim pour effectuer des tâches en arrière-plan.
Alxndr
3
Y a-t-il des preuves au cours des deux années que Neovim est actif, que sa croissance est plus rapide et que ses performances sont meilleures?
Sparhawk
8
Il n’est plus vrai que Vim ne prend pas en charge l’exécution de tâches en arrière-plan de manière asynchrone.
Rich
36

Je m'adresse spécifiquement à:

Pourquoi devrais-je m'en soucier? En tant qu'utilisateur, quelle est la différence pour moi?

Ce qui me passionne le plus en tant qu’utilisateur Vim, ce sont les nouveaux types de plugins, d’intégrations et d’interfaces qui seront rendus possibles par les changements opérés sous le capot de Neovim.

Avec le temps, vous verrez des plugins et des programmes vraiment impressionnants qui fonctionnent avec Neovim mais pas avec Vim. Il y a une liste de plugins spécifiques à Neovim : ici dans le github de neovim .

Je ne sais pas à quel point il est à jour, mais je suis impatient de le voir grandir à mesure que nous aurons plus d'outils pour rendre le codage plus efficace et plus agréable.

Jim Garvin
la source
15

Mon ajout préféré que Neovim apporte à la table est le mode terminal. Vous pouvez maintenant diviser votre fenêtre Neovim et faire fonctionner un émulateur de terminal d’un côté et éditer un fichier de l’autre! Je suppose que vous pourriez même exécuter Neovim à l'intérieur de lui-même maintenant, juste au cas où vous voudriez vraiment le faire.

Avoir des plugins asynchrones va également être extrêmement utile bientôt; Cela signifie que nous sommes enfin en mesure d’avoir une très bonne complétion de code, après seulement 40 ans d’attente!

Neovim supporte également mieux la souris que Vim.

Johnathan Andersen
la source
2
Ils devraient l'appeler Metavim: P
Tumbler41
Je ne connais pas de changements spécifiques à la souris chez Neovim, qui le rendraient meilleur que Vim.
Jamessan
Ce qui me vient à l’esprit à l’heure actuelle est que vous pouvez participer à une session ssh en mode terminal, ouvrir Neovim et cliquer sur un emplacement pour le modifier. Je ne pense pas que Vim puisse le faire, bien qu'il soit possible que je ne dispose pas encore d'un assez gros fichier .vimrc! Je suppose que cela pourrait être mieux qualifié de support ssh que de souris.
Johnathan Andersen
Il est tout à fait possible d’utiliser la souris dans Vim sur une connexion SSH (je viens de l’essayer), mais si vous ne parvenez pas à la faire fonctionner dans Vim et que cela fonctionne par défaut dans NeoVim, je suppose que c’est un point de donnée en faveur de votre déclaration le support dans NeoVim est meilleur;).
Rich
1
J'utilise la souris dans Vim sur SSH de Putty sous Windows avec une seule set mouse=aligne dans vimrc depuis un bon moment
Thunderbeef
5

Deux points qui ne sont pas encore abordés par d'autres réponses et pourraient être intéressants pour un utilisateur, même ou surtout pour les nouveaux utilisateurs sans (ou avec un petit) fichier de configuration:

  1. NeoVim n'essaie pas d'être compatible Vi par défaut. Ils ont modifié de nombreuses valeurs par défaut pour les paramètres et discutent activement de ces modifications: # 2676 , # 6289
  2. Il peut être intégré à un autre processus (vous vous souvenez de l' intégration de Netbeans ?) Et possède de nombreuses interfaces graphiques différentes de sorte que MacVim n'est plus l'interface graphique la plus sophistiquée que vous puissiez trouver pour vous $EDITOR.
Lucas
la source