27/05/2024

מדריך לינוקס למתחילים בעברית חלק 11 - מדריך מלא ל VIM בלינוקס.


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

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

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

ל VI יש גרסה משופרת, שנקראת VIM ובדיוק עליה אנחנו נדבר כאן היום.

זה הוא המדריך המקיף ביותר שיש 

1) איך להתקין VIM בלינוקס?
2) איך להפעיל VIM בלינוקס?
3) איך לצאת מ VIM בלינוקס?
4) איך לפתוח קובץ עם VIM בלינוקס?
5) איך לערוך קובץ עם VIM בלינוקס?
6) איך לשמור שינויים ב VIM בלינוקס?
7) איך לצאת בלי לשמור שינויים ב VIM בלינוקס?
8) איך לבצע שמירה בשם ב VIM בלינוקס?
9) איך להוסיף טקסט לסוף השורה בלי להיכנס תחילה למצב עריכה ב VIM?
10) איך לבטל שינויים ב VIM?
11) איך להגיע לתחילת השורה ולסוף השורה בלי להיכנס למצב עריכה ב VIM?
12) איך למחוק תווים בלי להיכנס למצב עריכה ב VIM?
13) איך למחוק משפט שלם בלי להיכנס למצב עריכה ב VIM?
14) איך לנווט בתוך VIM עם האותיות במקלדת?
15) איך לאחד שתי קבצים לתוך אחד ב VIM?
16) איך להריץ פקודות מתוך VIM?
17) איך לערוץ קובץ אחר מתוך קובץ פתוח ב VIM?
18) איך לפתוח קובץ טקסט חדש מתוך VIM?
19) איך לעשות העתק\הדבק בתוך VIM?
20) איך לסדר את כל השורות לפי ה- A B C בתוך VIM?
21) איך לחפש טקסט ב VIM?
22) איך להגיע לתחילת מכל מקום ב VIM?
23) איך להגיע לסוף הקובץ מכל מקום ב VIM?
24) איך לפצל את מסך ה VIM לשתי קבצים (אחד מעל השני)?
25) איך לפצל את מסך ה VIM לשתי קבצים (אחד ליד השני)?
26) איך לפתוח את אותו הקובץ פעמיים (אחד ליד השני) ב VIM?
27) איך להוסיף מספרי שורות ל VIM?
28) איך לפתוח קובץ ב VIM בשורה ספציפית מוגדרת מראש?
29) איך לעשות "גזירה" והדבקה של שורה ב VIM?
30) איך לפתוח את VIM מראש עם מסך מפוצל לכמה קבצים?
31) איך לפתוח קבצי VIM מופרדים ללשוניות?
32) איך לפתוח קבצי VIM מופרדים ללשוניות מראש?







1. איך להתקין VIM בלינוקס?

VIM לא מגיע מובנה בתוך אובונטו לדוגמא, ולכן אנחנו נצטרך להתקין אותה בעזרת מנהל החבילות שלנו, במקרה שלי זה APT, לכן אני אריץ sudo apt install vim: 



2. איך להריץ VIM בלינוקס?
לצורך הרצת התוכנה, נקיש את השם של התוכנה vim ונלחץ ENTER:



3. איך לצאת מתוך VIM?
 במידה ונרצה לצאת מהתוכנה נקיש ":" ולמטה נראה שהתוכנה מחכה ל"פלט" ואז נקיש "q" בקטן ונלחץ enter:




4. איך לפתוח קובץ עם VIM בלינוקס?

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

במידה וארצה לבצע עריכה לקובץ אריץ vim [file_name], מאחר ואני נמצא בתיקיה שהקבוץ נמצא בה, אני לא צריך לכתוב את הנתיב לקובץ: 



ונוכל לראות את התוכן של הקובץ (אני אצרף את הקובץ בסוף המדריך, שתוכלו לפתוח אותו להתנסות גם כן):



5 איך לבצע עריכה לקובץ ב VIM בלינוקס?

ברגע שנכנסים ל VIM ורוצים לבצע משהו, יש כמה מצבים שונים, בכניסה הראשונה, אנחנו נכנסים למצב שנקרא מצב "נורמאלי" (Normal mode), במצב הזה אין אפשרות לבצע שום עריכה, לצורך עריכה נלחץ על האות I ואז נכנס למצב "Insert" ויתאפשר לנו לבצע שינויים בקובץ :

במידה ונרצה להפסיק לבצע עריכה לקובץ, נלחץ על ESC ונחזור למצב "נורמאלי",
ליציאה נלחץ על ":" ואז נרשום q כפי שהזכרנו למעלה.


6. איך לשמור שינויים ב VIM בלינוקס?

במידה ונרצה לשמור את השינויים, נלחץ על ESC ואז ":" (נקודתיים) ולאחר מכן נכתוב את האות "w" בקטן, ונלחץ ENTER ונקבל הודעה על כך שהקובץ נשמר:


במידה ונרצה לשמור ולצאת באותה הפקודה, במקום "w:" נכתוב "wq:".

7. לבצע שמירה בשם ב VIM בלינוקס?

במידה ונרצה לשמור את הקובץ בשם אחר, נלחץ על ESC ונרשום  w new_file_name:, בצורה הזאת הקובץ הישן לא ימחק וייווצר ולא מתבצע "שכתוב" לקובץ עצמו אלה נוצר עותק, אני שמרתי את smb.conf.bak בתור smb.conf.bak2:





ונקבל הודעה על כך שזה הוא קובץ חדש עם השם החדש:



במידה ואני רוצה לשמור אותו בתיקייה אחרת, אני ארשום : :w /path_to_folder/file_name.txt

8. איך לצאת בלי לשמור שינויים ב VIM בלינוקס?

במידה וביצענו שינויים והחלטנו שאנחנו לא רוצים לשמור אותם נלחץ על ESC ולאחר מכן "!q:"


9. איך להוסיף טקסט לסוף השורה בלי להכנס תחילה למצב עריכה ב VIM?

לצורך זה, לאחר שפתחנו את הקובץ נלחץ על Shift+a ונגיע ישר לסוף השורה שבה אנחנו נמצאים ונוכל לכתוב:



10 איך לבטל שינויים ב VIM?

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



לאחר מכן אלחץ על ESC ואלחץ על "u" :


והכל יעלם.

11. איך להגיע לתחילת השורה ולסוף השורה בלי להיכנס למצב עריכה ב VIM?

במידה ואתם נמצאים במצב הרגיל ורוצים להגיע לסוף השורה נלחץ על "$" ולתחילת השורה נלחץ על "0" (אפס).

(לא צירפתי כאן צילום מסך, כי זה די ברור)

 12.איך למחוק תווים בלי להיכנס למצב עריכה ב VIM?

לפעמים יש מצב שבו רוצים למחוק תו או משפט אחד בלבד, זה קצת מדי פעולות בשביל ללחוץ על "i" ואז להתחיל למחוק דברים, לכן לצורך זה ניתן ללחוץ על "x" וזה ימחק כל פעם אות אחת (שימו לב שאני לא במצב עריכה):


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

13 איך למחוק משפט שלם בלי להיכנס למצב עריכה ב VIM?

לצורך מחיקה של שורה שלמה בלי להיכנס למצב עריכה, נלחץ פעמיים על "d" ואז תמחק שורה שלמה

לא צירפתי כאן צילום מסך כי זה די ברור


14.איך לנווט בתוך VIM עם האותיות במקלדת?

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

מקרא:

k  - לזוז שורה למעלה

j - לזוז שורה למטה

l - לזוז ימינה בשורה (חייב למקם את הסמן בשורה שבה יש טקסט)

h - לזוז שמאלה בשורה (חייב למקם את הסמן בשורה שבה יש טקסט)

15 איך לאחד שתי קבצים לתוך אחד ב VIM?

בלינוקס יש עוד מצב שנקרא מצב "פקודה" (Command mode), במצב הזה אפשר לבצע כמה דברים מעניינים, כרגע נגיד ויש לנו שתי קבצי קונפיגורציה שאנחנו רוצים לאחד, בתור התחלה, נפתח קובץ אחד ולאחר מכן נלחץ על ":" ו על האות "r" לאחר מכן במידה והקובץ השני נמצא באותה התיקייה פשוט נקליד את השם שלו והתוכן שלו יופי בתוך הקובץ שבו אנחנו נמצאים, כמובן שצריך לשים לב איפה אתם נמצאים בקובץ כי מה שיקרה, זה שהוא יוסיף את התוכן לאחר הסמן שלכם, לצורך דוגמא הוספתי את הכותרת "file 2" בתוך קובץ מסוים, ועכשיו אני רוצה לאחד אותו:

נלחץ על ":" ואז על r (נוכל לראות למטה שהמערכת ממתינה לשם הקובץ או לנתיב במידה והקובץ לא נמצא בתיקייה שבה אנחנו נמצאים, במידה ואתם לא זוכרים את השם עד הסוף, אפשר להתחיל להקליד את השם וללחוץ על TAB להשלמה) :


אם באותו הרגע תלחצו עם החיצים במקלדת למעלה או למטה, תוכלו לקבל עוד תיקיות ואז תוכלו לנווט לתיקיות אחרות במידה והקובץ נמצא במקום אחר (מאוד נוח).

לאחר שנלחץ Enter יתווסף הקובץ השני:

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



במידה ונלחץ על ":" ואז על "w" זה ישמור את הקובץ מקורי שפתחתי, ואולי זה לא משהו שאני רוצה לעשות, לכן במידה ואני רוצה לשמור את כל האיחוד הזה בתור שם אחר, אני אלחץ על ":" ואז על "w" עוד פעם ופשוט אתן שם אחר לקובץ:


לאחר שנלחץ על ENTER, נקבל אינדיקציה שנוצר קובץ חדש:


לאחר מכן נלחץ על !q: בשביל לצאת ללא שמירה של הקובץ הקיים ועכשיו נוכל לראות שנוצר הקובץ החדש:



16.איך להריץ פקודות מתוך VIM?

בעיקרון המחשבה הראשונה שעולה כשקוראים את הכותרת של הסעיף הזה זה "למה להריץ פקודה מתוך עורך טקסט?" למען האמת יש לזה תשובה, מאחר וכשאנחנו פותחים את העורך, אנחנו לא יכולים לבצע שום דבר חוץ מלערוך טקסט, אז כל פעולה הכי קטנה מצריכה לשמור + לסוגר את הקובץ ואז לבצע את מה שאנחנו רוצים ואז לפתוח שוב, להכנס למצב עריכה וכד', זה די מעצבן, לכן יש אפשרות להריץ פקודות ישר מתוך VIM, משהו שממש מעלה פרודוקטיביות, ניתן דוגמא, אני עורך קובץ של דברים שקשורים ברשתות, ואני צריך לברר מה כתובת ה IP של ה DG (שער ברירת מחדל "Default Gateway") אלחץ על ":" ואז על "!" ופשוט אכתוב את הפקודה ifconfig:


לאחר מכן אלחץ ENTER ואקבל את המידע, כפי שכתוב במידה ואלחץ ENTER אחזור חזרה לעריכה של הקובץ:


ניתן עוד דוגמא עם הפקודה ls -l (דיברנו עליה בפרק 10):


אנחנו רואים כאן בחלק העליון את ה"שאריות" מהפקודה הקודמת שהרצנו ואת הפלט של הפקודה הנוכחית שאנחנו מריצים.

גם אם נריץ פקודות שצריכות לבצע משהו, כמו sudo apt update (למדנו מה זה בפרק על APT) הוא יבצע גם כן:



17. איך לערוץ קובץ אחר מתוך קובץ פתוח ב VIM?

ברגע שפותחים קובץ ב VIM, הוא נטען לזכרון ה RAM ובעצם נקרא Buffer, ברגע שאתם פותחים קובץ נוסף מתוך ה VIM הוא נטען ל RAM גם כן, ובעצם נמצא ברקע.

במידה ואתם צריכים לערוך קובץ אחר בזמן שאתם נמצאים באיזשהו קובץ, במצב רגיל, צריך לצאת מהקובץ הנוכחי ולפתוח קובץ אחר, די מעיק האמת, לכן יש אפשרות לבצע עריכה לקובץ אחר בזמן שאתם כבר נמצאים בקובץ כלשהו, תחשבו על זה שאתם בתוך קובץ קונפיגורציה וצריך לערוך קובץ אחר באותו הזמן..אז לצורך כך אנחנו נלחץ ":" ואז "e"  ואת שם הקובץ שאנחנו רוצים לערוך, כמו פעם קודמת אנחנו יכולים להתחיל לכתוב את שם הקובץ וללחוץ על TAB ונקבל השלמה של הקובץ במידה ואנחנו נמצאים באותה התיקיה עם הקובץ:


אני אפתח את הקובץ שמסתיים במספר "3" בשביל שנראה את ההבדל:


ניתן לראות שזה הוא הקובץ השלישי המאוחד ועכשיו אני יכול לבצע בו עריכה.

בשביל לחזור למסמך הקודם, אני אכתוב ":" ואז bp :


ואחזור לקובץ הקודם, להמשך עריכה, אם אני רוצה לעבור לקובץ הבא, אני יכול להקליד ":" ואז bn:


ובעצם בצורה הזאת אפשר לעבור לקובץ הבא שיש לנו באותה התיקיה בשולחן העבודה, בעצם אפשר להקיש bn: בשביל לעבור על כל הקבצים, ובגדול לעבור לקובץ הבא זה "bn:" ולעבור לקובץ הקודם זה "bp:".

בשביל לראות את כל הקבצים הפתוחים, אנחנו יכולים להריץ ":" ואז ls ונקבל רשימה של כל הקבצים הפתוחים:


מקרא:

  • עמודה ראשנה מצד שמאל הספרה (מצד שמאל) - המספר של הקובץ הפתוח.
  • עמודה שניה הסימן a% - המשמעות היא שזה הקובץ שאנחנו נמצאים בו כרגע ועובדים עליו.
  • העמודה האחרונה מצד ימין - השורה שעליה נמצא הסמן.
בגלל זה הפקודות הן "bp" ו "bn" המשמעות היא "Buffer Previous" ו "Buffer Next".

אחרי שאני מציג את הרשימה של הקבצים הפתוחים, מופיעה הודעה למטה ירוקה
"Press ENTER or type command to continue"



נגיד שאני רוצה לעבור לקובץ מספר "2" באותו המצב אני אקיש ":" ואז bp ואת המספר שאני רוצה לעבור אליו bp2:


וכמובן נעבור לקובץ הרצוי.

18. איך לפתוח "דף" חדש מתוך VIM?

במידה והחלטתם שאתם צריכים ליצור קובץ טקסט חדש, ניתן לכתוב ":" ואז "enew" ואז תקבלו קובץ טקסט ריק:


לאחר מכן נלחץ על "i", נכנס למצב "עריכה" ונוכל להתחיל לערוך את הקובץ,

במידה וניסיתם לצאת או להקליד פקודה אחרת וקיבלם הודעת שגיאה אדומה ומפחידה כזאת:

 "E37: No write since last change (add ! to override)  "



זה אומר שביצעתם שינוי, ופשוט לא ביצעתם שמירה לקובץ, אז נבצע שמירה וניתן לקובץ שם חדש בצורה הזאת:

w new_name_for_the_file.txt:



 ואז תוכלו לעבור או לצאת מהקובץ או לדפדף לקובץ הבא בעזרת bn: או bp:.

19. איך לבצע העתק הדבק בתוך VIM?

לצורך העתקה והדבקה נצטרך להיכנס למצב אחר שנקרא "Visual mode" בעזרת האות "v" במקלדת.
ברגע שנכנס למצב "Visual" בעזרת החיצים נוכל להתחיל לסמן את הטקסט שאותו נרצה להעתיק:


לאחר שנבחר את מה שאנחנו רוצים להעתיק, נלחץ על "y" ואז יהיה כתוב למטה כמה שורות "נמשכו" (באנגלית yanked),

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


20 איך לסדר את כל השורות לפי ה- A B C בתוך VIM?

לצורך ההדגמה יש לי כאן כמה מילים שהאות הראשונה שלהן היא לפי ה" ABC" באנגלית, אך הן בסדר הפוך



במידה ונרצה לסדר את כלל השורות לפי ה-ABC, תחילה נשים את הסמן שלנו ליד המשפט שממנו נרצה להתחיל לסמן את הטקסט, נכנס למצב "Visual" בעזרת האות "v" ונסמן את כל השורות שאנחנו רוצים:


לאחר מכן נלחץ על ":" ונראה למטה שאנחנו נכנסים מצב שבו אפשר לרשום פקודות, ונרשום "sort ui", מה שיגרום לסדר במילים שסימנו:


נוכל לראות שכל המילים מסודרות לפי ה"ABC"

21. איך לחפש טקסט ב VIM?

חיפוש הוא דבר מאוד חשוב, נגיד ואנחנו רוצים למצוא שם משתמש כלשהו לצורך חיפוש נלחץ על "/" ונתחיל לכתוב את מה שאנחנו רוצים, what_to_search/ לאחר שמצאנו נלחץ על ENTER והמערכת תיקח אותנו לשם, נלחץ על "i" ונתחיל לערוך את השורה או את מה שאנחנו צריכים:




21.א איך לבצע חיפוש והחלפה של טקסט ב VIM?

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

לצורך חיפוש והחלפה נלחץ על ":" לאחר מכן נרשום "%" ואת האות "s" נרשום את מה שאנחנו מחפשים, לאחר מכן "/" ובמה אנחנו רוצים להחליף בסוף נוסיף עוד "/" ונרשום "g", לדוגמא אם אני רוצה להחליף את השם "lev" בשם "Uri" זה יראה כך: s%/lev/uri/g:



ברגע שהתחלתי לרשום את המילה "lev" המערכת מסמנת את מה שאני רוצה להחליף ולאחר שנלחץ על ENTER השם "Lev" יוחלף בשם "Uri" בגלל שלינוקס מבדילה בין אותיות גדולות וקטנות, חובה לשים לב לצורת הכתיבה כשאתם מחפשים את מה שאתם רוצים, בשביל לפשט אני אתן הסבר קצת יותר קל: s%/what_to_search/what_to_change/g:


  • s - יחליף את ה"ביטוי" הראשון בשורה בביטוי שאנחנו רוצים נגיד lev ב gabi, יתחלף כך: /s/lev/gabi
  • g - יחליף את ה"ביטוי" שאנחנו רוצים בכל הביטויים בשורה s/lev/gabi/g
  • % - יחליף את הטקסט בכל המסמך.
  • c - נתבקש לאשר כל שינוי.

22. איך להגיע לתחילת הקובץ מכל מקום ב VIM?

לפעמים קורה מצב שבו אנחנו צריכים לגשת לתחילת הקובץ מכל מקום שהוא בטקסט, תחילה נלחץ על ESC כדי לצאת ממצב עריכה (במידה ואתם נמצאים בו) ולאחר מכן נלחץ פעמיים על "g"

ניתן ללחוץ גם על ctrl+home

23. איך להגיע לסוף הקובץ מכל מקום ב VIM?

במידה ונצטרך לגשת לסוף הקובץ מכל מקום, יש צורך ביציעה ממצב עריכה (במידה ואתם נמצאים במצב הזה) בעזרת ESC ונלחץ על shift+g.

ניתן ללחוץ גם על ctrl+end

24 איך לפצל את מסך ה VIM לכמה תצוגות?

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


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


בשביל לעבור מקובץ לקובץ נלחץ על ctrl+ww.

בשביל לצאת מקובץ כלשהו נלחץ על ":" ונכתוב "q", בשביל לצאת מהקובץ השני, נצטרך "לצאת" גם ממנו.

25. איך לפצל את מסך ה VIM לשתי קבצים (אחד ליד השני)?

בשביל להציג קובץ "ליד" קובץ כי לכל אחד נוח משהו אחר, נבצע את אותה הפעולה כמו למעלה רק שנכתוב vs:


ונקבל תצוגה של "קובץ ליד קובץ":


המעבר מקובץ לקובץ היא בעזרת ctrl+ww כמו בפעם הקודמת.

26. איך לפתוח את אותו הקובץ פעמיים (אחד ליד השני) ב VIM?

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


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


ואז בשביל לעבור לצד השני נצא ממצב עריכה, לאחר מכן נלחץ על ctrl+ww ונעבור לקובץ השני, ונבצע שם את הפעולות שאנחנו רוצים.

27. איך להוסיף מספרי שורות ל VIM?

מי שכותב תוכנה או סקריפטים בחיים שלו, יודע כמה מספור של שורות זה דבר נוח, במקום להגיד למישהו "תחפש את המשתנה X בקובץ" הרבה יותר קל להגיד "תבדוק בשורה 25", בדיוק לצורך זה אפשר למספר שורות ב VIM.

בשביל להפעיל את מספור השורות, נכתוב ":" ואז "set number"


אם נצא מ VIM ולאחר מכן נכנס שוב, המספור יעלם, לכן בשביל שהמספרים לא ייעלמו נצטרך לבצע פעם אחת כמה פעולות.

27.א. יצירת קובץ קונפיגורציה של VIM להתאמה אישית

ברגע שאנחנו פותחים VIM המערכת מחפשת קובץ שנקרא vimrc, זה הוא קובץ שהוא ה"פרופיל" של VIM במשתמש שלנו והוא יושב בתיקיית הבית שלנו, במידה ואין לנו קובץ כזה, המערכת מעלה את VIM עם הגדרות ברירת מחדל, אך במידה והוא קיים, המערכת תבדוק את ההגדרות שיש שם ותפתח את התוכנה עם אותן ההגדרות שיש שם.

אז כרגע נתחיל ביצירת הקובץ הזה ונשמור אותו בתוך תיקיית הבית שלנו : /home/user_name/ תחת השם vimrc. (בפרקים הקדומים למדנו שקבצים שמתחילים עם "נקודה" אלו קבצים מוסתרים).
נריץ את vim וניצור קובץ חדש:


לאחר מכן, נכנס למצב עריכה בעזרת "i" ונרשום הערה בעזרת הסימן " בתחילת השורה. להבדיל משפות תכנות וסקריפטים (בד"כ בסקריפטים ותכנות, הסימן "#" אומר "הערה" לכן המערכת לא מתייחסת לזה) כאן נשתמש ב " לרשום הערה:
Add line number"
set number

לאחר מכן נשמור בעזרת את הקובץ בתיקיית הבית :



והחל מעכשיו, במידה ונפתח קובץ כלשהו, הקבצים תמיד יפתחו עם מספרי שורות.



28. איך לפתוח קובץ ב VIM בשורה ספציפית מוגדרת מראש?

נגיד ואנחנו זוכרים שיש לנו בשורה 98 מידע שאנחנו צריכים להחליף, באמת אפשר לדפדף עד לאותו המספר, אבל מה לעשות אם השורה היא 10265? יקח לכם המון זמן להגיע לזה, לכן ניתן לפתוח את vim בשורה ספציפית בצורה הבאה:
נרשום את vim לאחר מכן הסימן "+" ומספר השורה הרצויה ולבסוף נוסיף את שם הקובץ: vim +13 file_name.txt



לפי הפקודה בתצלום המסך, הקובץ יפתח והסמן שלנו יהיה בשורה 13:



29. איך לעשות "גזירה" והדבקה של שורה ב VIM?

במידה ואתם רוצים לבצע "גזור" \ "הדבק" לשורה כלשהיא, נצא ממצב "עריכה" (במידה ואתם במצב עריכה) נעמוד בתחילת השורה ונלחץ "d" פעמיים, לאחר מכן נרד לשורה רצויה ונלחץ על "p" בשביל להדביק (לידע כללי, כאן הקיצור אומר "Put") את מה שהעתקנו.

בצורה יותר פשוטה:
1) נשים את הסמן בתחילת השורה הרצויה, ונלחץ על "d" פעמיים.
2) נגיע לשורה הרצויה ונלחץ על "p".

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

30. איך לפתוח את VIM מראש עם מסך מפוצל לכמה קבצים?

ישנן שתי אפשרויות לפתוח כמה קבצים ביחד במסך מפוצל מראש, האופציה הראשונה לפתוח שתי קבצים כאשר המסך יפוצל אנכית, קובץ אחד למעלה, וקובץ אחד למטה, בעזרת הפרמטר "o" (האות "o" בקטן): vim -o file_name1 file_name2:


וכצפוי הקבצים יפתחו אחד מעל השני:


במידה ואנחנו מראש רוצים לפתוח קובץ אחד ליד השני, נשתמש באותה הפקודה רק שהפעם נשים "O" בגדול (האות "O" בגדול) vim -O file_name1 file_name2:


וכצפוי המסך יפתח כאשר הוא מפוצל לצד עם שתי קבצים:


30.א איך לפתוח יותר משתי קבצים ביחד ב VIM?

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


וכמובן, הכל יפתח אחד ליד השני ויפוצל בשלושה מסכים?



31. איך פתוח קבצי VIM בתוך לשוניות?

נגיד ואנחנו רוצים לעבוד על כמה קבצים ביחד, בדוגמאות הקודמות ראינו שאכן אפשר לעשות את זה אבל אתה לא באמת זוכר את כל השמות הארוכים של הקבצים או שנגיד ואתה צריך לרשום בתוך קובץ אחד, שם של קובץ אחר, בשביל מה לטעות אם אפשר לראות? לצורך זה יש אפשרות לפתוח קבצים עם "טאבים" (לשוניות) בצורה מאוד נוחה, לצורך זה נלחץ על ":" ונרשום tabe file_name (במידה והקובץ נמצא במקום אחר, צריך לרשום את כל הנתיב לקובץ):


וכמובן הקובץ החדש יפתח בתור "לשונית" לצד הקובץ הנוכחי:



בשביל לעבור ללשונית הבאה, נלחץ על ":" ונכתוב "tabn" (האות "n" אומרת "NEXT") ובשביל לעבור ללשונית הקודמת נכתוב "tabp" (האות "p" אומרת "Previous"):



32. איך לפתוח קבצי VIM מופרדים ללשוניות מראש?

בשביל לפתוח כמה קבצים מראש בלשוניות נשתמש באופרטור "p" ואז שמות הקבצים,
בצורה זאת: vim -p file_name1 file_name2 file_name3



וכמובן שכל הקבצים יפתחו בלשוניות אחד ליד השני לפי הסדר של הקבצים שרשמנו בפקודה:




זה הכל להפעם.

המייל שלי לכל שאלה: levl@leidertech.co.il

כמו תמיד סרטון מצולם של המדריך: