מדריך למיון קווים ב-Vim

Mdryk Lmywn Qwwym B Vim



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

לדוגמה, אם ברצונך למיין את המסמך כולו, השתמש ב- :סוג פקודה במצב NORMAL. מצד שני, אם אתה רוצה למיין קווים ספציפיים בלבד, השתמש ב- :x,y מין פקודה, איפה איקס ו ו הגדר את הטווח ממספר שורה איקס ל ו .







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



הערה: ההוראות והפקודות המוזכרות במדריך זה מבוצעות על לינוקס (Ubuntu 22.04). Vim הוא עורך טקסט חוצה פלטפורמות, והפקודות הללו יעבדו ללא שגיאות גם ב-macOS וב-Windows.



מיין את כל השורות





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

:סוג



כברירת מחדל, ה סוג הפקודה תמיין שורות לפי סדר לקסיקוגרפי.

שים לב שאם לקובץ שלך יש שורות ריקות, פקודת המיון תמקם את השורות הריקות בראש מיון הטקסט האמיתי.

מיין שורות נבחרות

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

ל-Vim יש גם מצב בחירה ספציפי לקו שנקרא קו ויזואלי מצב. ללחוץ V (shift+v) כדי לאפשר את קו ויזואלי מצב לבחירת הקווים.

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

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

מיין את הקווים בטווחים

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

לדוגמה, כדי למיין שורות משורה מספר 1 לשורה מספר 4, השתמש ב- :1,4 מיון פקודה.

: 1 , 4 סוג

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

מיין הפוך

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

:סוג !

מיין לפי מיקום

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

כדי לבדוק את אזור האיסוף הנוכחי, השתמש ב- :שפה פקודה.

:שפה

כדי למיין עם השימוש המקומי הנוכחי:

:מזל ל

הערה: ייתכן שאופציה זו לא תפעל כראוי במערכות המבוססות על macOS.

מיין לפי מספר

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

:מיין נ

כדי למיין בסדר יורד, השתמש ב- ! סמל לאחר הפקודה.

:סוג ! נ

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

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

כמה אפשרויות אחרות למיון מספרי מוזכרות בטבלה הבאה.

ו מיון מספרי צף
ב מיון מספרים בינאריים
O מיון מספרים אוקטליים
ח מיון מספרים הקסדצימליים

מיין לפי סימנים

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

נניח שהגדרת שני סימנים א ו ב .

אז, כדי למיין את כל השורות מסימן א לסמן ב , השתמש בפקודה הבאה.

: 'א,' ב סוג

הציטוט היחיד ( ' ) משמש לגישה לסימנים.

מיין לפי ביטוי רגולרי (RegEx)

הביטוי הרגולרי (RegEx) הוא אחת הדרכים הנפוצות למיין קווים על ידי הגדרת דפוס עם סוג פקודה.

לדוגמה, כדי למיין את השורות ביחס לעמודה הכוללת אלפבית וספרות, השתמש ב- /[a-z]*[0-9]+/ דפוס עם סוג פקודה. ה ר דגל אחרי ה סוג הפקודה משמשת כדי להורות לפקודה למיין בהתבסס על התבנית שהוזכרה.

:מיין ר / [ א-ז ] * [ 0 - 9 ] + /

כפי שניתן לראות בתמונה לעיל, העמודה האחרונה ממוינת בסדר אלפביתי. כדי למיין את העמודה באופן מספרי, פשוט הכנס את ה נ דֶגֶל.

הערה: דילגתי על השורות הראשונות על ידי הגדרת הטווח משורה 2,5.

ה ר דגל מאפשר לך למיין את הקובץ לפי התבניות הנתונות. בלי ה ר flag, פקודת המיון תמיין את כל השורות שאינן תואמות לתבנית.

הסר את השורות הכפולות

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

:מגוון u

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

מיין שורות על סמך עמודה

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

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

בואו נבין איך זה עובד ב-Vim.

כדי להשתמש בכל פקודה חיצונית ב-Vim, ! הסמל משמש לפני פקודה זו. נניח שיש לנו קובץ מופרד בפסיקים (CSV) וברצוננו למיין את הקובץ ביחס לעמודה השלישית. הפקודה תהיה

: %! סוג ',' -k3

ה % מציין את כל המאגר כבחירה. ה הדגל משמש להגדרת מפריד השדות, שיכול להיות פסיק, נקודתיים או אפילו רווח. ה דגל הוא המפתח המציין את המיקום בקו, ו k2 פירושו השדה השני אחרי המפריד שצוין.

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

: 2 , 5 ! סוג ',' -k3

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

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

:סוג / \v^ ( . { - } , ) { 2 } /

בפקודה למעלה:

  • \in מייצג את הכרטיסייה האנכית
  • ^ מציין את תחילת השורה
  • (.{-},) היא קבוצה שתהיה בה .{-} הוא גרסה לא חמדנית של .* ו , הוא שדה ההפרדה
  • {2} מייצג את 2 העמודות הראשונות שיש לדלג עליהן

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

ההבחנה הבסיסית בין .* ו .{-} האם זה ה .{-} יעבד את אלגוריתם ההתאמה הראשון הקצר ביותר, בעוד .* יתאים ככל האפשר. לדוגמה, במחרוזת wxyz the x.*y יתאים לכל המחרוזת תוך כדי x.{-}y יתאים ל-xy בלבד.

מיון שורות לא רגיש לאותיות גדולות

אם אתה ממיין שורות שמתחילות באותיות עליונות ותחתונות, אזי פקודת המיון תמיין קווים באותיות רישיות תחילה. ובכן, כדי להתעלם מהרגישות לרישיות, השתמש ב- אני דֶגֶל.

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

סיכום

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

למידע נוסף על מיון ב-Vim, הפעל את :עזור למיין פקודה.