Какая связь между vi, nvi и vim?

19

В некоторых UNIX-системах иногда я обнаруживал команду с именем nvi. Это был редактор в стиле vi, без особой функциональности. Может быть, это была вилка старого vi?

В любом случае, какие viверсии являются ответвлением от других, а какие являются независимыми разработками? Есть ли у них «родословная», похожая на юниксы?

Петер - Восстановить Монику
источник

Ответы:

24

От nvi(1):

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

Некоторый фон, из памяти, так что я надеюсь, что получил правильные детали:

В начале UNIX был бесплатным. Каждый может запросить копию у Кена, и он отправит вам ленту с источником (предположительно, с надписью «любовь, Кен»). Термины «свободное программное обеспечение» или «с открытым исходным кодом» еще не существовали, но, по сути, это был «открытый исходный код».

Причина этого заключалась в том, что UNIX был разработан в лабораториях Bell. Bell labs является частью AT & T, которая в то время имела эффективную монополию на телефонию. В рамках соглашения с правительством США было решено, что AT & T не разрешается входить в другие сферы бизнеса (например, в компьютеры).

Где-то на этом пути это изменилось, и UNIX стал проприетарным программным обеспечением. В результате BSD (который происходит от UNIX) также стал проприетарным программным обеспечением. viбыл написан как часть BSD, поэтому он также стал собственностью.

Вот почему в конце 80-х - начале 90-х появились некоторые «клоны vi», такие как stevie(позже основа для vim) и nvi.

В начале 90-х люди хотели бесплатную BSD-систему, поэтому она nviбыла создана для 4.4BSD-lite (облегченное значение, не обремененное кодом AT & T), поэтому nviбыла создана как замена «совместимая ошибка» для обремененной vi. Он имеет все viфункции, но не более продвинутые функции, которые вы можете найти в vim.

FreeBSD и NetBSD происходят от 4.4BSD-Lite (а OpenBSD и DragonflyBSD - от NetBSD и FreeBSD соответственно), поэтому они поставляются с nviустановленными по умолчанию.

В отличие от Linux, системы BSD имеют единую «базовую» систему, частью которой nviявляется, так что в действительности существует более 4 версий nvi. Но на самом деле изменения малы или несущественны, проекты BSD обмениваются кодом, поэтому большинство исправлений и улучшений являются общими (но, возможно, не всеми?). Я полагаю, что FreeBSD добавил многобайтовую поддержку, например, несколько лет назад.

vimИстория более скучный: Брэм работает на Amiga, хотел бежать vi, но не смог найти viдля Amiga. Поэтому он взял stevieкод, портировал его на Amiga и продолжил улучшать его. Вот почему вы до сих пор можете найти множество заметок, связанных с Амигой, в документах даже сегодня.

Тем временем, UNIX снова «свободен», и вы можете запускать оригиналvi .

Мартин Турной
источник
1
Википедия утверждает, что nvi основан на elvis, поставляемом с оригинальной 386BSD, и был попыткой сделать более чисто vi-совместимую версию. Это верно?
Random832
2

Корни родословных клонов vi, по-видимому, таковы:

  • 1977: «Традиционный vi», первоисточник Билла Джоя, портированный и бесплатный для использования с 2002 года.
  • 1985: microEmacs, из которого был разработан vi-alike "мерзкий"
  • 1987: stevie, из которой были разработаны vim и xvi
  • 1990: elvis, из которой был разработан nvi
  • 2000: "маленький ви" с busybox
martinwguy
источник