Apa hubungan antara vi, nvi dan vim?

18

Pada beberapa unix kadang-kadang saya menemukan perintah bernama nvi. Itu adalah editor vi-like, tanpa banyak fungsi. Mungkin itu garpu tua vi?

Bagaimanapun, viversi mana yang merupakan fork dari yang lain, dan mana yang merupakan pengembangan independen? Apakah mereka memiliki "pohon keluarga", mirip dengan unix?

peterh - Pasang kembali Monica
sumber

Jawaban:

24

Dari nvi(1):

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

Beberapa latar belakang, dari memori, jadi saya harap detailnya benar:

Pada awalnya, UNIX gratis. Semua orang dapat meminta salinan dari Ken, dan dia akan mengirimi Anda kaset dengan sumbernya (diduga dengan teks "love, Ken" pada mereka). Istilah "perangkat lunak bebas" atau "open source" belum ada, tetapi untuk semua maksud dan tujuan itu adalah "open source".

Alasan untuk ini adalah karena UNIX dikembangkan di Bell labs. Bell labs adalah bagian dari AT&T yang, pada saat itu, memiliki monopoli yang efektif pada telepon. Sebagai bagian dari perjanjian dengan pemerintah AS, disepakati bahwa AT&T tidak diizinkan memasuki bidang bisnis lain (seperti komputer).

Di suatu tempat di sepanjang jalan ini berubah, dan UNIX menjadi perangkat lunak berpemilik. Akibatnya, BSD (yang berasal dari UNIX) juga menjadi perangkat lunak berpemilik. viditulis sebagai bagian dari BSD, sehingga juga menjadi hak milik.

Inilah sebabnya mengapa pada akhir '80 -an hingga awal '90 -an beberapa "vi klon" muncul, seperti stevie(kemudian dasar untuk vim) dan nvi.

Pada awal 90-an, orang menginginkan sistem BSD gratis, jadi nvidiciptakan untuk 4.4BSD-lite (artinya lite, tidak dibebani oleh kode AT&T), jadi nvidiciptakan sebagai pengganti "bug-for-bug kompatibel" untuk orang yang dibebani vi. Ia memiliki semua vifitur, tetapi bukan fitur yang lebih canggih yang mungkin Anda temukan vim.

FreeBSD & NetBSD keduanya turun dari 4.4BSD-Lite (dan OpenBSD & DragonflyBSD, masing-masing turun dari NetBSD dan FreeBSD), itulah sebabnya mereka mengirim dengan nvimenginstal secara default.

Tidak seperti Linux, sistem BSD memiliki satu "dasar" sistem yang nvimerupakan bagian dari, jadi ada benar-benar 4 + versi nvi. Namun dalam kenyataannya perubahannya kecil hingga tidak ada, BSD memproyeksikan kode pertukaran, sehingga sebagian besar perbaikan bug dan peningkatan dibagikan (tapi mungkin tidak semua?). Saya percaya FreeBSD menambahkan dukungan multibyte beberapa tahun yang lalu, misalnya.

The vimcerita lebih membosankan: Bram sedang berjalan pada Amiga, ingin lari vi, tapi tidak bisa menemukan viuntuk Amiga. Jadi dia mengambil steviekode itu, memindahkannya ke Amiga, dan terus memperbaikinya lebih lanjut. Inilah sebabnya mengapa Anda masih dapat menemukan banyak catatan terkait Amiga di dokumen bahkan hari ini.

Sementara itu, UNIX "bebas" sekali lagi, dan Anda dapat menjalankan yang aslivi .

Martin Tournoij
sumber
1
Wikipedia mengklaim nvi didasarkan pada elvis yang dikirimkan dengan 386BSD asli, dan merupakan upaya untuk membuat versi yang lebih murni kompatibel dengan vi. Apakah ini benar?
Random832
2

Akar pohon keluarga klon vi tampaknya adalah:

  • 1977: "Traditional vi", sumber asli Bill Joy, porting dan bebas digunakan sejak 2002.
  • 1985: microEmacs, dari mana "kejahatan" vi-sama dikembangkan
  • 1987: stevie, darimana vim dan xvi dikembangkan
  • 1990: elvis, dari mana nvi dikembangkan
  • 2000: busybox's "tiny vi"
martinwguy
sumber