אני שמח שחזרתם אלי לחלק האחת עשר של המדריך, אם לא עברתם על החלקים הראשונים, מאוד חשוב לעבור עליהם מאחר ובלי החלקים הראשונים לא תצליחו לתרגל ולהבין את החלק הנוכחי, את כל החלקים של המדריך ניתן לקרוא כאן: לינק
במידה וארצה לבצע עריכה לקובץ אריץ vim [file_name], מאחר ואני נמצא בתיקיה שהקבוץ נמצא בה, אני לא צריך לכתוב את הנתיב לקובץ:
(לא צירפתי כאן צילום מסך, כי זה די ברור)
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:".
- עמודה ראשנה מצד שמאל הספרה (מצד שמאל) - המספר של הקובץ הפתוח.
- עמודה שניה הסימן a% - המשמעות היא שזה הקובץ שאנחנו נמצאים בו כרגע ועובדים עליו.
- העמודה האחרונה מצד ימין - השורה שעליה נמצא הסמן.
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 ונעבור לקובץ השני, ונבצע שם את הפעולות שאנחנו רוצים.
אם נצא מ VIM ולאחר מכן נכנס שוב, המספור יעלם, לכן בשביל שהמספרים לא ייעלמו נצטרך לבצע פעם אחת כמה פעולות.
לאחר מכן, נכנס למצב עריכה בעזרת "i" ונרשום הערה בעזרת הסימן " בתחילת השורה. להבדיל משפות תכנות וסקריפטים (בד"כ בסקריפטים ותכנות, הסימן "#" אומר "הערה" לכן המערכת לא מתייחסת לזה) כאן נשתמש ב " לרשום הערה:
במידה ואנחנו מראש רוצים לפתוח קובץ אחד ליד השני, נשתמש באותה הפקודה רק שהפעם נשים "O" בגדול (האות "O" בגדול) vim -O file_name1 file_name2:
זה הכל להפעם.
אין תגובות:
הוסף רשומת תגובה
מגיב\ה יקר\ה תגובה היא דבר מקובל ביותר, ביקורת בונה גם כן, אם בכוונתך לפרסם, או לקלל, או סתם להגיב ולפוגע באחד ממבקרי הבלוג או כותב הבלוג, אתה מוזמן לחסוך ממני את ביזבוז הזמן במחיקת ההודעה שלך, ופשוט לא לכתוב אותה.
תודה :)