עריכת קבצים עם Vim לאובד עצות
Linux מציע מגוון של עורכי טקסט, ואחד הפופולריים הוא Vim. מי שמומחה בשימוש בו מעדיף אותו על פני IDE רגיל כי הוא הרבה יותר נוח ומהיר. באופן אישי, אני עובד איתו, או עם גירסה פחות עתירת פריטים ששמה Vi, כשאני צריך לעבוד על שרת מרוחק שאין לי אליו גישה עם עורך טקסט רגיל. כך שהמדריך הזה הוא מדריך הישרדות שמיועד למי שנאלץ לעבור עם עורך vi/vim וחייב ללמוד את המינימום ההכרחי.
Vim מציע אינסוף אפשרויות לייעול העבודה. במדריך זה רכזתי את 10 הדברים השימושיים ביותר.
1. איך פותחים קובץ באמצעות vim?
מקלידים vim ואחריו את שם הקובץ שמעוניינים לערוך:
$ sudo vim [filename]
2. שינוי הבעלות על הקובץ
$ sudo chown [user] [filename]
שינוי הבעלות על הקובץ חשוב לנו כי הרבה פעמים הבעלים של הקובץ הוא root, וכדי לערוך את הקובץ צריך להעביר את הבעלות למשתמש שלך (קרא על ניהול משתמשים והרשאות בלינוקס).
3. שני המצבים ב-vim
ב-vim ישנם שני מצבים, מצב הפקודה (command mode) ומצב העריכה (insert mode)
- מצב הפקודה משמש לנווט בדף בין השורות ובתוך השורות, לחיפושים ולפקודות.
- מצב העריכה מאפשר לערוך את הקובץ.
בכל פעם שאתה פותח את הקובץ אתה תמצא את עצמך במצב פקודה. במצב פקודה לא תוכל לערוך את הקובץ אלא רק לנווט בתוכו ולהפעיל פקודות.
4. ניווט בקובץ במצב פקודה
במצב פקודה, הניווט בתוך הקובץ נעשה באמצעות מקשי החיצים של המקלדת.
כדי לדלג לסוף הקובץ השתמש בצירוף המקשים הבא במצב פקודה:
Ctrl + End
או הקלד במצב פקודה:
:$
וכדי לדלג חזרה לתחילת הקובץ:
Ctrl + Home
או הקלד במצב פקודה:
:1
כדי לדלג לתחילת השורה הקלד במצב פקודה על המקש "0", וכדי לדלג לסוף השורה הקלד "$".
5. כיצד למצוא מחרוזת בקובץ?
במצב פקודה תקליק קו נטוי ואחריו את ביטוי החיפוש:
:/[the string]
אחרי שסיימת לכתוב את הפקודה תקליק על Enter כדי לבצע אותה.
כדי לבצע את הפקודות צריך לזכור להקליק על Enter
- החיפוש הוא מהמקום שבו אתה נמצא עד לסוף המסמך. לכן, אם הקובץ לא מוכר לך, רצוי להתחיל את החיפוש מתחילת המסמך.
6. איך למצוא את המקרה הבא של מונח החיפוש?
אחרי שמצאת את המחרוזת שאתה מחפש, לחיצה על n תיקח אותך למקום הבא במסמך שבו המחרוזת נמצאת.
7. כיצד לעבור למצב עריכה?
לחץ על המקש i כדי לעבור למצב עריכה.
במצב עריכה תוכל לערוך את הקובץ, להוסיף טקסט, ולמחוק.
אם אתה לא בטוח באיזה מצב אתה נמצא אז תסתכל בפינה השמאלית התחתונה של הטרמינל. אם כתוב שם INSERT אז אתה במצב עריכה.
8. כיצד לצאת ממצב עריכה, ולעבור למצב פקודה?
כדי לצאת ממצב עריכה ולעבור למצב פקודה לחץ על המקש Esc.
9. כיצד לחפש ולהחליף מחרוזת?
ב-Vim אתה יכול למצוא ולהחליף טקסט באמצעות הפקודה :substitute (:s).
כדי להריץ פקודה ב-Vim אתה חייב להיות במצב פקודה.
התחביר של פקודת ההחלפה הוא:
:[range]s/{pattern}/{string}/[flags] [count]
- הפקודה מחפשת כל שורה ב-[range] במטרה לאתר דפוס {pattern} שאותו צריך להחליף במחרוזת {string}.
- האפשרויות [count] ו-[range] אינם הכרחיות כל עוד רוצים לעבוד על המקרה הראשון של ההתאמה בשורה הנוכחית.
כדי להחליף את הביטוי moshe הראשון בשורה הנוכחית ב-yakov:
:s/moshe/yakov
כדי להחליף את כל המחרוזות moshe ב-yakov בשורה הנוכחית נוסיף את הדגל הגלובלי g:
:s/moshe/yakov/g
כדי להחליף את הביטוי בכל המסמך נשתמש בסימן % כדי להגדיר את כל הטווח:
:%s/moshe/yakov/g
כדי לאשר לפני כל שינוי נוסיף את הדגל c:
:s/moshe/yakov/gc
10. איך להציג את מספרי השורות?
- למעבר למצב פקודה הקלק Esc.
- הקלק : ואז את הפקודה set number או יותר בקצרה set num
- להפעלת הפקודה הקלק Enter.
להסתרת מספרי השורות השתמש בפקודה set nonumber.
11. איך למחוק?
איך למחוק את השורה הנוכחית?
כדי למחוק שורה ב-Vim, עליך להיות במצב פקודה.
הפקודה למחיקת השורה הנוכחית היא :dd.
הקלדת :dd תגרום למחיקת השורה שבה נמצא הסמן. השורה תימחק באופן מידי.
איך למחוק טווח של שורות?
במצב פקודה, ניתן למחוק טווח של שורות באמצעות הפקודה :d.
התחביר הוא:
:<start>,<end>d
לדוגמה, כדי למחוק את השורות 5 עד 10:
:5,10d
לחץ Enter להפעלת הפקודה.
איך למחוק ביטוי מסויים בשורה מסויימת?
במקרה שבו רוצים למחוק ביטוי מסוים בשורה מסוימת, משתמשים במצב פקודה ובפקודת חיפוש והחלפה (:s).
כדי למחוק את הביטוי, מחליפים אותו במחרוזת ריקה.
לדוגמה, מחיקת הביטוי something משורה 7:
:7s/something//
אם המילה מופיעה יותר מפעם אחת ורוצים למחוק את כל המופעים אז משתמשים בדגל g:
:7s/something//g
12. איך לעשות Undo ו-Redo?
כדי לעשות Undo ו-Redo עובדים במצב פקודה.
לשחזר פעולה שבוצעה זה עתה (undo) מקליקים u
לדוגמה, מחקת שורה בטעות עם dd. הקלק u, והשורה תוחזר למקומה.
לשחזור כמה פעולות בעבר מקליקים על u כמה פעמים שצריך.
-
לביצוע מחדש של פעולה שבוטלה (Redo) הקלק: Ctrl + r
כך ניתן לבטל את הביטול ולהחזיר את השינוי האחרון.
13. שימוש במצב ויזואלי visual mode
מצב ויזואלי של Vim מאפשר לעשות מניפולציה מתוחכמת של טקסט.
כדי להיכנס למצב ויזואלי נעבור למצב פקודה (לחיצה על Esc) ואז נקליד v מה שיכניס אותנו למצב ויזואלי כפי שאפשר ללמוד מהופעת המילה VISUAL בתחתית הטרמינל.
כיצד לעשות הזחה של שורות קוד מרובות במצב ויזואלי?
ממצב פקודה מקליקים v כדי להיכנס למצב ויזואלי, מקלידים על מקש נקודתיים : מה שיגרום להופעת:
:'<,'>
בתחתית הטרמינל, ואז מקלידים את טווח השורות שרוצים להזיח. על פי המתכונת הבאה:
:<start>,<end>>
לדוגמה, לצורך הזחה של השורות 5-10:
:5,10>
ואפשר גם להזיח אחורנית (לבטל את הרווחים בתחילת כל שורה של הבלוק) על ידי היפוך כיוון החץ. לדוגמה:
:5,10<
איך לשנות טקסט במצב ויזואלי?
- הקלק על Esc כדי לעבור למצב פקודה.
- שים את הסמן על התו הראשון שאתה מעוניין לשנות.
הקלק על v כדי לעבור למצב ויזואלי.
- השתמש במקשי החיצים, כדי לסמן את הביטוי שאתה מעוניין להחליף.
- הקלק על c לשינוי הטקסט המסומן.
- הטקסט המסומן יעלם, ותעבור למצב insert בו אתה יכול להוסיף טקסט חדש.
- אחרי שאתה מסיים את הקלדת הטקסט החדש, לחץ Esc כדי לחזור למצב פקודה ולשמור את השינויים.
העתק הדבק במצב ויזואלי
לחיצה על Esc תעביר למצב הפקודה, ואז יש 3 אפשרויות:
לחיצה על v קטן תפתח את האפשרות לבחור אילו תווים להעתיק.
לחיצה על V גדול לבחירת שורה שלמה.
לחיצה על Ctrl + q לבחירה של בלוק.
לדוגמה, בחירת השורות:
אחרי בחירת הטקסט הרצוי, לחץ על אחד המקשים:
y כדי להעתיק (copy, yank)
d בשביל להעתיק ולמחוק את התוכן (cut)
אחר ההעתקה תגיע למקום במסמך שלפניו תרצה להדביק את הטקסט, שם לחץ על P (גדול) כדי להדביק (paste):
14. כיצד לפתוח קובץ אחר בזמן שאתה עורך קובץ קיים?
במצב פקודה
:e [another_file_path]
15. כיצד לשמור ולצאת מקובץ?
עבור כל הפקודות של יציאה או שמירה אתה צריך להיות במצב הפקודה.
כדי לשמור את השינויים שערכת בלי לצאת מהקובץ:
:w
כדי לצאת מהקובץ בלי לשמור:
:q!
כדי לצאת מהקובץ ולשמור את השינויים:
:wq!
Vim הוא עורך טקסט שמציע שפע של אפשרויות, ואם אתה רוצה ללמוד יותר פקודות ישנם מדריכים רבים ברשת ותמיד כדאי להיעזר בדוקומנטציה.
לקריאת הגרסה האנגלית של המדריך: The essentials of Vim - 9 things that you absolutely need to know about the text editor
אולי גם זה יעניין אותך:
מערכת הקבצים של Linux - מה שרצית לדעת ולא העזת לשאול
ניהול הרשאות, משתמשים וקבוצות בלינוקס
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.