ความแตกต่างที่ใหญ่ที่สุดระหว่าง Vim และ VI


25

วันนี้ฉันตัดสินใจลอง Vi แทน Vim ฉันต้องการเห็นความแตกต่าง ฉันไม่ได้สังเกตเห็นความแตกต่างเลยสิ่งที่ยิ่งใหญ่ที่สุดที่ฉันสังเกตเห็นคือวิธีที่ Vi ไม่ได้พูด-- INSERT --เมื่อฉันเข้าสู่โหมดแทรกและมีความแตกต่างเล็กน้อยของอินเทอร์เฟซ

ทำให้ฉันสงสัยว่าอะไรคือความแตกต่างที่ใหญ่ที่สุดระหว่าง Vi และ Vim?


1
เห็นได้ชัดว่าคุณไม่ได้ใช้คุณสมบัติขั้นสูงมากมายในกลุ่ม เลือกบล็อกค้นหาคำภายใต้เคอร์เซอร์, หมายเลขที่เพิ่มขึ้นภายใต้เคอร์เซอร์เน้นไวยากรณ์ ฯลฯ
Jim

คำตอบ:


25

มีคำสั่งช่วยเหลือเป็นกลุ่มในการบอกคุณเกี่ยวกับความแตกต่าง: :help vi_diff

จากเว็บไซต์ของ Vimที่ใหญ่ที่สุดคือ:

ยกเลิกได้ไม่ จำกัด

คุณสามารถทำ xxxx และเลิกทำการลบสี่รายการแต่ละรายการได้ ครั้งสุดท้ายที่คุณพิมพ์คำว่า "jjjj" และพบว่าปุ่มตัวพิมพ์ใหญ่ล็อคเปิดอยู่? คุณบังเอิญเข้าร่วมห้าบรรทัดด้วยกันและ Vi สามารถยกเลิกคำสั่งสุดท้ายเท่านั้น ในกลุ่มคุณสามารถยกเลิกคำสั่ง "J" ทั้งสี่และรับข้อความต้นฉบับของคุณกลับมาได้

ความเบา

Vi มีเฉพาะใน Unix เท่านั้น Vim ทำงานบน MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX และระบบอื่น ๆ และในทุกระบบ Unix

การเน้นไวยากรณ์

Vim สามารถตั้งโปรแกรมให้เน้นส่วนของบัฟเฟอร์ในสีหรือสไตล์ที่แตกต่างกันตามประเภทของไฟล์ที่กำลังแก้ไข มีการเน้นชุดไวยากรณ์ของกฎนับร้อยที่มาพร้อมกับ Vim

GUI

Vim ทำงานได้ดีที่คอนโซล แต่สามารถทำงานได้ใน GUI หลายตัวรวมถึง X Windows, Mac OS และ Microsoft Windows มันใช้วิดเจ็ต GUI ดั้งเดิมสำหรับการเลื่อนแบ่งบัฟเฟอร์และเมนู นอกจากนี้ยังสามารถพูดคุยกับคลิปบอร์ด


4
ความแตกต่างบางอย่างถูกกล่าวถึงในคำถามที่พบบ่อย
Christian Brabandt

ตามที่readmeแสดงว่าOSบางตัวไม่ได้รับการสนับสนุนอีกต่อไป
Rolf

7

Vim มีฟีเจอร์มากมายที่ Vi ไม่แม้แต่จะเป็นฟีเจอร์ที่ไม่ได้มีคุณสมบัติ "ขั้นสูง" อย่างเห็นได้ชัด

ในทางปฏิบัตินี่หมายความว่าหากคุณคุ้นเคยกับ Vi คุณจะพบความแตกต่างน้อยมากหากคุณเริ่มใช้ Vim (หรือ Vi Vi โคลนอื่น ๆ ) แต่ถ้าคุณคุ้นเคยกับ Vim และหาก "reflexes" ของคุณมีคุณสมบัติเช่น การไฮไลต์โหมดภาพการกระทำของปุ่มใด ๆ ที่ขึ้นต้นด้วย "g" หรือ "z" การกระทำข้อความใด ๆ ด้วย "i" หรือ "a" [เช่น "daw" เพื่อลบคำใต้เคอร์เซอร์] การนำทางด้วยปุ่มลูกศรในโหมดแทรก ฯลฯ คุณจะพบว่าคนเหล่านั้นไม่ทำงานใน Vi

นอกจากนี้ยังมีคำถามว่าคุณใช้อะไรเมื่อคุณพูดว่า "พยายาม Vi" ในหลาย ๆ ระบบ "vi" ใช้งาน Vim จริง ๆ ในโหมดที่ใช้ความแตกต่างบางอย่าง (โหมดเริ่มต้นตามที่คุณสังเกตเห็นปุ่มลูกศรไม่ทำงานในโหมดแทรก) และอื่น ๆ ไม่ทำงาน (โหมดภาพและปุ่ม g / z ทำงาน ) และคุณสมบัติบางอย่างขึ้นอยู่กับตัวเลือกเวลารวบรวมที่บางครั้งจะปิดการใช้งานใน "จิมเล็ก ๆ " ที่ใช้สำหรับสิ่งนี้ (วัตถุข้อความเช่น "aw" คำเป็นหนึ่งในสิ่งเหล่านี้) คุณจะไม่ได้รับสิ่งเหล่านี้หากคุณเรียกใช้Vi จริงหรือถ้า "vi" เป็นโคลนอื่น ๆ ที่มีคุณสมบัติน้อยกว่าหรือแตกต่างจาก Vim เช่น nvi หรือ VILE

และในด้านที่คลุมเครือในขณะที่ "ตัวเล็กจิมในโหมด Vi" เห็นได้ชัดว่าไม่มีคุณสมบัติใด ๆ ที่เป็นกลุ่มแบบเต็มไม่ได้มีคุณสมบัติบางอย่างของ Vi ดั้งเดิมของแท้ที่ขาดเสียงเรียกเข้า :help vi-differencesเหล่านี้จะถูกบันทึกไว้ใน


2
ฉันเดิมพันอย่างหนักว่า OP จริง ๆ แล้วมี "กลุ่มเล็ก ๆ " vi
เควิน

2

การเปรียบเทียบส่วนใหญ่ให้ฟังก์ชั่นการใช้เสียงเรียกเข้าที่มากกว่า vii แต่มีข้อยกเว้นหนึ่งข้อ มีโหมด "open" ใน vi และกลุ่มที่ไม่มีโหมดนี้จริง ๆ

โหมดเปิดเป็นโหมดบรรทัดเดียวที่ใช้ในวันนั้นด้วยเทอร์มินัลที่ไม่มีจอแสดงผลอิเล็กทรอนิกส์เช่นโทรพิมพ์จดหมายและอื่น ๆ รวมถึงจอแสดงผลที่เคอร์เซอร์ยังคงอยู่ที่ด้านล่างเท่านั้น

ฉันรู้ว่ามีเอกสารออกมาที่บอกว่าเป็นกลุ่มเลียนแบบโหมดเปิด แต่ประสบการณ์ของฉันคือมันไม่ได้เพราะฉันเคยเห็นมันใช้กับ vi ด้วยตาของฉันเองและฉันไม่เคยเห็นเป็นกลุ่มทำ ดูเหมือนว่ากลุ่มจะใช้openคำสั่งเพียงเพื่อเปิดและแก้ไขไฟล์ในโหมดภาพ ฉันเชื่อว่าเอกสารอย่างเป็นทางการของ vim ระบุว่าไม่รองรับโหมดเปิด


ฉันติดตั้งex-vi.sourceforge.netซึ่งเป็นพอร์ตของ Vi ดั้งเดิม ฉันจะเริ่มโหมดเปิดนี้ได้อย่างไร manpage พูดถึงมันเมื่อพูดถึง^Rแต่ไม่มีความช่วยเหลืออื่น ผลตอบแทน:open some/file open: No such command from open/visual
muru

@muru เพื่อเข้าสู่โหมดอดีตแล้วQ เพื่อแสดงบริบทของบรรทัดปัจจุบันเมื่อคุณอยู่ในโหมดเปิด ที่จะกลับออกมาแล้ว openzQvi
Antony

0

ฉันคิดว่ามันยากมากที่จะทำการเปรียบเทียบเนื่องจากการเปลี่ยนแปลงใน vi ที่เกิดขึ้นเมื่อเวลาผ่านไป

เมื่อฉันอยู่ในวิทยาลัยฉันใช้ plain-vanilla vi บนเทอร์มินัลโง่ (และบนเทอร์มินัลอีมูเลเตอร์บน Mac) ที่เชื่อมต่อกับเมนเฟรมโดยใช้ System V คุณไม่สามารถหามันได้อีก

แต่ฉันก็ไม่แน่ใจเหมือนกันว่าเป็นเรื่องจริง vi เกี่ยวกับเวลานั้นมีการทำโคลนและพอร์ตมากมายเนื่องจาก vi ไม่ได้เป็นโอเพ่นซอร์สในขณะนั้น และเมื่อผู้ขายทำโคลนพวกเขาเพิ่มคุณสมบัติที่ไม่ได้อยู่ใน vi ประวัติศาสตร์นั้นค่อนข้างซับซ้อน คุณสามารถอ่านได้ใน Wikipedia และที่อื่น ๆ

ดังนั้นหากคุณไม่ได้ใช้ผู้ขาย / ฮาร์ดแวร์บางอย่างคุณไม่ได้ใช้ vi แต่มีบางอย่างเช่น vi

แต่ฉันจำได้ว่า vi (หรือโคลนที่ฉันใช้) เป็นเครื่องมือที่เรียบง่ายที่สุดในอินเทอร์เฟซของมัน (ไม่มีสีไม่มีป้าย INSERT ไม่มี mulitple undos ฯลฯ ) แต่ทรงพลังในสิ่งที่ทำได้จริง ในทางปฏิบัติมาก


0

คำถามที่พบบ่อยเป็นกลุ่มมีรูปแบบรายการที่ดี: https://vimhelp.org/vim_faq.txt.html#faq-1.4

ข้อความที่ตัดตอนมาจากคำถามที่พบบ่อย:

  • เลิกทำหลายระดับ
  • แท็บหลายหน้าต่างและบัฟเฟอร์
  • โหมดการแทรกแบบยืดหยุ่น (สามารถใช้ปุ่มลูกศรในโหมดแทรก)
  • แมโคร
  • โหมดภาพ (เลือกส่วนของข้อความด้วยสายตา)
  • บล็อกตัวดำเนินการ
  • ระบบช่วยเหลือออนไลน์
  • การแก้ไขและประวัติบรรทัดคำสั่ง
  • การเติมบรรทัดคำสั่งให้สมบูรณ์
  • การเลื่อนในแนวนอน (เส้นยาว)
  • การปรับปรุง Unicode และความเป็นสากล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.