Jaki jest związek między vi, nvi i vim?

19

W niektórych systemach uniksowych czasami znalazłem polecenie o nazwie nvi. Był to edytor podobny do vi, bez dużej części swojej funkcjonalności. Może to był stary rozwidlenie vi?

W każdym razie, które viwersje są rozwidleniem innych, a które są niezależnymi rozwiązaniami? Czy mają „drzewo genealogiczne”, podobne do unixów?

peterh - Przywróć Monikę
źródło

Odpowiedzi:

24

Od nvi(1):

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

Trochę tła, z pamięci, więc mam nadzieję, że podane szczegóły są prawidłowe:

Na początku UNIX był darmowy. Każdy może poprosić Kena o kopię, a on prześle ci taśmę ze źródłem (podobno z tekstem „miłość, Ken”). Pojęcia „wolne oprogramowanie” lub „open source” jeszcze nie istniały, ale pod każdym względem było to „open source”.

Powodem tego było to, że UNIX został opracowany w Bell Labs. Bell Labs jest częścią AT&T, która w tamtym czasie miała skuteczny monopol na telefonię. W ramach umowy z rządem USA uzgodniono, że AT&T nie może wchodzić na inne obszary działalności (takie jak komputery).

Gdzieś po drodze to się zmieniło, a UNIX stał się oprogramowaniem prawnie zastrzeżonym. W rezultacie BSD (które wywodzi się z UNIX) również stało się oprogramowaniem prawnie zastrzeżonym. vizostał napisany jako część BSD, więc stał się również zastrzeżony.

Dlatego na przełomie lat 80. i 90. pojawiły się niektóre „klony vi”, takie jak stevie(późniejsza podstawa vim) i nvi.

Na początku lat 90. ludzie chcieli mieć darmowy system BSD, więc nvizostał stworzony dla 4.4BSD-lite (co oznacza Lite, nie jest obciążony kodem AT&T), więc nvizostał stworzony jako „kompatybilny z błędem dla błędu” zamiennik dla obciążonego vi. Ma wszystkie vifunkcje, ale nie ma bardziej zaawansowanych funkcji, w których możesz się znaleźć vim.

Zarówno FreeBSD, jak i NetBSD pochodzą z 4.4BSD-Lite (a OpenBSD i DragonflyBSD pochodzą odpowiednio z NetBSD i FreeBSD), dlatego są dostarczane nvidomyślnie.

W przeciwieństwie do Linuksa, systemy BSD mają jeden system „bazowy”, którego nviczęścią jest, więc tak naprawdę istnieją ponad 4 wersje nvi. Ale w rzeczywistości zmiany są niewielkie lub nieistniejące, projekty BSD wymieniają kod, więc większość poprawek i ulepszeń jest wspólna (ale może nie wszystkie?). Na przykład wydaje mi się, że FreeBSD dodało obsługę wielobajtową kilka lat temu.

vimHistoria jest bardziej nudny: Bram został uruchomiony na Amidze, chciał biec vi, ale nie mógł znaleźć vidla Amigi. Więc wziął steviekod, przeniósł go do Amigi i dalej go ulepszał. Dlatego do dziś możesz znaleźć wiele notatek związanych z Amigą w dokumentach.

Tymczasem UNIX jest znów „darmowy” i możesz uruchomić wersję oryginalnąvi .

Martin Tournoij
źródło
1
Wikipedia twierdzi, że nvi jest oparty na elvisie, który został dostarczony z oryginalnym 386BSD, i starał się stworzyć wersję bardziej kompatybilną z vi. Czy to jest poprawne?
Random832
2

Korzenie drzew genealogicznych klonów vi wydają się być:

  • 1977: „Traditional vi”, oryginalne źródło Billa Joy'a, przeniesione i dostępne od 2002 roku.
  • 1985: microEmacs, z którego opracowano podobny do siebie „podły”
  • 1987: stevie, z którego opracowano vim i xvi
  • 1990: elvis, z którego opracowano nvi
  • 2000: „mały vi” busyboksa
martinwguy
źródło