הממירות של Vim ממשיכות: 8 טיפים עוצמתיים נוספים עבור מנהלי Linux (חלק 2)

במאמר הקודם בסדרה זו, סקרנו 7 טיפים ותחבירים להוספה לרפרטואר שלך של vi/m, למעט הסיבות שצוינו לפני כן, ללמוד כיצד להשתמש ביעילות בעורך טקסט ב-Linux הוא יכולת חיונית למנהל מערכות או למהנדס והיא תחום הידע הדרוש לעבור כל תוכנית תעודה גדולה ב-Linux (כמו LFCS, LFCE, RHCSA, ו-RHCE).

אמנם, בואו נתחיל.

8. צור חלונות Vim אופקיים או אנכיים

הטיפ הזה נשתף על ידי Yoander, אחד מקוראיינו, ב-חלק 1. ניתן להפעיל vi/m עם מספר של חלוקות אופקיות או אנכיות כדי לערוך קבצים נפרדים בתוך אותו חלון ראשי:הפעל vi/m עם שני חלונות אופקיים, עם test1 בחלק העליון ו־test2 בחלק התחתון

השתמש ב-vi/m עם שני חלונות אופקיים, עם test1 למעלה ו-test2 למטה

vim -o test1 test2 
Launch Vim Editor in Horizontal Windows

השתמש ב-vi/m עם שני חלונות אנכיים, עם test3 משמאל ו-test4 מימין:

vim -O test3 test4 
Launch Vim Editor in Vertical Windows

אפשר לעבור על הסמן מחלון אחד לאחר בשיטת התנועה הרגילה של vi/m (h: ימינה, l: שמאלה, j: למטה, k: למעלה):

  • Ctrl+w k – למעלה
  • Ctrl+w j – למטה
  • Ctrl+w l – שמאלה
  • Ctrl+w h – ימינה

9. שנה רישיות או קטעים קטנים ב-Vim

אנא שים לב שטיפה זו עובדת רק ב-vim. בדוגמאות הבאות, X הוא מספר שלם.

  • כדי לשנות סדרת אותיות לרישיות, הצב את הסמן על האות הראשונה, ואז הקלד gUX בשיטה ex, ולבסוף הקישו על חץ ימין במקלדת.
  • כדי לשנות X מספר מילים, הצב את הסמן בתחילת המילה, והקלד gUXw בשיטה ex.
  • כדי לשנות שורה שלמה לרישיות, הצב את הסמן בכל מקום בשורה והקלד gUU בשיטה ex.

לדוגמה, כדי להמיר שורה שלמה של קטעים קטנים ל-רישיות, עליך להציב את הסמן בכל מקום בשורה ולהקליד gUU:

Change String to Uppercase in Vim Editor

לדוגמה, כדי להמיר 2 מילים גדולות לתווים קטנים, עליך למקם את הסמן בתחילת המילה הראשונה ולהקליד gu2w:

Convert String to Lowercase in Vim Editor

10. למחוק טקסט במצב התווים של Vim

בעוד שאפשר למחוק תווים או מילים מספר ברגע במצב ex (כלומר dw למחוק מילה), אפשר גם לעשות זאת במצב התווים כך:

  • Ctrl + h: למחוק את התווים הקודם למקום בו הסמן ממוקם כרגע.
  • Ctrl + w: למחוק את המילה הקודמת למקום בו הסמן ממוקם כרגע. כדי שזה יעבוד נכון, הסמן חייב להיות מוקם במקום ריק אחרי המילה שאתה צריך למחוק.
  • Ctrl + u: למחוק את השורה הנוכחית החל מהתווים מייד לשמאלו של המקום בו הסמן ממוקם.

11. להעביר או להעתיק שורות קיימות בתוך Vim

בעוד שאכן ניתן להשתמש בפקודות הידועות dd, yy, ו-p במצב ex כדי למחוק, להעתיק (להעתיק) ולהדביק שורות, בהתאמה, זה עובד רק כאשר הסמן ממוקם במקום בו אתה רוצה לבצע את הפעולות הללו.

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

לדוגמה הבאה, נשתמש בשיר קצר בשם "לנצח" מאת טרי ניקול ת'רינגטון. כדי להתחיל, נגרום ל-Vim להציג את מספרי השורות (:set nu במצב פקודה – קחו זאת כטיפ נוסף). נשתמש ב-:3copy5 (גם במצב פקודה) כדי להעתיק את שורה 3 מתחת לשורה 5:

Move Copy Existing Lines in Vim

עכשיו, בטלו את השינוי האחרון (Esc + u – עוד טיפ בונוס!) והקלידו :1move7 כדי להחליף את שורה 7 עם שורה 1. שימו לב כיצד שורות 2 עד 7 הוזזו למעלה ושורה 1 לשעבר עכשיו נמצאת בשורה 7:

Move Lines in Vim Editor

12. ניווט וספירת תבניות תואמות ב-Vim

טיפ זה מבוסס על פקודת ההחלפה (טיפ #7 ב-חלק 1 של סדרה זו), למעט שלא תוסר שום דבר מאחר והתנהגות ההחלפה נעקפת על ידי האפשרות n, מה שגורם לספירת ההתרחשויות של התבנית שצוינה:

ודאו שאינכם משמיטים אף אחד מהקו נטויים!

:%s/pattern//gn 

לדוגמה,

:%s/libero//gn
Count Matches by Search Pattern in Vim

כדי לעבור מהתרחשות אחת של התבנית לבאה במצב ex, לחצו על n (אות קטנה N). כדי לעבור להתרחשות הקודמת, לחצו על N.

13. פתיחת קובץ ב-Vim בשורה ספציפית

כברירת מחדל, כשאתם משיקים vi/m, הסמן ממוקם בתחילה בשורה האחרונה שנערכה. אם אתם רוצים לפתוח את התוכנית ולמקם את הסמן ישירות בשורה מסוימת, אתם יכולים להשתמש בטריק הבא:

# vim filename +line_number

לדוגמה, פתחו את forever.txt ומקמו את הסמן בשורה 6:

# vim forever.txt +6

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

# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

בואו נבחן מקרוב מה הפקודה לעיל עושה:

  • grep -in pattern filename – מציג את כל השורות מהקובץ שבהן מופיעה התבנית, עם מספר השורה בתחילת כל שורת פלט.
  • sed -n 3p – מציג את השורה השלישית מפלט הצינור הקודם.

לבסוף,

  • cut -d: -f1 מחזיר את השדה הראשון מהצינור הקודם כאשר הקולון (:) הוא מפריד השדות.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
Open Vim Editor in Specified Line

תוצאת הפקודה הקודמת מועברת לאחר מכן ל-vi/m לפתוח את התוכנית בשורה שצוינה.

14. התאמת סביבת Vim

אם אתם משתמשים ב-vi/m לעריכת קבצי תצורה או לכתיבת קוד, תרצו להיות מסוגלים להציג את השורה

  • Vim for Linux Admins: 8 Powerful Tips and Tricks (Part 2)

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

אמנם אפשר לעשות זאת בכל פעם שמפעילים את vi/m, אך קל יותר להגדיר את האפשרויות האלה ב-~/.vimrc כך שיוחלו אוטומטית:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

אפשרויות נוספות להתאמה אישית של סביבת vi/m שלך, תוכל להפנות ל-תיעוד המקוון של vim.

15. קבל עזרה כללית ל-Vim/ עם Vimtutor

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

vimtutor
Vim Editor Help and Options

שים לב שאתה יכול לנווט או לחפש בתוכן של Vimtutor כאילו היית מנווט בקובץ רגיל ב-vi/m.

סיכום

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

I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.

Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/