ความสัมพันธ์ระหว่าง vi, nvi และ vim คืออะไร?


18

เมื่อวันที่ UNIXes 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 นั้นฟรี ทุกคนสามารถขอสำเนาจากเคนและเขาจะส่งเทปพร้อมแหล่งที่มาให้คุณ (ถูกกล่าวหาว่ามีข้อความ "ความรักเคน" อยู่ด้วย) คำว่า "ซอฟต์แวร์เสรี" หรือ "โอเพ่นซอร์ส" ยังไม่มีอยู่ แต่สำหรับทุกเจตนาและจุดประสงค์ก็คือ "โอเพ่นซอร์ส"

เหตุผลนี้เป็นเพราะยูนิกซ์พัฒนาขึ้นที่ห้องทดลองของเบลล์ Bell labs เป็นส่วนหนึ่งของ AT&T ซึ่งในเวลานั้นมีการผูกขาดโทรศัพท์อย่างมีประสิทธิภาพ ในฐานะส่วนหนึ่งของข้อตกลงกับรัฐบาลสหรัฐอเมริกามีการตกลงกันว่า AT&T ไม่ได้ รับอนุญาตให้เข้าสู่สาขาธุรกิจอื่น ๆ (เช่นคอมพิวเตอร์)

บางที่ที่สิ่งนี้เปลี่ยนแปลงไปและ UNIX กลายเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ เป็นผลให้ BSD (ซึ่งเกิดจาก UNIX) ก็กลายเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ viถูกเขียนเป็นส่วนหนึ่งของ BSD ดังนั้นมันจึงกลายเป็นกรรมสิทธิ์

นี่คือเหตุผลที่ในยุค 80 ถึงต้น 'ปลาย 90s บางคน 'vi โคลน' ปรากฏเช่นstevie(ภายหลังพื้นฐานสำหรับการvim) nviและ

ในช่วงต้นยุค 90 คนต้องการระบบ BSD ฟรีเพื่อให้nviถูกสร้างขึ้นสำหรับ 4.4BSD-Lite (ความหมาย Lite ไม่ผูกพันโดย AT & T รหัส) ดังนั้นnviที่ถูกสร้างขึ้นเป็น 'เข้ากันได้ข้อผิดพลาดสำหรับข้อผิดพลาด' แทน viEncumbered มันมีทั้งหมดของviคุณสมบัติ vimแต่ไม่ได้เป็นคุณสมบัติที่สูงขึ้นคุณอาจพบใน

FreeBSD & NetBSD ทั้งคู่สืบลงมาจาก 4.4BSD-Lite (และ OpenBSD & DragonflyBSD สืบเชื้อสายมาจาก NetBSD และ FreeBSD ตามลำดับ) ซึ่งเป็นสาเหตุที่พวกเขามาพร้อมกับการ nviติดตั้งโดยค่าเริ่มต้น

ซึ่งแตกต่างจากลินุกซ์ระบบ BSD มีคนเดียว "ฐาน" ระบบซึ่งnviเป็นส่วนหนึ่งของจึงมีจริงๆ 4+ nviรุ่น แต่ในความเป็นจริงการเปลี่ยนแปลงมีขนาดเล็กถึงไม่มีอยู่รหัสการแลกเปลี่ยนโครงการ BSD ดังนั้นการแก้ไขข้อบกพร่องและการปรับปรุงส่วนใหญ่จึงใช้ร่วมกัน (แต่อาจไม่ใช่ทั้งหมด) ฉันเชื่อว่า FreeBSD เพิ่มการสนับสนุนหลายไบต์เมื่อหลายปีก่อน

vimเรื่องเป็นเรื่องที่น่าเบื่อมากขึ้น: แบกำลังวิ่งอยู่บนเอมิกาอยากจะวิ่งหนีviแต่ไม่สามารถหาviเอมิ ดังนั้นเขาจึงนำstevieรหัสส่งไปยัง Amiga และปรับปรุงอย่างต่อเนื่อง นี่คือเหตุผลที่คุณยังสามารถพบบันทึกย่อที่เกี่ยวข้องกับ Amiga จำนวนมากได้ในเอกสารแม้กระทั่งทุกวันนี้

ในขณะเดียวกัน UNIX นั้น "ฟรี" อีกครั้งและคุณสามารถเรียกใช้ ต้นฉบับviได้


1
Wikipedia อ้างว่า nvi นั้นมีพื้นฐานมาจากเอลวิสซึ่งส่งมาพร้อมกับต้นฉบับ 386BSD และเป็นความพยายามที่จะทำให้เวอร์ชั่นที่เข้ากันได้กับ vi นั้นบริสุทธิ์ยิ่งขึ้น ถูกต้องหรือไม่
Random832

2

รากของต้นไม้ตระกูล vi โคลนนิ่งดูเหมือนจะเป็น:

  • 2520: "ดั้งเดิม vi" แหล่งดั้งเดิมของ Bill Joy พอร์ตและใช้งานได้ฟรีตั้งแต่ปี 2545
  • 2528: microEmacs ซึ่ง vi- เหมือน "เลว" ได้รับการพัฒนา
  • 1987: stevie ซึ่งเป็นกลุ่มและสิบหกได้รับการพัฒนา
  • 1990: เอลวิสซึ่งพัฒนา nvi
  • 2000: busybox ของ "tiny vi"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.