מה הם Vim Registers

Mh Hm Vim Registers



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

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

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







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



מפעילי רישום Vim

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

yy מענק (מעתיק) את השורה
dd מוחק את השורה
cc מוחק את השורה ומאפשר את מצב ה-INSERT
ס מוחק את התו ומתחיל במצב INSERT להחלפה
איקס מוחק את התו מתחת לסמן
ש מאקרו; מאחסן את קבוצת הפקודות לאגר ספציפי

כדי להדפיס את הטקסט המאוחסן, ע אוֹ פ משתמשים באופרטורים:

ע שים (הדבק) את הטקסט אחרי הסמן
פ שים את הטקסט לפני הסמן

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

רישומי רישום

כדי לרשום את כל הרשמים השתמש ב- :הירשם אוֹ : reg הפקודה, וכדי לרשום את האוגר הספציפי השתמש ב- : reg ', כאשר הוא שם הרישום (למשל, 0-9, a-z).

באותו אופן, כדי לרשום את התוכן של רישום מרובים, השתמש ב- :reg ' ' ' פקודה.

ברשימת הרישום, תראה שלוש עמודות, שם, סוג ותוכן . כאן, ה-Type פירושו סוג התוכן, לא סוג האוגר. שְׁלוֹשָׁה סוגים ניתן לשנות את התוכן באמצעות אוגרים.

  • ל : מבחינה קו
  • ג : מבחינה אופי
  • ב : מבחינה בלוק

לדוגמה, אם התוכן מועתק באמצעות פעולה נקודתית (yy) אז סוג התוכן יהיה ל , אם זה מבחינת אופי (כן) אז הסוג יהיה ג , ואם התוכן מועתק באופן בלוק (ctrl+v ו-y) אז הסוג יוצג בתור ב .

עבודה עם Vim Registers

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

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

'

לדוגמה, להעתיק שורה לשם רישום עם להשתמש ' zyy . באופן דומה, אם בחרת שורות מרובות במצב VISUAL, השתמש ב-' zy כדי לאחסן את השורות ב-Z register.

גישה למרשם
כדי לגשת לרשום Vim, הציטוט (') סמל משמש עם שם הרישום ו עמ מַפעִיל.

'עמ'

לדוגמה, אם שם הרישום הוא z וכדי לגשת לתוכן של הרישום הזה, השתמש ב-' zp במצב NORMAL. עם זאת, כדי לבצע את אותה פעולה במצב INSERT, השתמש ctrl+r z .

' מצב נורמלי לאחסון התוכן השתמש בציטוט (') , שם רישום (א-ז) , והמפעיל (y, yy, d, c, או cc)
'עמ' מצב נורמלי כדי להדביק את התוכן של רישום השתמש בציטוט (') , שם רישום (א-ז) ו עמ מַפעִיל
ctrl+r מצב INSERT כדי להדביק את התוכן של רישום, השתמש ctrl+r ורשום שם (א-ז)

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

סוגי רישומי Vim

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

  1. הרשמה ללא שם ('')
  2. רישומים ממוספרים (0-9)
  3. רישום מחיקה קטן ('-)
  4. רישומים בעלי שם (א-ז או א-ז)
  5. רישום לקריאה בלבד (':, '., '%)
  6. רישום קבצים חלופי ('#)
  7. רישום ביטויים ('=)
  8. רישומי בחירה ושחרור ('*, '+, +~)
  9. רישום חור שחור ('_)
  10. רישום דפוסי חיפוש אחרון ('/)

1. הרשמה ללא שם ('')

זהו אוגר ברירת המחדל של Vim לאחסון טקסט שנמשך או נמחק באמצעות y, yy, d, dd, s, אוֹ איקס פקודות.

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

כדי להדביק את תוכן הרישום ללא שם, השתמש בפקודה put (p או P) פקודה. כברירת מחדל, ה ע הפקודה מכניסה את מאגרי התוכן למאגר ללא שם. לחלופין, ניתן להדביק את הנתונים המאוחסנים במאגר ללא שם באמצעות הפקודה ''p.

בדוגמה הבאה, העתקתי שורה באמצעות yy הפקודה ולאחר מכן שים אותו 5 פעמים באמצעות ספירה 5 עם p (5p).

2. רישומים ממוספרים (0-9)

האוגרים הממוספרים משמשים לאחסון הטקסט האחרון שנמשך או נמחק.

הקופה 0 שונה מרשמים 1-9 . הקופה 0 תמיד יאחסן את הטקסט האחרון שנמשך. לדוגמה, אם אני מושך קו באמצעות yy הפקודה, השורה תישמר בשני ה- ללא שם וה 0 רושמת.

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

הרשמים 1-9 לאחסן את הטקסט האחרון שנמחק. לדוגמה, אם אני מוחק שורה באמצעות ה dd הפקודה, הטקסט שנמחק יאוחסן הן ברשימה ללא שם והן ברישום 1 . הרשמה 1 תשמור את הטקסט האחרון שנמחק. אם אמחק שורה נוספת, הטקסט שנמחק קודם יעבור לרישום 2 , והאחרון יישמר ברשומה ללא שם 1 . בעיקרון, האוגרים הממוספרים (1-9) לאחסן את ההיסטוריה של טקסט שנמחק.

בואו נבין את האוגר הממוספר עם דוגמה. קובץ הטקסט הבא של Vim כולל 10 שורות; בואו למשוך את שורה 3 באמצעות yy פקודה. כעת, בוא נבדוק את מצב האוגרים באמצעות הפקודה :reg.

הקו המושך נמצא כעת ב- ללא שם ו 0 רושמת. כעת, בואו נמחק את כל השורות אחת אחת באמצעות ה- dd פקודה. אז, אחרון שורה 10 יהיו בפנקס ללא שם וברישום 1. במקביל, שורות שנמחקו יישמרו בפנקסים 2-9 בסדר עולה.

ניתן לגשת לקווים אלו באמצעות ע פקודה. לדוגמה, לשים את הטקסט של רישום 9 להשתמש '9p . יתר על כן, אם אתה רוצה לשים את הערך של רישום 9 5 פעמים, השתמש '95p .

3. רישום מחיקה קטן ('-)

אוגר זה מאחסן את הטקסט שנמחק אם הוא קטן משורה, באמצעות פקודות כמו x, daw, diw, dab, ו שוב . יתר על כן, אם תמחק טקסט כלשהו באמצעות חָזוּתִי מצב בחירה, ואם הוא פחות משורה, אז הוא יישמר בפנקס המחיקה הקטן. ב-Vim, שורה פירושה משפט שלם המסתיים בנקודה.

לדוגמה, בקובץ הבא בחרתי 3 מילים שיתוף פעולה ותמיכה מקו מספר 9 ומחק אותם באמצעות ד מַפעִיל. אוגר המחיקה הקטן ישמש לשמירת בחירה זו מכיוון שהיא אינה ארוכה יותר משורה. להשתמש ב :reg '- פקודה לרשימת התוכן של אוגר המחיקה הקטן.

4. רישומים בעלי שם (א-ז או א-ז)

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

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

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

בואו נבין את זה באמצעות דוגמה. מהקובץ הבא אחסנתי שורה 8 ברישום איקס באמצעות ' xyy .

כדי להוסיף טקסט אחרי שורה זו, אבחר תחילה כמה מילים במצב VISUAL. כדי להוסיף את הטקסט שנבחר, אשתמש ב- 'קסי פקודה.

כדי להחליף את הטקסט, אשתמש שוב ב-' xyy .

5. רישום לקריאה בלבד (., %, 🙂

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

. מאחסן את הטקסט האחרון שהוכנס
% מאחסן את שם הקובץ
: מאחסן את הפקודה האחרונה שבוצעה

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

כדי להוסיף את הטקסט האחרון שהוכנס, השתמש ב- '.p פקודה.

כדי להדפיס את שם הקובץ, השתמש ב- '%p פקודה.

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

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

6. רישום מאגר חלופי ('#)

המאגר החלופי הוא קובץ שנפתח במאגר הנוכחי. האוגר '# מאחסן את שם הקובץ של הקובץ המאוחסן במאגר הנוכחי. בואו נפתח קובץ נוסף באותו מאגר באמצעות ה- :e ~/.vimrc הפקודה, שים לב ששם הקובץ הנוכחי הוא file.txt .

כדי לסגור את המאגר שנפתח, השתמש ב- :bdelete אוֹ :bwipeout פקודה. כעת, ניתן לראות את שם הקובץ החלופי שנשמר ב- '# הירשם.

7. רישום ביטויים ('=)

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

ניתן לגשת לרשום זה באמצעות '= במצב NORMAL, ו ctrl+r = במצב INSERT.

לדוגמה, כדי למצוא את ההבדל בין שני מספרים, הקש '=, וסימן השווה יופיע בשורת המצב; כעת הקלד את שני המספרים עם סימן המינוס (-) ולחץ על להיכנס מַפְתֵחַ. כעת, כדי להדפיס את ההבדל, הקש ע או להשתמש ב :לָשִׂים פקודה.

כדי לגשת לערך של אוגר הביטויים, השתמש ב- :reg '= פקודה.

באופן דומה, כדי לקבל את הערך המוחלט של שני מספרים, השתמש ב- =abs(value1-value2) ביטוי.

באותו אופן, כדי לאחסן את הפלט של פקודת המערכת, ניתן להשתמש ברישום (ביטוי) זה. למשל, אם אני רוצה לקרוא את תוכן הקובץ אשתמש =system('cat <שם קובץ>') , בלחיצה על מקש Return יישמר תוכן הפלט. משתמש ב ע אוֹ :לָשִׂים הפקודה, ניתן למקם את תוכן הפלט במאגר.

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

8. רישומי בחירה ושחרור ('*, '+, '~)

ל-Vim יש שני אוגרי בחירה '* (quotestar) ו '+ (quoteplus) המשמשים לאחסון הטקסט מה-GUI. אוגרים אלו משמשים להעתקת טקסט מתוכנות חיצוניות כגון דפדפנים או כל מעבד תמלילים אחר.

לדוגמה, אם אתה מעתיק מבחר טקסט מדפדפן, באמצעות ctrl+c אוֹ cmd+c זה יאוחסן ב- '* הירשם. עם זאת, אתה לא יכול להשתמש ע אוֹ :לָשִׂים כדי להדביק את הטקסט הזה בעורך Vim. להשתמש '*עמ' להכניס את הטקסט לעורך Vim המועתק מיישומים חיצוניים.

חשוב לציין ששניהם '+ ו '* אוגרים מחוברים ללוח, אז שניהם ('*p, '+p) ניתן להשתמש כדי להדביק את הטקסט בעורך Vim. באופן דומה, כדי לשים טקסט מ-Vim, השתמש '* יא כדי למשוך שורה ולאחר מכן להדביק אותה בכל יישום GUI, השתמש ctrl+v או cmd+v.

חשוב לציין שאם שניהם נרשמים (* & +) עושים את אותו הדבר, אז מה הטעם? ל-Vim יש שני אוגרי בחירה '*, '+ עושה את אותה עבודה וזה בגלל מערכת החלונות X11. ה-X11 מספק שתי שיטות לאחסון הטקסט, האחת היא בחירות והשני הוא חיתוך-buffers . הבחירות נמצאות בבעלות האפליקציה ואובדות עם סגירת האפליקציה, בעוד שמאגרים חתוכים שומרים על הטקסט מאוחסן בשרת X. עבור שני סוגי אחסון אלה, נעשה שימוש באוגרי '* ו'+. כדי ללמוד עוד על זה, השתמש :עזרה x11-בחירה פקודה.

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

אם קשה לך להדביק מהאפליקציה החיצונית באמצעות שלושה מקשים שונים, אז אתה יכול למפות את הבחירה שיש לאחסן במאגר ללא שם.
פתח את ה vimrc קובץ, סט מקום clipboard=ללא שם בו, ושמור את הקובץ. כעת, בכל פעם שאתה מעתיק מיישום חיצוני, ניתן להדביק אותו בקלות באמצעות :לָשִׂים פקודה או מקש p.

הערה : ה-Drop register (~) יהיה זמין רק אם ה-Vim מורכב עם +dnd. נכון לעכשיו, הוא זמין רק עבור GTK GUI.

9. רישום חור שחור ('_)

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

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

10. רישום דפוסי חיפוש אחרון ('/)

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

Vim משתמש ברישום זה עבור ניווט עם נ ו נ מפתחות לאחר החיפוש.

זהו רישום בר כתיבה, ניתן לשנות את תוכנו באמצעות ה-:let. לדוגמה, כדי לשמור את לינוקס במאגר הזה, השתמש :let @/='Linux'.

רישומים ומקרו

ב-Vim, פקודות המאקרו נשמרות גם ברגיסטרים בעלי השם (a-z). אם אינך מודע לפקודות מאקרו, פקודות מאקרו הן פקודות מוגדרות המאוחסנות במאגר. ניתן לבצע קבוצה זו של פקודות על ידי שימוש פשוט בסימן @ ואחריו שם מאגר המאקרו. בעיקרו של דבר, פקודות מאקרו מבטלות את הצורך להקליד פקודות מרובות שוב ושוב.

לדוגמה, כדי לאחסן מאקרו בפנקס M , אני אשתמש qmq . אני רוצה לעבור ל 5 שורות למטה באמצעות 5j ומחק את השורה באמצעות dd . להשתמש, qm כדי להתחיל את הקלטת המאקרו, ולאחר מכן לחץ על 5j ו dd . כעת, כדי לצאת מהקלטת המאקרו, לחץ על ש . כדי לוודא אם המאקרו מאוחסן או לא נעשה בו שימוש, :reg 'm או :reg m.

כדי לבצע פקודות אלה עם אוגר מאקרו, השתמש ב- :@M פקודה.

ניקוי רישום

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

1. הקלט מאקרו ריק כדי לנקות אוגר. לדוגמה, כדי לנקות את m, השתמש qmq .

2. הגדר טקסט ריק באמצעות לתת . לדוגמה, כדי לנקות את ה-register m, השתמש :תן @m='.

3. השתמש ב setreg() פונקציה עם מחרוזת ריקה כארגומנט. לדוגמה, כדי לנקות את הרשום m use :call setreg('m', ').

סיכום

ישנם 10 אוגרים שונים עם פונקציות שונות, מה שהופך את זה כמעט בלתי אפשרי לזכור. אם אתה מתחיל אז הייתי ממליץ לזכור רק שלושה אוגרים, רישום ללא שם ('') , אוגרים ממוספרים (0-9) , ורשמים בעלי שם (א-ז) .

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

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