לפני כמה שנים כתבתי מדריך המסביר כיצד יש לעבוד עם עורך הטקסט VIM.
במהלך שיטוטי בהרגלי העבודה של האנשים, גיליתי לתדהמתי הרבה כי רוב האנשים אינם מבינים מה ההבדל בין vi לvim. "הרי בלינוקס גם vi זה בסופו של דבר ,vim מה לא ?!"
אז זהו, שכן, אבל עיקר לא !
דבר ראשון, כאשר אתם מריצים את vim בתור vi, אתם מריצים את העורך בתור אמולציה מלאה של vi, ללא היכולות המתקדמות של VIM. ע"מ לאפשר את התכונות המתקדמות, אתם צריכים לציין במפורש. עד גרסה 6 לא היה ניתן בכלל לעבור בין המצבים השונים בין vi לבין vim כאשר הרצנו את התוכנה באמצעות vi.
אם אתם רוצים להבין פעם אחת ולתמיד מה ההבדל בין vi לבין vim, פשוט תריצו את vim ותכתבו את השורה הבאה:
:help vim_diff
ותקבלו רשימה מלאה של שינויים.
כמו שאפשר להבין, ההבדל הוא לא רק הבדל של עוד אות, ההבדל הוא בצורת עבודה של העורך עצמו…
סתם שיהיה לכם ידע כללי בנושא 🙂
על איזו מערכת בדקת את זה?
בפרט, גרסאות ישנות של דביאן באו עם nvi כ־vi הסטנדרטי. אולם vi שם מוגדר דרך מערכת ה־alternatives . גרסאות חדשות יותר מגיעות עם vim-tiny .
בדקתי את ?
במקור בדקתי את זה גם על דביאן, וגם על RH 8 או 9 (כאשר כתבתי את המדריך שלי ומשם גם הזכרון שלי ששניהם שונים בתכלית).
שים לב ש vim-tiny מגדיר לך התקנה מינימלית של vim, ככה שמן הסתם לא יהיו לך תוספים כמו מפענכי טקסט וכו'…
1. כתוב man vi
2. כתוב man vim
הסברים שונים לגמרי בגלל שקיים שוני בין שני הפקודות. vi עובד עם ex בעוד שvim לא משתמש בו.
נדמה לי שב vim 6 נוספה גם האפשרות :
set nocompetible
אשר נתנה אפשרות "למחוק" לגמרי את ההתנהות של vi (בין היתר לא לעבוד עם ex) ולתת לvim יותר חופש, ופעם היה כתוב (כרגע אני לא רואה שכתוב את זה יותר) כי השימוש בפקודה לא ישפיע כאשר רצים עם vi בלבד.
פינגבק: vi vs vim | לראות שונה