Quelle est la relation entre vi, nvi et vim?

19

Sur certains Unix, j'ai parfois trouvé une commande nommée nvi. C'était un éditeur de type vi, sans beaucoup de ses fonctionnalités. C'était peut-être une fourchette de l'ancien vi?

Quoi qu'il en soit, quelles viversions sont un fork des autres et quels sont les développements indépendants? Ont-ils un "arbre généalogique", semblable aux Unix?

peterh - Réintégrer Monica
la source

Réponses:

24

De nvi(1):

HISTORY
    The ex editor first appeared in 1BSD.  The nex/nvi replacements for the
    ex/vi editor first appeared in 4.4BSD.

Quelques antécédents, de mémoire, donc j'espère que les détails sont corrects:

Au début, UNIX était gratuit. Tout le monde pouvait demander une copie à Ken, et il vous enverrait une cassette avec la source (prétendument avec le texte "love, Ken" sur eux). Les termes "logiciel libre" ou "open source" n'existaient pas encore, mais à toutes fins utiles c'était "open source".

La raison en est que UNIX a été développé dans les laboratoires Bell. Les laboratoires Bell font partie d'AT & T qui, à l'époque, détenait un monopole effectif sur la téléphonie. Dans le cadre d'un accord avec le gouvernement américain, il a été convenu qu'AT & T n'était pas autorisé à entrer dans d'autres domaines d'activité (tels que les ordinateurs).

Quelque part en cours de route, cela a changé et UNIX est devenu un logiciel propriétaire. En conséquence, BSD (qui découle d'UNIX) est également devenu un logiciel propriétaire. via été écrit dans le cadre de BSD, il est donc également devenu propriétaire.

C'est pourquoi, à la fin des années 80 et au début des années 90, certains "clones vi" sont apparus, tels que stevie(plus tard la base de vim) et nvi.

Au début des années 90, les gens voulaient un système BSD gratuit, donc a nviété créé pour 4.4BSD-lite (sens lite, non encombré par le code AT&T), donc a nviété créé comme un remplacement "compatible bug-pour-bug" pour les encombrés vi. Il possède toutes les vifonctionnalités, mais pas les fonctionnalités plus avancées que vous pourriez trouver vim.

FreeBSD et NetBSD descendent tous deux de 4.4BSD-Lite (et OpenBSD et DragonflyBSD descendent de NetBSD et FreeBSD, respectivement), c'est pourquoi ils sont livrés avec nviinstallés par défaut.

Contrairement à Linux, les systèmes BSD ont un seul système "de base" dont il nvifait partie, il existe donc vraiment 4+ versions de nvi. Mais en réalité, les changements sont faibles à inexistants, les projets BSD échangent du code, donc la plupart des corrections de bugs et des améliorations sont partagées (mais peut-être pas toutes?). Je pense que FreeBSD a ajouté le support multi-octets il y a quelques années, par exemple.

L' vimhistoire est plus ennuyeuse: Bram courait sur Amiga, voulait courir vi, mais n'a pas pu trouver vid'amiga. Il a donc pris le steviecode, l'a porté sur Amiga et a continué à l'améliorer davantage. C'est pourquoi vous pouvez toujours trouver de nombreuses notes liées à Amiga dans la documentation, même aujourd'hui.

En attendant, UNIX est à nouveau "gratuit" et vous pouvez exécuter l' originalvi .

Martin Tournoij
la source
1
Wikipedia affirme que nvi est basé sur elvis qui a été livré avec le 386BSD original, et était un effort pour faire une version plus purement compatible vi. Est-ce correct?
Random832
2

Les racines des arbres généalogiques des clones vi semblent être:

  • 1977: "Traditional vi", la source originale de Bill Joy, porté et libre d'utilisation depuis 2002.
  • 1985: microEmacs, à partir duquel le vi-like "vile" a été développé
  • 1987: stevie, à partir de laquelle vim et xvi ont été développés
  • 1990: elvis, à partir duquel nvi a été développé
  • 2000: le "minuscule vi" de busybox
martinwguy
la source