Qual é a relação entre vi, nvi e vim?

18

Em alguns unixes, em algum momento, encontrei um comando chamado nvi. Era um editor semelhante ao vi, sem grande parte de sua funcionalidade. Talvez fosse um garfo do velho vi?

De qualquer forma, quais viversões são uma bifurcação das outras e quais são desenvolvimentos independentes? Eles têm uma "árvore genealógica", semelhante aos unixes?

peterh - Restabelecer Monica
fonte

Respostas:

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.

Alguns antecedentes, da memória, então espero que os detalhes estejam corretos:

No começo, o UNIX era gratuito. Todos poderiam solicitar uma cópia de Ken, e ele enviaria uma fita com a fonte (supostamente com o texto "amor, Ken"). Os termos "software livre" ou "código aberto" ainda não existiam, mas, para todos os efeitos, era "código aberto".

A razão para isso foi porque o UNIX foi desenvolvido nos laboratórios da Bell. A Bell labs faz parte da AT&T que, na época, possuía um monopólio efetivo da telefonia. Como parte de um acordo com o governo dos EUA, foi acordado que a AT&T não tinha permissão para entrar em outros campos de negócios (como computadores).

Em algum momento, isso mudou, e o UNIX se tornou um software proprietário. Como resultado, o BSD (que deriva do UNIX) também se tornou um software proprietário. vifoi escrito como parte do BSD, tornando-se também proprietário.

É por isso que, no final dos anos 80 e início dos anos 90, alguns "vi clones" apareceram, como stevie(mais tarde a base para vim) e nvi.

No início dos anos 90, as pessoas queriam um sistema BSD gratuito, por isso nvifoi criado para o 4.4BSD-lite (significado lite, não onerado pelo código da AT&T), por isso nvifoi criado como um substituto "compatível com bugs por bugs" dos onerados vi. Ele possui todos os virecursos, mas não os recursos mais avançados que você pode encontrar vim.

O FreeBSD e o NetBSD descendem do 4.4BSD-Lite (e o OpenBSD & DragonflyBSD descendem do NetBSD e do FreeBSD, respectivamente), e é por isso que eles são enviados nvipor padrão.

Ao contrário do Linux, os sistemas BSD têm um único sistema "base" do qual nvifaz parte, portanto, existem realmente mais de 4 versões nvi. Mas, na realidade, as mudanças são pequenas ou inexistentes, os projetos do BSD trocam código, de modo que a maioria das correções e aprimoramentos são compartilhadas (mas talvez não todas?). Eu acredito que o FreeBSD adicionou suporte multibyte alguns anos atrás, por exemplo.

A vimhistória é mais chata: Bram estava correndo em Amiga, queria correr vi, mas não conseguiu encontrar um vipara Amiga. Então ele pegou o steviecódigo, portou-o para Amiga e continuou a aprimorá-lo ainda mais. É por isso que você ainda pode encontrar muitas anotações relacionadas ao Amiga nos documentos até hoje.

Enquanto isso, o UNIX é "gratuito" mais uma vez e você pode executar o originalvi .

Martin Tournoij
fonte
1
A Wikipedia afirma que o nvi é baseado no elvis que acompanha o 386BSD original e foi um esforço para criar uma versão mais compatível com o vi. Isso está correto?
Random832
2

As raízes das árvores genealógicas dos clones vi parecem ser:

  • 1977: "Traditional vi", fonte original de Bill Joy, portado e gratuito para uso desde 2002.
  • 1985: microEmacs, a partir do qual o viável "vil" foi desenvolvido
  • 1987: stevie, a partir do qual vim e xvi foram desenvolvidos
  • 1990: elvis, a partir do qual o nvi foi desenvolvido
  • 2000: "tiny vi" do busybox
martinwguy
fonte