הסבירו מצבי עורך Vim

מכיוון ש- Vim מתמקד בשינוי קוד קיים באותה מידה כמו בכתיבת קוד חדש, הוא מחולק למספר מצבים שלכל אחד מהם יש מטרות שונות.

מצב נורמלי

כברירת מחדל, Vim מתחיל במצב "רגיל". ניתן לגשת למצב רגיל ממצבים אחרים על ידי לחיצה על Escאו .

במצב רגיל לחיצות מקשים לא עובדות כפי שניתן היה לצפות. כלומר, הם לא מכניסים טקסט למסמך; במקום זאת, לחיצות מקשים מסוימות יכולות:

הזז את הסמן

  • h נותר תו מהלך אחד
  • j המהלך למטה שורה אחת
  • k להזיז שורה אחת למעלה
  • אני מזיז דמות אחת ימינה

כמו פקודות vim רבות, ניתן להקדים קידומת של תנועה בשורה בכדי להזיז קווי קווים בכל פעם:

  • 4j הזז 4 שורות למטה
  • הזז 6k 6 שורות למעלה

תנועות מילים בסיסיות:

  • w לעבור לתחילת המילה הבאה
  • ב לעבור לתחילת המילה הקודמת
  • דואר לעבור בסופו של דבר
  • W מעבר לתחילת המילה הבאה אחרי רווחים
  • B לעבור לתחילת המילה הקודמת לפני רווח לבן
  • העבר לסוף המילה לפני מרחב לבן

תחילת / סוף תנועה:

  • 0 לעבור לתחילת השורה
  • $ המהלך עד סוף השורה

לטפל בטקסט

הזן מצבים אחרים

מצב רגיל הוא המקום בו צריך לבלות את רוב זמנם תוך שימוש ב- Vim. זכרו, זה מה שעושה את Vim שונה.

במצב רגיל, ישנן מספר דרכים לנוע סביב קובץ פתוח. בנוסף לשימוש במקשי הסמן כדי לנוע, אתה יכול להשתמש גם h(משמאל), j(למטה), k(למעלה) ו- l(ימינה) גם לנוע. זה עוזר במיוחד לגעת בקלדנים שלא אוהבים לצאת מהשורה הביתית בעת ביצוע שינויים.

ניתן גם לבצע שינויים בתווים בודדים במצב רגיל. לדוגמה, כדי להחליף תו בודד, הזז את הסמן מעליו ולחץ rואז התו שברצונך להחליף אותו. באופן דומה, ניתן למחוק תווים בודדים על ידי הזזת הסמן מעליו ולחיצה עליו x.

כדי לבצע ביטול, לחץ uבמצב רגיל. פעולה זו מבטלת שינויים עד הפעם האחרונה שהיית במצב רגיל. אם ברצונך לבצע שוב ( כלומר , לבטל את ביטולך) לחץ Ctrl+rבמצב רגיל.

הוסף מצב

זהו המצב השני בשימוש ביותר ויהיה ההתנהגות המוכרת ביותר עבור רוב האנשים. פעם במצב הוספה, הקלדה מכניסה תווים בדיוק כמו עורך טקסט רגיל. ניתן להיכנס אליו באמצעות פקודת הוספה ממצב רגיל.

פקודות הוספה כוללות:

  • iעבור ' i nsert', זה מעביר מיד את vim למצב הכניסה
  • aעבור ' a ppend', זה מעביר את הסמן אחרי התו הנוכחי ונכנס למצב הוספה
  • o מכניס שורה חדשה מתחת לקו הנוכחי ונכנס למצב הוספה בשורה החדשה

לפקודות אלה יש גם מגוון רישיות:

  • I מעביר את הסמן לתחילת השורה ונכנס למצב הוספה
  • A מעביר את הסמן לסוף השורה ונכנס למצב הוספה
  • O מכניס שורה חדשה מעל הקו הנוכחי ונכנס למצב הוספה בשורה החדשה

ישנן כל כך הרבה דרכים נוספות להכנסת טקסט ב- Vim שלא ניתן לרשום כאן, אך אלה הן הפשוטות ביותר. כמו כן, היזהר מלהישאר במצב הוספה זמן רב מדי; Vim אינו מיועד לשימוש במצב הוספה כל הזמן.

ליציאה ממצב הכניסה וחזרה למצב רגיל, לחץ על Escאו

מצב חזותי

נעשה שימוש במצב חזותי לבחירת טקסט, בדומה לאופן שבו לחיצה וגרירה עם העכבר מתנהגים. בחירת טקסט מאפשרת לפקודות להחיל רק על הבחירה, כגון העתקה, מחיקה, החלפה וכו '.

כדי לבצע בחירת טקסט:

  • לחץ vכדי להיכנס למצב חזותי, זה גם יסמן נקודת בחירה התחלתית
  • הזז את הסמן לנקודת הבחירה הסופית הרצויה; vim יספק הדגשה חזותית של בחירת הטקסט

למצב חזותי יש גם את הגרסאות הבאות:

  • V כדי להיכנס למצב קו חזותי, הדבר יעשה בחירת טקסט לפי שורה
  • כדי להיכנס למצב חסימה חזותית, הדבר יעשה בחירת טקסט לפי בלוקים; הזזת הסמן תבצע בחירות מלבניות של הטקסט

כדי לצאת ממצב חזותי ולחזור למצב רגיל, לחץ על Escאו .

מצב ויזואלי יש בעצם תת מרובים: חזותי , גוש-ויזואלי ו linewise-ויזואלי

  • חזותית : כמו שתואר לעיל. היכנס בלחיצהv
  • בלוק-ויזואלי : בחר אזור מלבני כלשהו. היכנס בלחיצה+v
  • קו-חזותי : בחר תמיד קווים מלאים. היכנס בלחיצה+v

מצב פיקוד

למצב פקודה יש ​​מגוון רחב של פקודות והוא יכול לעשות דברים שמצב רגיל לא יכול לעשות באותה קלות. כדי להיכנס למצב פקודה, הקלד ':' ממצב רגיל ואז הקלד את הפקודה שלך שתופיע בתחתית החלון. לדוגמא, כדי למצוא חיפוש גלובלי ולהחליף סוג :%s/foo/bar/gלהחליף את כל 'foo' ב 'bar'

  • : נכנס למצב פקודה
  • % פירושו בכל הקווים
  • s אמצעי תחליף
  • /foo הוא regex למצוא דברים להחליף
  • /bar/ הוא regex להחליף את הדברים
  • /g פירושו גלובלי, אחרת זה יבוצע רק פעם אחת בשורה

ל- Vim יש מספר שיטות אחרות עליהן תוכלו לקרוא בתיעוד העזרה, :hאו :help.

החלף מצב

מצב החלפה מאפשר לך להחליף טקסט קיים על ידי הקלדה ישירה מעליו. לפני כניסה למצב זה, היכנס למצב רגיל והניח את הסמן מעל התו הראשון שברצונך להחליף. לאחר מכן לחץ על 'R' (הון R) כדי להיכנס למצב החלפה. כעת כל מה שתקליד יחליף את הטקסט הקיים. הסמן עובר אוטומטית לתו הבא בדיוק כמו במצב הוספה. ההבדל היחיד הוא שכל תו שתקליד יחליף את הדמות הקיימת.