[סמינר Vim] [ברנדון ליו] [אוניברסיטת הרווארד] [זה CS50.] [CS50.TV] היום הולך להיות מבוא לVim. כמה מכם חבר 'ה שמעו על Vim? מה ששמעת על Vim? [סטודנטים] זה פותר את כל הבעיות שלך. [ברנדון ל] זה פותר את כל הבעיות שלך. כל דבר אחר שאתם שמעתם על Vim? רשמים כל? [סטודנטים] כמעט כולם דברתי איתי אוהב להשתמש Vim. אה, מתוק. [סטודנטים] הרבה אנשים שאני מכיר אוהב להשתמש Vim. אוקיי, זה טוב, כי הרבה אנשים בCS51 להתחיל לאסוף את Emacs בגלל Emacs יש לו תמיכה מעט טובה יותר לשפה שאתה הולך להשתמש בCS51, ואני חושש שלא מספיק אנשים בהרווארד להשתמש Vim, אז אני באמת מנסה ועושה עבודה טובה של עידוד שימוש Vim. אבל כאן הוא קומיקס xkcd קלאסיים שבו אתה עלול למצוא את החבר 'ה מעניין. האם אתם משמשים ננו לפני בכלל? קומיקס זה אומר נאנו? מתכנתים אמיתיים משתמשים Emacs. היי, מתכנתים אמיתיים משתמשים Vim. לא, מתכנתים אמיתיים משתמשים באד שהוא זה, אתה אף פעם לא רוצה להשתמש באד. זה ממש ממש ישן וממש רע, ומתכנתים אמיתיים משתמשים מחט ממוגנטת ויד יציבה. ואתה יכול לקרוא את השאר, אבל זה די משעשע. והדבר המצחיק הוא בסופו של דבר. הם אומרים, "אה, כן, כמובן, יש פקודה Emacs לעשות את זה." Cx Mc M-פרפר ישן וטוב, שהוא סוג של עקיצה בEmacs בגלל Emacs ידוע היסטורי להיות קצת נפוח ויש פקודות לכמעט כל דבר, אז זה סוג של בדיחה עבור Emacs. מהו Vim? Vim הוא עורך הטקסט של מתכנת מתקדמת. אני באמת רוצה לעשות את ההבחנה בין עורך טקסט ומשהו כמו מעבד מסמך. Microsoft Word ידוע כמעבד מסמך. באפשרותך להגדיר שוליים, לעשות דברים נועזים, קו תחתון דברים, השביתה דרך דברים, לשנות את גודל גופן ומה לא. עורך טקסט לא עושה כלום יותר פשוט לערוך טקסט. פשוטו כמשמעו, פשוט יש לך תווים. אין שום סוג של עיצוב, גדלים, גופנים, צבעים, או משהו כזה. כל שעליך לעשות הוא לערוך טקסט, וVim נעשה במיוחד עבור תכנות. יש לו הרבה תכונות שנבנו רק לתכנות. זה נועד במפורש לעריכת טקסט יעילה. באופן כללי, Vim ידוע להיות בעצם עורך הטקסט המהיר ביותר אולי אתה יכול להשתמש בהשוואה עם כל עורך טקסט אחר שזה אפשרי. הרבה תכונות כמו IDE-אינם בנויים ישירות לתוך Vim, כך שאם אתה השתמשת IDE ואתה רגיל לדברים כמו לקמפל ולהריץ באופן אוטומטי או באגים מה בIDE שלך או שורה של דברים אחרים לגמרי Vim לא מגיע עם כי באופן טבעי, אבל יש שורה שלמה של תוספים שאתה יכול להשתמש בו כדי להוסיף סוג זה של פונקציונליות לVim. Vim על ידי עצמו מתמקד בעריכת טקסט ועושה עריכת טקסט ממש, ממש טוב. ולבסוף, זה באמת התאמה אישי ומורחב, ובעצם Vim כבר בסביבה, או וי, שVim בנוי על, מסביב כבר מעל 40 שנים, ומדובר בתכנית מאוד, מאוד עמוקה, ואנשים ישתמשו בו לכל חיים ואף פעם לא באמת להשתלט על תכניתם במלואם, ואתה תמיד להמשיך ללמוד לאורך כל החיים שלך לאורך השנים, תמיד הופך יותר ויותר טוב. יש בעצם אין סוף למה שאתה יכול ללמוד וכמה אתה יכול לשפר עם Vim, וזה באמת מרגש. אתה לא רוצה להציג את זה בתור משהו מפחיד, כי אתה יכול להיות מאוד, מאוד בקיא בVim רק כמה שבועות, אבל זה בערך כמו-מתמיד אתה תמיד יכול ללמוד יותר וללמוד עוד ולעשות דברים טובים יותר וטוב יותר, שהוא סוג של מרגש עבורי. זוהי דוגמא של מה שנראה כמו Vim. זה לא שלי. אתה תראה כמה הדגמות חיות עכשיו. זוהי דוגמא של מה Vim עשוי להיראות. מה שאנחנו הולכים לעשות היום הוא שאנחנו הולכים להתחיל עם  חלון ראווה מהירה של מה Vim יכול לעשות. אני הולך לעשות כמה טריקים ומה לא בשבילכם כך שאתה יכול להבין למה אני אוהב Vim כל כך הרבה ומדוע אנשים כמו Vim כל כך הרבה, ואז משם נלך להקדמה עדינה. למעשה, זה יהיה קצת מהיר, מבוא לVim. אני אשאל אותך החבר 'ה כדי להוריד קובץ טקסט ולבצע יחד איתי אם אתה יכול. זה Vim, וכאן אני משתמש MacVim, כך שאם יש לך חבר 'ה מקינטוש ייתכן שתרצה לשקול שימוש MacVim כי זה גרסה גרפית של Vim, למרות Vim הרגיל, מה יש בשורת הפקודה שלך, עובד בסדר גמור. אני הולך להראות לכם כמה טיפים וטריקים אקראיים כי אתה יכול להשתמש בVim כדי להראות לך למה זה כל כך מגניב. רק כמה דברים אקראיים שאני עומד לעבור. הדבר הראשון הוא אובייקטי טקסט, ויש כמה פקודות סביב אובייקטי טקסט, ואני באמת אלמד אותך מה טקסט אובייקטים הם ביתר פירוט בהמשך בסמינר, אבל למשל, נניח שאני אייתי את השם שלי לא נכון, Barndon ליו, ואני רוצה לשנות את זה. כל מה שאני צריך לעשות זה לקבל את הסמן שלי אי שם בשם שלי והקלידו את הפקודה CIW, וזה יהיה למחוק את כל השם שלי, הכניס אותי למצב ההכנסה, ואני יכול להקליד את השם שלי ולתקן אותה. בדומה לכך, אם אני רוצה לשנות משהו בתוך מרכאות יש גם הפקודה לכך. אני יכול למחוק דברים בתוך מרכאות. אין יותר צורך ללחוץ לחיצה כפולה, להזיז את היד שלך מעל לעכבר, לחיצה כפולה, ולאחר מכן הקלד בחזרה משהו פנימה אתה יכול לעשות הכל מהמקלדת, מה שזה לא. או לחלופין, נניח שיש לי תג התמונה בתוך תג העוגן הזה. האם אתם מכוסים HTML בכיתה עדיין? כן, אז אולי אני רוצה למחוק את התג הזה, אשר בדרך כלל מה שאתה צריך לעשות הוא שאתה צריך להשתמש בעכבר שלך ולהאיר בזהירות בדיוק מה שאתה רוצה למחוק ולמחוק אותו. אבל בVim זה פשוט DIT, ואתה יכול למחוק את זה ממש מהר, ואני אסביר לך מה כל הפקודות האלה אומרת ואיך אתה משתמש בם בשנייה. דוגמא נוספת, יש לי כמה קוד כאן, ונניח שאני רוצה לשנן את הקוד, אבל אני רוצה לשנן את הקוד רק בתוך הסוגריים, ואני יכול גם לשנן את הקוד באמצעות 3 פקודות באמצעות בעצם> IB. דבר נוסף זה ממש מגניב על Vim הוא משהו שנקרא עריכת בלוק חזותית. אני לא יודע אם אתם אי פעם רצינו להדגיש לפעמים בלוק מלבני של טקסט בקוד שלך במקום שיש לעשות סוג המוזר הזה של דבר קו שמשתרע על פני כל הקווים השונים. לדוגמא, בVim אתה יכול לעשות את זה. אני יכול לסמן את המלבנים כמו זה, שהוא די מגניב, אבל יתרה מזאת, אני יכול לערוך באמצעות הפונקציונליות ש. לדוגמא, אם אני רוצה לתת איזה קידומת לשמות של כולנו אני יכול לסמן בלוק ולאחר מכן להוסיף משהו. באופן דומה, אני יכול גם לסמן הבלוק הזה ובוחר למחוק אותו, או אולי אני אדגיש הבלוק הזה ולשנות אותו ל-D בגלל שאנחנו כל הרופאים. מה שזה לא, אתה יכול לעשות את כל הדברים השונים הללו. לבסוף, הקיפול הוא ממש מגניב. הרבה אידו יש את זה שבו אתה יכול לקפל פונקציות שונות מחוץ לתצוגה במקרה שאתה לא רוצה לראות אותם. לדוגמא, נניח שיש לי זה חבורה של טקסט כאן, ואני לא באמת רוצה לראות את זה. אני רוצה לשמור את מבטו, כי אני עורך משהו אחר בקובץ. אני יכול לקפל אותו כך שכל זה התמוטט, וככה זה מחוץ לתצוגה, ואני יכול לערוך את דברים אחרים שמופיעים בדף, וזה באמת נהדר. אתה יכול לקפל את הפונקציות ומה לא, או לקפל את השיעורים כשאתה מתכנת רק כדי לשמור אותם מחוץ לתצוגה כשאתה לא לערוך אותם, ומאוחר יותר, כאשר אתה רוצה לראות אותם אתה יכול לפתוח אותם. ואתה יכול לראות את זה רק פתח את הכל. כרטיסיות, מאגרים, וחלונות. Vim הוא די מגניב שב בדרך כלל בהרבה עורכי טקסט שאתה יכול לערוך רק קובץ אחד בכל פעם, כמו בNano, או אולי אם אתה משתמש בפנקס רשימות או gedit. אני בעצם אף פעם לא השתמשתי gedit מאוד, אבל לפחות בNotepad + + אתה יכול לקבל את כרטיסיות, אבל יש Vim הרעיון של כרטיסיות, מאגרים וחלונות. לדוגמא, אתה יכול לפתוח את חבורה של כרטיסיות חדשות. אתם יכולים לראות כאן בחלקו העליון יש לי עכשיו חבורה של כרטיסיות, ואני יכול לסגור אותם. יתר על כן, יש את המושג הזה של מאגרים, המהווה את הרעיון שברגע שפתחת את קובץ הוא נשאר בחיים במאגר, ואם אתה רוצה לנווט לקובץ שממש מהר אתה יכול לנווט אליו ממש מהר בתוך החיץ, כמו גם, ויתר על כן, בתוך חלונית אחת אתה יכול גם לפצל החלון שלך לתוך חלונות מרובים. לדוגמא, אם אני רוצה לפצל את החלון הזה עד לחלונות מרובים אתה יכול לראות ממש כאן, כי אני יכול לקבל את אותו קוד פעמיים, ואני יכול לפצל יותר ויותר ויותר, וכרגע זה לא נראה טוב, כי כי כברירת מחדל יש לי את גודל חלון ברירת המחדל יהיה סוג של גדול כך שכל האחרים מעכו את, אבל בדרך כלל כשאני על המחשב שלי ולא על מקרן זה אני יכול להיות מספר חלוניות לפתוח באותו הזמן, וזה ממש נחמד עבור עריכת קבצים מרובים באותו הזמן. גם אתה יכול לקבל דברים כמו לבחור ולהחליף, ואנחנו באמת נכסה כי בסמינר, אז אני אדלג כי לעת עתה. גם אתה יכול לקיים אינטראקציה עם שורת הפקודה בכל מיני דרכים שונות. לדוגמא, אם יש לי איזו רשימה כאן ואני רוצה למיין אותו, אני לא יודע, בואו נוסיף עוד פירות, ענבים, ואני יכול להדגיש את זה באמצעות פונקצית גולת הכותרת וקוראים לסוג, וזה יהיה למיין אותה באופן אוטומטי בשבילי. באופן דומה, אם אתה הולך להיות עורך CSS, שאני מניח שאתה כנראה יהיה עושה לפרויקט הגמר שלך, רוב האנשים עושים, ואולי אתה רוצה לשמור על CSS שלך מאורגן על ידי מיונם לפי סדר אלפביתי. אתה יכול גם לסמן אותם וקורא לסוג, וזה יהיה למיין אותם בשבילך. אלה הם חלק מהדוגמות לדברים שVim יכול לעשות, ותשים לב שהדבר העיקרי שאני באמת רוצה להסב את תשומת הלב ל הוא שאני עושה הכל מהמקלדת, ואם אתה מסוגל לראות איפה הידיים שלי מונחות גם יראו שהידות שלי אף פעם לא באמת לעבור מהשורה בבית. בדרך כלל כאשר אתה עורך טקסט שאתה בדרך כלל צריך להשתמש בעכבר ולחץ מסביב ומה לא, וזה סוג של תנועה גורר אותך למטה וגורם לבזבוז זמן, או אולי אתה נע בין השורה הביתה ומקשי חצים, ואז אתה נע קדימה ואחורה בצורה כזאת, וזה קצת מסורבל אלא גם מאט אותך, והדבר הוא ברגע שאתה מקבל ממש טוב בVim כל מה שאתה רוצה לעשות נעשה מבלי להזיז את הידיים שלך מהשורה בבית, וזה נהדר. חכו רגע, אני הולך לפתוח את היישום זה. הנה. עכשיו אתה יכול לראות מה פקודות מפעילים את החלון הימני התחתון. כל הפונקציות שאני רק הראיתי לך דברים שכלולים כברירת מחדל עם Vim, אבל יש גם מספר עצום של תוספים שאתה יכול גם להשתמש כדי לשפר את החוויה של Vim שלך. אם הוריד את קבצי התצורה שכללתי, ויש הוראות כיצד להתקין אותם בPowerPoint וגם במייל ששלחתי, יש לי כ -40 תוספים מותקנים או אולי 30 תוספים, וכל אחד ואחד מביא פונקציונלי נוספת לVim שמשפר את החוויה Vim שלך. לדוגמא, אחד המועדפים שלי הוא משהו שנקרא surround.vim, וזה בעצם מאפשר לך לעבוד עם סובבים או תיחום דמויות הרבה יותר בקלות. דוגמא אחת, אני לא יודע אם אתם אי פעם בקוד LaTeX, אבל LaTeX הוא שפה סדור מתמטיקה כי היא נהגה להכין מתמטיקה באמת נחמדה למראה, וכל פעם שאתה רוצה משהו שייראה כמו מתמטיקה אתה עוטף אותו בסימני דולר, ונניח שאני מקליד כמה משוואה כמו F = ma, ושכחתי לעטוף אותו בסימני דולר. אז אני יכול להדגיש את זה ולעטוף אותו בסימני דולר סתם ככה. לחלופין, Vim מאפשר לך למחוק את דברים בתוך תגים ולמחוק את התגים ומה לא, אבל Vim על ידי הטבע לא מאפשר לך לשנות את התגים, ולכן לדוגמא, יש לי תג div הזה, ואני רוצה לשדרג ל-HTML5 ולהשתמש בתג כותרת חדש. אני יכול לעשות את השינוי סביב תג וסוג בכותרת, וזה יהיה באופן אוטומטי לשנות את זה בשבילי. כמו כן, נניח שיש לנו משהו בסוגריים, ואני רוצה לשנות את זה מסוגריים לסוגריים או משהו כזה. אני יכול גם לשנות את זה ממש בקלות על ידי ההקלדה בג לשינוי, ים לסראונד, סוגריים. הו, אני מניח שאני צריך להקליד אותה מהר יותר. סוגריים וסוגריים או בסוגריים, וזה יהיה באופן אוטומטי לשנות את זה בשבילי, וזה באמת נחמד, אחר בדרך כלל זה באמת מסורבל. זה ממש נחמד לעבור בין ציטוט אולי אחת ומחרוזות ציטוט כפולות או משהו כזה. זה מקרה, למשל שימוש אחד. יש תוסף בשם נמלט אשר משתלב עם Git. אני מנחש שאולי אתם לא השתמשנו Git כך הרבה בCS50, אבל אתה תמצא את עצמך באמצעות Git יותר ויותר ויותר, לא רק בכיתות בכל רחבי אוניברסיטת הרווארד, אלא גם במקומות עבודה ומה לא, ובדרך כלל אתה צריך לעבור קדימה ואחורה בין שורת הפקודה וVim לקיים אינטראקציה עם גית, אבל יש תוספים לשלב עם Git מתוך Vim וגם לתת לך אפילו פונקציונלי נוסף על גבי Git. יש משהו שנקרא NERDTree, שבו אתה יכול להשתמש בו כדי לחקור מבני קובץ מתוך Vim. לדוגמא, אני יכול לפתוח NERDTree בחלונית הימנית, ואתה בעצם יכול לראות קבצים אקראיים ומסים לא פתוחים, לא מסתכלים על המסים שלי. אתה יכול להסתכל בקבצים ומה לא ולפתוח קבצים אחרים וכן הלאה וכן הלאה. ואני לא אכנס לתוספים אחרים האלה, ולכן אנחנו בעצם יכולים לצלול ב ולהתחיל לעבוד על Vim, אבל יש תוספים שמאפשרים לך להגיב בקלות רבה יותר, תוספים שמאפשרים לך לקפוץ בין קבצים בקלות רבה יותר, תוספים שנותנים לך בודק תחביר מתוך Vim, וזה ממש מגניב, וזה נותן לך בדיקת תחביר עבור רוב שפות נכתבות מימין מחוץ לקופסה, דברים כמו סוגריים קשת, שהוא למעשה ממש, ממש מגניב. תן לי לתת לך דוגמא לכך עכשיו. בואו לראות. הנה כמה קוד אקראי שאני כותב, ותשימו לב שהסוגריים והסוגריים כולם צבעוניים, וסוגריים וסוגריים מאותו הצבע תואמים, וזה נחמד ולפעמים משפר את הקריאות של הקוד שלך. יש לך גם השלמה אוטומטית, עיצוב טבלאי. כאשר יש לך משהו שאתה רוצה לקבל את כל ההערות בשורה או שאתה רוצה להפוך את טבלה בטקסט שלך ואתה רוצה לקבל כל מה שנראה כמו שולחן נחמד, במקום שיש לעצב את זה באופן ידני יש תוספים שיהיה לעצב את זה בשבילך וכן הלאה וכן הלאה. הרשימה נמשכת עוד ועוד ועוד. אני יכול לבלות שעות לחקור את כל תוספי Vim השונים שקיימים, וזה מדהים מה יש שם בחוץ. כל שאלות עד כה? מתוק. במקרה זה, אנחנו הולכים להתחיל לשחק מסביב עם Vim, ואני רוצה שחבר 'ה לעבוד עם כמה Vim איתי כך שאתה יכול לקבל תחושה של זה, ואני יכול להדריך אותך בשלבי העבודה עם Vim הראשון שלך כי הרבה אנשים מקבלים המומים כאשר הם פותחים את Vim, ולפעמים, אם אתה לא יודע אפילו את הפקודה כדי לצאת אתה אפילו לא יכול לצאת מVim, אבל זה לא כל כך רע. אתה רק צריך כמה דקות של הדרכה ממישהו שהשתמש Vim לפני או לקרוא כמה מדריכים באינטרנט, ואתה תהיה על הדרך שלך בתוך זמן קצר. הנה כמה הוראות להתקנת Vim אם יש לך כבר. אתה יכול להסתכל בשקופיות אלה לאחר המצגת, אם ברצונך להתקין יותר דברים. כמו כן, אלה הם כמה הוראות להתקנת קבצי התצורה שלי, ואתה גם יכול לעקוב אחר הוראות הבאות מאוחר יותר, אם יש לך כבר. אם אתם יכולים ללכת לקישור זה ולהוריד קובץ טקסט. הקישור יוביל אתכם לקובץ הטקסט הזה, שאני רוצה לך להוריד ולפתוח בVim, ויש חבורה של תרגילים ומה לא שם, כי אתה יכול לעקוב אחר איתי ולהתחיל לקבל חלק באימון עם כמה פעולות הבסיסיות בVim. טוב. בזמן שאתה פותח את זה אני הולך לתת מבוא קצר ל2 עקרונות באמת מפתח בעריכת Vim שהם באמת חשובים להבין לפני שאתם צוללים לתוך Vim, וזה עריכה ומפעילים ותנועות מודאלית. אני ראשון אכסה עריכה מודאלית, ולאחר מכן נצטרך לכסות מפעילים ותנועות בקצת. ההבחנה המפתח הראשון בין Vim ופחות או יותר כל אחר עורכי טקסט מכל סוג שהוא שVim הוא עורך מודאלית, ומה זה אומר כאשר אתה משתמש Vim אתה יכול להיות באחד ממצבים רבים ושונים. יש מצב רגיל, יש מצב הכנסה, יש מצב חזותי, כן הלאה וכן הלאה, והדבר הוא, הקשות שלך לקחת על פעולות שונות, מקבל משמעות שונה, תלוי מה מצבך נמצא בו רק כדוגמא, במצב נורמלי הוא המצב שאת בעת המעבר בסביבה, וכך הייתי משתמש J המפתח לנוע כלפי מטה, אבל במצב הכנסה, אתה משתמש J המפתח ממש להקליד J על המסך, ובגלל זה הרבה אנשים מתבלבלים, כי הם לא רגילים ל להיות במצבים שונים כל הזמן, ולכן הם תהיו להקליד את דברים, ואתה רגיל לכך שכל מה שאתה מקליד מופיע על המסך, אבל בVim אולי הסמן נע בכל המקום בגלל שאתה מקליד תווים מוזרים, ופתאום אתה מקבל עבר למצב הכנסה משום שהקלדת כמה מפתח שמכניס אותך למצב הכנסה, ולאחר מכן טקסט מתחיל עף החוצה, ולכן אנשים מתבלבלים בגלל זה. אבל אתה צריך לעקוב אחר מה מצב אתה נמצא, ואם אתה מסתכל על סרגל הכלים מאוד תחתון של Vim לא צריך להיות אינדיקטור שאומר לך מה מצבך כרגע ב, שאמורה להיות מועיל. אבל באופן כללי, 3 המצבים העיקריים שאתה צריך לדעת על, יש רק כנראה 6 או 7 או 8 מצבים או כך, אבל אתה מבלה את רוב זמנך ב3. הדבר הראשון הוא מצב רגיל. זה מקום בו אתה מבלה את רוב הזמן שלך. כל ההקשות נרשמות כסוג מסוים של הפקודה, ויהיה לנו ללמוד הרבה פקודות אלה במהלך היום היום. המצב האחר הוא מצב הכנסה, שבה אתה בעצם מקליד את דברים, ומצב הכנסה הוא בעצם המצב שאתה בדרך כלל אתה רגיל. אתה מקליד משהו, וזה פשוט מגיע על המסך, ומצב ראייה הוא משהו שבו אתה יכול לעשות הדגשה. ראית מוקדם יותר שבו לפעמים הייתי הדגשת טקסט וטיפול בו בדרכים שונות, וזה דוגמא שימוש במצב ראייה. אנחנו נתחיל עם היסודות מוחלטים שאתה צריך כדי לשרוד בVim, וזה בעצם 7 פקודות אלה ממש כאן. Hjkl משמשים כדי לנווט את הקובץ, והם מתאימות לשמאל, למטה, למעלה, ומשמאל, ואתה חופשי להשתמש במקשי החצים, כמו גם, אבל אנחנו באמת ממליצים לך להשתמש hjkl ככל האפשר כי הרעיון הוא שבזמן שאתה העורך, אתה יכול להסתובב במסמך מבלי לעבור בין מקשי החצים והיכן אתה שאתה מקליד, שהוא ממש, ממש נחמד. אתה פשוט רוצה להעביר כמה תווים מעל. אתה לא צריך להעביר אותך כל היד מעל, וזה די נחמד שיש את זה. מומחי Vim כמה בעצם מפת מקשי החיצים שלהם לפונקציות אחרות כי כבר יש להם hjkl, והם יכולים להשתמש במקשי החיצים שלהם לפונקציות אחרות גם כן. Hjkl עובר לך בסביבה בזמן שאתה במצב רגיל. אם אתה רוצה להיכנס למצב הכנסה ולהקליד משהו אתה יכול ללחוץ עליי למצב הכנסה, וזה מעמיד במצב הכנסתך, ואתה יכול להקליד משהו, ואתה מקליד בריחה כדי להגיע ממצב כניסה חזרה למצב רגיל. הבריחה תמיד שולחת אותך חזרה למצב רגיל לא משנה מה מצב אתה נמצא, ואם אתה רוצה לעזוב באפשרותך להקליד ב: wq להיכנס, והדרך בה אתה יכול לזכור את זה היא w דוכנים לכתיבה, וq מייצג להתפטר, אז: wq, ומעי גס מפעיל את הפקודה, וכן: WQ להיכנס להפעיל את הפקודה חוסך ויציאות. אם אתה פותח את הקובץ נלך דרך התרגיל הראשון יחד. שלב 1 הוא לשרוד בVim, ואני מקווה שאתם כל מה שיש זה פתוח. טוב, ויש לנו כמה תרגילים פשוטים כדי שתוכלו להתרגל לשימוש במקשים אלו. Hjkl באמת לא נראה אינטואיטיבי בהתחלה, וזו היא אחת מאבני הראשוניים שיש לאנשים תוך שימוש בVim הוא באמצעות מקשים אלה לניווט בסביבה. זה לא אינטואיטיבי, אבל ברגע שאתה מתרגל לזה זה באמת משתלב לתוך המוח שלך, ואנשים רבים מוצאים את עצמם לעתים קרובות באמצעות J ו-K ב-Word או גם בכרום, ודווקא אנשים יצרו תוסף הכרום הזה שנקרא Vimium שבו אתה יכול להשתמש בכרום או כרום כדי לנווט Chrome שימוש במקלדת באמצעות קיצורים כמו Vim, כך שאנשים מאוד מתלהבים מזה, אבל אתם מוזמנים לנסות ושימוש Hjkl כדי לנווט בין המספרים רק כדי שתוכל להכיר עם איך שהדברים האלה עובדים. לאחר שתסיים את זה, אתה יכול גם ללכת ולשחק עם המבוך הזה שיצרתי רק בשביל כיף, ואתה יכול לעקוב אחר סוג של הקו המקווקו ומנסה לא לקרוס לתוך הקירות ולנסות להפוך אותו לסוף המבוך. אם אתה משתמש בקיצורי דרך ב-Gmail או כל מספר של יישומים שונים תמצא כי J ו-K, למשל, משמשים לעתים קרובות כדי לנוע למעלה ולמטה, ושבעצם מגיע מVim במהות, אז יש לך J ו-K, וזה ממש נחמד, כי אתה יכול לנוע למעלה ולמטה מבלי להזיז את היד שלך הלוך ושוב ממקשי החצים. עכשיו בואו ננסה להיכנס למצב כניסה ויציאה ממצב כניסה. שימו לב שכרגע הסמן שלי הוא תיבה גדולה, שחורה, וכשאתה נכנסת למצב הכנסה אתה צריך למצוא כי הוא הופך לסמן צר כמו שאתה רגיל. אם אתה משתמש Vim בטרמינל אתה לא יכול למצוא את זה כדי להיות המקרה כי המסוף אינו תומך דק סמן מסוג זה, אבל אם אתה משתמש MacVim או GVim על Windows אז אתה צריך למצוא שהוא הופך לסמן, וזה אינדיקציה ויזואלית מהירה באמת. זה בשבילך כדי לדעת אם אתה במצב רגיל או במצב כניסה. בואו נלך קדימה ולנסות לערוך את הקו הזה. מלא אותו עם המידע שלך או מה שזה לא, ואיך אתה יכול לעשות את זה הוא שאתה יכול להעביר עד סוף הריק, הקלד i להיכנס למצב כניסה, ואתה יכול Backspace ולהקליד את השם שלך, וכשתסיימו להקליד אתה יכול ללחוץ על בריחה לצאת ממצב ההכנסה, ואתה יכול לעבור לכאן, להוסיף סוג ללמחוק אותה, הקלד בריחה לצאת ממצב ההכנסה, ואתה יכול להקליד: w להיכנס כדי לשמור את הקובץ. אתה יכול להקליד רק: w כדי לשמור את הקובץ. אתה יכול להקליד רק: q כדי לצאת מבלי לשמור, או שאתה יכול להקליד: wq כדי לשמור ולצאת. אמנם, אנחנו לא רוצים להפסיק עדיין, כך שתוכלו להקליד: w. ואולי זה נראה קצת לא יעיל בהתחלה כי כדי לעבור למקום שהיית צריך להקליד J חבורה של פעמים, אולי L חבורה של פעמים כדי להגיע למקום הזה, ואתה צריך ללחוץ על backspace חבורה של פעמים, וזה נראה ממש לא יעיל בעוד שבדרך כלל אתה כנראה היה להזיז את העכבר מעל לשם, לחץ לחיצה כפולה ולהתחיל להקליד, וכמובן, העניין הוא, שכשאתה מתחיל עם Vim ואתה יודע רק פקודות בסיסיות אלה, כן, זה יהיה קצת איטי, אבל עד מהרה אתה לומד כמה פקודות חזקות יותר, אשר יאפשר לכם לנוע במסמכים במהירות רבה יותר, ואתה לא צריך שתהיה לי שימוש מסורבל מאוד זה של חוזר JS ו חוזר וKs Ls וכן הלאה וכן הלאה. כל שאלות עד כה? מוצק. חזור ל- PowerPoint. עכשיו אנחנו הולכים להציג עוד כמה פקודות לתנועה מתקדמת. אתה חוויתם צורך להקליד אולי L או H הרבה הרבה, והנה כמה פקודות ככל שאתה יכול להשתמש בו כדי לנוע במהירות רבה יותר. נניח כי הסמן נמצא בO מעל בכמה ב" זה טקסט כלשהו, ​​" והנה 5 פקודות ככל שאתה יכול להשתמש בו כדי לעבור מעבר לקו בקלות רבה יותר. אז ^ ו$ להעביר לך את ההתחלה ואת סוף השורה, וכאשר אתה לומד בשלב מסוים בביטויים רגילים או כל מיני דברים אחרים תמצא כי סוג של אמנות אלו הם נפוצים מאוד. ^ בדרך כלל מתייחס לתחילת השורה. $ מתייחס בדרך כלל לסוף השורה. אלה קלים מאוד לזכור, ובאופן דומה, B, E, ו-W, הם קלים לזכור גם כי ב מתאים לגיבוי או התחלה, דואר מתאים לסוף, שהוא סוף המילה, וw תואם את המילה הבאה, ולכן w במילה. ואם תמשיכו להקליד דואר או המשך להקליד w אתה שם לב שאתה יכול לקפוץ בין מילות, וזה הרבה יותר מהר מאשר רק הקלדת ליטר. עכשיו, הדבר הבא הוא דגם המפעיל-Motion. זו בעצם אחת הסיבות העיקריות מדוע Vim יכול להיות כל כך חזק, וזה בגלל שאתה בעצם יכול לחבר אלמנטים שונים לפונקציות חזקות יותר, ולכן בדרך כלל כשאתה עושה משהו בVim שאתה יכול לחשוב על זה כעל שילוב של מפעיל עם תנועה. עד כה יש לנו רק עסקתי בתנועות, כמו hjkl. הם עוברים אותך בסביבה, ולאחר מכן ב ו w, הם גם להעביר לך דרכים שונות בסביבה, אבל אנחנו לא הלכנו עדיין להיות מסוגלים למחוק דברים או לשנות דברים או מה שלא, וכאשר אתה משלב מפעילים בתנועות אז אתה מסוגל לקבל הרבה יותר חזק השפעות, כך לדוגמא, אם אני רוצה למחוק 2 מילות, אני יכול להשתמש בד למפעיל המחיקה, ואני יכול להוסיף 2 כדי לציין שאני רוצה למחוק 2 מילות, ולאחר מכן אני כולל תנועה. אני יכול לכלול w לומר למחוק 2 מילות. אני יכול להשתמש במשהו כמו J לומר למחוק 2 פעמים כלפי מטה ולמחוק 2 שורות מתחתיי. אני יכול לומר D2B למחוק לאחור פעמיים, ויש אפילו יותר תנועות מאלו שאני כבר מוצג כאן באמת, באמת לעשות עריכת Vim שלך הרבה יותר חזקה. אלה הם חלק מפופולריים או המפעילים הנפוצים ביותר ביותר והם די קלים לזכור גם כן. D למחיקה, ג לשינוי. C הוא בעצם בדיוק את אותו הדבר כמו שינוי פרט לכך כאשר אתה משתמש בג אתה מקבל באופן אוטומטי הכניס לתוך מצב הכנסה לאחר מכן. בדרך כלל כאשר אתה משתמש במחיקה אתה משתמש בו ממצב רגיל, ואחרי שאתה מוחק משהו שאתה להישאר במצב רגיל. אבל אם אתה רוצה לשנות משהו, אתה יכול להשתמש בג כדי למחוק משהו ואז ללכת מייד למצב הכנסה כך שאתה יכול להתחיל להקליד ולתקן משהו. Y הוא למשיכה חזקה. זה בעצם הרעיון של Vim של העתקה. לדוגמא, אם אני רוצה להעתיק את 2 המילים הבאות שאני יכול לעשות y2w או משהו כזה, וv הוא להבלטה, במהות. וגם מה שבאמת מגניב הוא אם תקליד מפעיל פעמיים היא תפעל בכל שורה, כך שאם אני רוצה למחוק את כל השורה אני יכול להקליד dd כדי למחוק את הקו כולו, או אם אני רוצה להעתיק את כל השורה שאני יכול להשתמש yy או משהו כזה. בואו ננסה את זה עוד קצת. יש תרגיל כאן למפעיל תנועה מתקדם, כמו גם ואפילו כמה דברים אחרים שאני לא הולך לכסות בPowerPoint היום, אבל אתה יכול להרגיש חופשי להסתכל עליהם מאוחר יותר ולשחק עימם ולהכיר אותם. מפעילים ותנועות. לדוגמא, נניח שיש 2 מילות אלה אתה רק רוצה למחוק במשפט. מה אתה רוצה לעשות הוא שאתה רוצה לוודא כי שלך סמן נמצא בתחילת המילה הראשונה שאתה רוצה למחוק, ואתה יכול להקליד בd2w, וזה יהיה למחוק 2 המילים האלה בשבילך. והשימוש בפקודה, d2w הזה בדיוק, אולי נראה קצת מסורבל וחסר טעם, אבל זה אמור לבטא את הרעיון כי אתה יכול לחבר דברים השונים הללו, וגם רק במקרה אתה במקרה במצב, אז אתה יכול בסופו של דבר באמצעות DW או d2w, שבו אני משתמש מדי פעם. Dd וסמ"ק אני משתמש לעתים קרובות הרבה יותר, כי אתה יכול לפעול על כל קווים. לדוגמא, נניח שיש לי הרשימה האקראית הזה כאן, ואולי אני רוצה למחוק את השורה שאומרת האסקים כי זה לא מתאים, רק בגלל, ואני לא רוצה שזה יעבור למצב הכנסה לאחר מכן. אני רוצה למחוק אותו, ובמקרה זה אני יכול להקליד dd, ושימחק את כל השורה. אבל בואו נגיד שעכשיו יש קו שאני רוצה למחוק אחר זה, אבל אני גם רוצה לתקן אותו ולכתוב אותו מחדש, ובמקרה זה אני אנסה משהו כמו סמ"ק, וזה מוחק את כל השורה, אלא מעמיד אותי במצב הכנסה, כפי שאתה יכול לראות, ואני יכול לתקן את זה משם. ויש דרכים רבות ושונות אתה יכול לשלב את מפעילים ותנועות, וכפי שאתה משתמש Vim יותר ויותר אתה לומד יותר על דרכים שונות אתה יכול להשתמש בפקודות אלה, ואתה אהיה יותר ויותר טוב. מדהים, עכשיו הנה כמה פקודות שונות אחרות שגם הם מאוד, מאוד נפוץ וגם יעזרו לך להיות טוב יותר בVim. לדוגמא, דיברנו על אותיות קטנות v להבלטה חזותית. אנחנו יכולים גם להשתמש באותיות גדולות V להדגשת קו הראייה. ככה אתה יכול לסמן את הקווים שלמים בזמן הרבה יותר בקלות. אתה יכול להשתמש בo כשאתה במצב רגיל בעצם להוסיף שורה חדשה מתחת לקו שאתה בשלב זה והכניס אותו למצב כניסה להתחל להקליד. אתה יכול להשתמש בx הקטנה כדי למחוק את התו שכרגע תחת הסמן. אתה יכול גם להשתמש u כדי לבטל, וזה די נחמד, ואתה יכול להשתמש בהון להוספה לסוף השורה הנוכחית, אז אולי הסמן נמצא איפשהו על הקו, ושרצונך להוסיף לסוף השורה. ואז אתה יכול להקליד הון לקפוץ מייד לסוף התור ולהיכנס למצב הכנסה, כך שתוכל להוסיף לסוף השורה. אני חושב שיש לי עוד כמה תרגילים שלבו אנחנו יכולים לנסות. למעשה, לא, אני לא. לא לאלה. אבל יש לנו כמה תרגילים יותר לסעיף הבא שבו אנו נראה. אבל אלה שאתה יכול לנסות בעצמך גם כן. לדוגמא, אם אתה מקליד בv הרגיל, תקבל הדגשה רגילה שאתה רגיל אוהב את זה. אם תקליד בהון V, אתה יכול לקבל קו מלא הדגשה ככה, או אם אני מקליד בo זה בעצם יפתח קו חדש בשבילי, שהוא די נחמד. X אני יכול להשתמש בו כדי למחוק תווים בסמן. אני יכול ללחוץ על x חבורה של פעמים ולמחוק דברים. אני יכול ללחוץ על u כדי לבטל את כל זה. , אני יכול להקליד בללכת מייד לסוף התור, ואני כללנו גם כמה מפתחות נחמדים אחרים כי אתה גם יכול להסתכל באחרי המצגת ללמוד כמה פקודות אחרות. [סטודנטים] מה החלפה על? ההחלפה [ל 'ברנדון] היא גם ממש מגניב ובעצם, אם אתה הולך למקום- האם אי פעם-אנשים לא באמת משתמשים בו כל כך הרבה יותר בימים אלה, אבל יש לך חבר 'ה שנראתה אי פעם ב-Microsoft Word אם תקליד להוסיף אתה פתאום להיכנס למצב המוזר הזה שבו כל דמות ודמות שאתה מקליד בעצם מחליף את התו הבא? אני לא יודע אם אתם אי פעם ראיתם את זה. זה דומה לזה. לדוגמא, אם אני רוצה להחליף את מה שכרגע יש לי מסיבה כלשהי אני יכול להקליד בR הון, ועכשיו אני אהיה במצב החלפה, כפי שניתן לראות בפינה השמאלית התחתונה. אם אני מקליד את דבריו מחליפים דברים, ואני יכול גם backspace, שהוא סוג של מגניב, ואני יכול לבטל את זה. אני לא משתמש בזה לעתים קרובות מאוד, אבל מדי פעם הוא הופך להיות שימושי. בואו נדבר על אובייקטי טקסט, שהוא אחד מהדברים האהובים עליי על Vim, בכנות. אובייקטי טקסט הם בעצם הרעיון הזה של הגדרה איזשהו הנתח של טקסט בתוך קובץ הטקסט שלך, ואני אלך על מקשים אלה ראשון, ואז אני אתן לך כמה הפגנות כדי שתוכלו להבין באופן מלא יותר מה זה אומר. W מתייחס למילה, כמו אובייקט טקסט כמילה, אז איזו מילה כמו שאתה בדרך כלל יודע את זה, ואם יש סימני פיסוק שזה ליד המילה אז זה לא יכלול את סימני הפיסוק באופן כללי. אבל לדוגמא, אם אתה רוצה לכלול את סימני הפיסוק מסיבה כלשהי או שאתה עושה משהו שהוא לא באנגלית ואתה רוצה לכלול כל הדמויות שמסומנות בשטח לבן אתה יכול גם להשתמש W הון כדי לקבל את כל מה שמוקף בשטח לבן. אתה יכול גם להשתמש בסוגריים מתייחסים לאובייקט טקסט כי יש בתוך קבוצה של סוגריים. אתה יכול לעשות את אותו דבר עם סוגריים מרובעים, בסוגריים משולשים, פלטה, וציטוטים כמו גם, ולבסוף, אתה יכול גם להשתמש לא להתייחס לכמה תג. תן לי להראות לך איך שמשחק בפועל. לדוגמא, זה הוא הדוגמא הראשונה שלי בחלון הראווה שלי. יש איזו מילה במשפט זה שאני רוצה לשנות, ודיברנו על W בשימוש כתנועה, אבל אתה יכול גם להשתמש בו כאובייקט טקסט כמו כל כך. לדוגמא, בדרך זו אני יכול לשנות את שמו של ברק, או בעצם לשנות אותה הוא שאני יכול ללכת לתחילת מילה וסוג זה בג לשינוי וw במילה, ושימחק כל המילה והכניס אותו למצב כניסה. אבל זה מאוד מעצבן בשבילי צריך ללכת לתחילת המילה כל הזמן. זה ממש מעצבן. אני לא רוצה צריך לעשות את זה. אני בעצם יכול להיות בכל מקום בתוך שמו והקלד בCIW, ועומד לי לפנימי, כך שאם אני מקליד בCIW שהוא מייצג שינוי במילה אחת, או במילים אחרות, לשנות את המילה אני בפנים כרגע, וזה ייתן לך בדיוק את אותו אפקט. אתה יכול לתקן את זה. באופן דומה, אולי יש לי כמה מקרה כזה שבו מסיבה כלשהי יש כמה מפרידים או משהו כזה, או שיש סימני פיסוק, ואני רוצה למחוק את כל העניין. אם אני מקליד בCIW זה יהיה למחוק את מה שבפנים מפרידים אלה, אבל אני רוצה לקבל את כל העניין שהוא מוקף בשטח ריק, אז אני יכול להשתמש CIW למחוק את כל העניין. אני אקליד בחמש, עושה את אותו הדבר, והקלד בשש. בדומה לכך, אם אני רוצה לשנות משהו שנמצא בתוך הסוגריים אני יכול להקליד בci) למחוק את כל מה שבתוך הסוגריים ולאחר מכן למלא בכל מה שאני רוצה לעשות, כמו תכנית + int, מה שאתה רוצה לעשות, ובאופן דומה, אותו דבר עם ציטוטים. אני יכול לתקן את הטקסט שיש בפנים של ציטוטים, ואני גם יכול לשנות את הדברים שהם חלק פנימי של תגים. האם זה הגיוני? עוד דבר שאתה יכול לעשות הוא שאתה לא צריך להשתמש בג. ניתן גם להשתמש בד אם אתה רוצה למחוק את מה שבתוך תגים אלה. אם אני רוצה למחוק את הטקסט בתוך תג שאני יכול להשתמש dit למחוק תג זה. אני יכול גם להשתמש בVit כדי להדגיש את מה שבפנים את התג, למשל. הדבר השני הוא במקום להשתמש אני באמצע אתה יכול גם להשתמש, אשר מייצג את כל, כל כך זוכר אם אתה משתמש בזה אני אתייחס לאובייקט הטקסט או להשתמש באובייקט טקסט שהכיל בתוכו את המפרידים, אבל אם אתה משתמש זה יכלול טקסט שכן המפריד עצמו. לדוגמא, אם אני רוצה להדגיש את הטקסט הזה ואת התג שמסביב אני יכול להשתמש במע"מ, v לגולת הכותרת ויזואלי, לכולם, ולאחר מכן לא לתג. אתה יכול לעשות משהו כזה גם כן. אולי אני רוצה למחוק google.com זה עם הציטוטים סביבו, כמו גם, ואני יכול להשתמש במשהו כמו דה "כדי למחוק את כל זה, למשל. כל שאלות עד כה? אני מבין שאני זורק עליך הרבה Vim פקודות בבת אחת, וזה בעצם בגלל שאני רוצה לחשוף אתכם לכל הפקודות השונות ואתן לך הקדמה למה שהפקודות האלה עושות בVim. אבל מה קורה לצריך לקרות הוא כאשר אתה חוזר אתה הולך צריך להרים לאט פקודות אלה אחת לאחת. אתה לא רוצה להציף את עצמך, כי זה מרגש מדי. אם אתה רוצה להרים את Vim מה שאתה צריך באמת לעשות הוא להתחיל עם הערכה הבסיסית הראשונה, ואני שברתי אותו לשיעורים בשבילך זה עושה את זה יותר קל לך לעקוב, ולנסות ולשלוט בכל סט של פקודות האחד אחד, אחד בכל פעם. זה יותר מדי לעשות את הכל בבת אחת, אז מה שאתה צריך לעשות כשאתה הולך בחזרה הוא ללכת לשיעור הראשון, שהוא hjkl, מצב הכנסה, לברוח למצב נורמלי, ושמירה והפסקת עישון, וזה כל מה שאתה באמת צריך כדי לשרוד בVim, ולקבל ממש ממש נוח עם זה. ואחרי כמה ימים ברגע שאתה מרגיש בנוח מאוד עם זה אתה צריך לעבור למפעילי תנועה המתקדמים יותר, התנועות מתקדמות יותר, ועל המפעילים וכן הלאה וכן הלאה. אני יודע שאני עובר הרבה, אבל אני רוצה להביא לך נחשף להרבה דברים שונים. אבל במקרה שאתה מעלה את האתגר, אני יכול להראות לך איך אתה יכול לשים את כל זה ביחד באמצעות רוב מה שאנחנו פשוט למדנו היום, ואתה גם יכול לבצע יחד אם אתה רוצה, אבל אני יצרתי את פעילות גופנית כלשהי באופן אקראי. נניח שיש לנו איזה סגל כזה שבו יש לך בלוקים האלה עם השמות של אנשים, בתים, שנים, וריכוזים ומה לא, ואתה רוצה להוסיף רשומה חדש עבור עצמך. מהי הדרך הטובה ביותר עבורך לעשות את זה? בואו נעשה את זה ככה. למה אנחנו לא להדגיש בלוק זה ראשון. אתה הולך לבחור אותו, ואנחנו יכולים הקש Y כדי למשוך אותו, אז עכשיו אנחנו יכולים בעצם להעתיק ולהדביק את תבנית זו ראשונה מבלי לשכתב את כל העניין מהתחלה. עכשיו אני אלחץ j למטה כמה פעמים לרדת, ואני אלחץ על p כדי להדביק אותו. אולי אני אוסיף כמה קווים נוספים עבור חלל, ונניח שעכשיו אני רוצה לשנות את השם שלך למישהו. ואז אני יכול ללכת לכאן והקלד בc2w כמו לפני לשנות את השם הזה. בוב ג'ונס, מי יודע. אולי אם אני רוצה לשנות את הבית אני יכול להיכנס לאמצע כאן וסוג ב CIW ולשים בית קאבוט. כאן עשוי להיות דוגמא לשם ייתכן שתרצה לשקול שימוש מצב ההחלפה לשנות בשנה שהסיום שלך אם אתה רוצה, או שאנחנו יכולים גם להשתמש CIW גם כן. זה לא משנה. אולי אתה רוצה לשנות עיקרי שלך. וזה מה שאתה עושה. ואולי אני אתן לך הדגמה של מה שאני יכול לעשות אם הייתי, אם אתה ממשיך ללמוד פקודות מתקדמות יותר בVim כי אנחנו בקושי מגרדים את פני השטח כאן, ואני יכול לעשות את זה סוג של עריכה אפילו מהר יותר ממה שהראיתי לכם כאן כי אני יודע פקודות נוספות שלא קיבלתי הזדמנות להראות לך להיום. לדוגמא, אם אני רוצה להדגיש את זה שאני יכול לעשות את זה ככה, לנוע כלפי מטה. אני הוספתי מיפוי שלי לבעצם באופן אוטומטי את הדברים בשבילי ואני יכול, אני לא יודע. אני מתכוון, זה הוא רק מנסה להראות לך שאתה יכול באמת, באמת להתחיל לערוך דברים במהירות רבה יותר, במיוחד כאשר יש לך את כל שדות שונים אלה, ובדרך כלל מה שאפשר לעשות הוא סוג של לחיצה והדגשה ולאחר מכן הקלדה. אתה יכול לעשות הכל בבת אחת, העתקה והדבקה, נע מעלה ומטה בין הקובץ, רק תיחום דברים, עיצוב חומר. כל זה ניתן לעשות הרבה, הרבה יותר מהר בVim. רק דבר אחד קטן האחרון שאני חושב שיכול להיות ממש נחמד, אשר לחפש ולהחליף. אלו מכם שהשתמשו בקיצורי דרך ב-Gmail גם אתה יודע שאם אתה מקליד ב/ הוא שולח אותך לתיבת החיפוש, ובהרבה יישומים שונים באופן כללי אתה תמצא קו נטוי כי או אולי לשלוט בקו נטוי או משהו לעשות עם קו נטוי אכניס אותך לאיזשהו מצב חיפוש, וזה גם בעצם מגיע מVim למעשה כי מפעיל הקו הנטוי או פקודת הלוכסן מאפשרת לך קלט איזה מחרוזת שאתה יכול להשתמש בו כדי לחפש בתוך המסמך. n ו-N הון שאתה יכול ללכת למקום הבא ואת המופע הקודם, ואתה יכול גם להשתמש במשהו דומה לחיפוש והחלפה בתוך המסמך. אני אתן לך הפגנה על מה שניתן לעשות. אולי אם אני רוצה למצוא את כל המופעים של המשיכה המחרוזת במסמך זה אני יכול להקליד ב/ משיכה, כפי שניתן לראות בפינה השמאלית התחתונה, וכשאני מקליד להזין אותו מדגיש כל המופעים. אני יכול להשתמש בעיקרון n לקפוץ קדימה ואחורה בין כל מופעים שונים אלו, ובואו נניח שאני רוצה לחפש ולהחליף את משיכה עם כמה מילות אקראיות שגם במסמך. אני יכול ללחוץ על: להתחיל להקליד באיזושהי הפקודה בתוך Vim, כמה הפקודה זה יותר מתוחכם מההסתובבות או מחיקה או משהו כזה. אני מקליד ב% הסימן להתייחס כי אני רוצה להשתמש בפקודת ההחלפה זה על המסמך כולו. הקלד בים לחילוף. זה בא מתוך PEARL בעצם. ופקודה זו פקודה הבאה היא די סטנדרטית שתמצא בPEARL במקום ובשפות תכנה אחרות כי אתה כנראה להתחיל ללמוד כפי שאתה עושה יותר מדעי מחשב, ואני בעצם יכול להשתמש / להקליד /, הקלד את המילה שאני רוצה למצוא ולהחליף ולאחר מכן סוג אחר / והקלד בכל מילה שאני רוצה להחליף מילה זה עם. מי יודע, אולי nyancat. אני עושה את זה, ואז אתה תראה שכל מה שיש להחליפו. אבל אתה תשים לב שיש את המילה הזאת כאן. משום מה חלק מהמקרים שלנו של משיכה מוחלף אבל לא כולם, וזה בגלל שהדרך זה סוג של שפה כבר נכתבה לא רק בVim אבל במקומות אחרים הוא שכאשר אתה מפעיל את פקודת ההחלפה זה יהיה רק ​​להחליף את המופע הראשון של מילה, כי בכל שורה, כך שאם אני רוצה להחליף למעשה את כל המופעים של המילה בכל שורה אז אני צריך לעשות את אותו הדבר אבל מוסיף דגל AG ממש בסוף, אשר מייצג גלובלי, ואז זה יהיה ממש להחליף את כל המופעים. וברגע שאתה לומד בביטויים הרגילים, אין למעשה סמינר CS50 בביטויים רגילים, כך שאם אתה סקרן לגבי ביטויים רגולריים אתה יכול גם לקחת סמינר זה וללמוד עוד. אבל לדוגמא, נניח שיש לי רשימה של שמות כמו זה, ואני רוצה לשנות אותו, ולכן במקום שיש שם המשפחה, פסיק, שם פרטיים אני רוצה לארגן מחדש את זה כל כך שהוא אומר את שם פרטי, שטח פרטי, שם משפחה. למעשה אתה יכול להשתמש בפקודה זו ממש כאן בעצם לעשות את זה בשבילך, אז כמו שאתה יכול לראות כאן אנחנו מתחילים עם זה, מה שאומר שאנחנו רוצים לעשות חיפוש והחלפה, ולאחר מכן הוספתי v \ דגל נקרא, וזה משהו שנקרא דגל הקסם הזה בVim שמאפשר לך לעשות בביטויים רגילים בקלות רבה יותר. ואז משם אנחנו בעצם להתאים לכל שורה אחת כי הוא בצורת סט של מילות, פסיק, מרחב, וקבוצה של מילות או קבוצה של אותיות. \ W + בעצם אומר תו אחד או יותר, והסוגריים משמשים כדי ללכוד קבוצות אלה כדי שאוכל להתייחס אליהם מאוחר יותר. כפי שניתן לראות, ברגע הבאים 2 בלוקים ללכידתן של מילות כי הם מופרדים על ידי פסיק, שטח אז מה שאנחנו רוצים להחליף אותו עם הוא אני משתמש \ 2 ו \ 1 כדי לשוב ולעיין במילות שנתפסו בפקודת הממצא בפועל, וכך \ 2 מתייחס לכל מה שכלול בקבוצה השנייה של סוגריים, \ 1 מתייחס לכל מה שכלול בערכה הראשונה של סוגריים, וכמו שאתה יכול לראות, אני שם את 2 לפני 1 מופרד ברווח כדי לנסות ולהעביר את השם הפרטי לפני שם המשפחה. האם זה הגיוני? ומה אני יכול לעשות הוא שאני יכול להסתיר ראשון אלה כל כך אני רק להריץ את הפקודה בשורות אלה, ואז אני אקליד בפקודה זו. אתה יכול לראות שהוא עושה בדיוק כפי שחלק. ושוב, זה בקושי מגרד את פני השטח, ואם אתה הולך לסמינר הביטוי הרגיל אז אני בטוח שתוכל ללמוד דברים שונים הרבה יותר שאתה יכול לעשות עם ביטויים רגולריים, וזה בעצם מתחיל לרמוז על מה שאתה באמת יכול לעשות עם Vim אם אתה באמת מתחיל להיות הורים שלו. אולי אתה רוצה לארגן מחדש משהו, ואתה רוצה למצוא את כל המופעים של כמה פונקציה שעוקבת איזה שמות דפוס. אתה רוצה לשנות את הדרך ששם. אתה יכול לכתוב איזה פקודה כמו זה כדי לעשות את זה בשבילך, וזה הסוג של גמישות שאתה יכול לקבל במסגרת Vim כי אתה פשוט לא הולך לקבל בעורכי טקסט אחרים. זה בעצם מכסה את כל הדברים שרציתי ללמד אותך היום בסמינר של היום, אבל שוב, אני באמת רוצה להדגיש שאם אתה רוצה להרים את Vim זה נכון שיש עקום למידה גבוהה מעט יותר בהתחלה. בהתחלה מאוד שיהיה מעט פחות פרודוקטיבי ממה שאתה כנראה יהיה אחר, אבל אם אתה מקל עם זה בתוך כמה ימים או כמה שבועות, תלוי כמה מהר אתה לומד, תוכל להיות הרבה, הרבה יותר מהר, ואני ניסיתי לתת לך הפגנה על מה Vim מסוגל, אבל לא באמת הייתה לי הזדמנות להראות לך מה קורה כאשר אני בדרך כלל, למשל, בכיתה אני מקליד לתוך ההערות שלי עם Vim. זה בגלל שאני יכול לעבוד כל כך הרבה יותר מהר בVim ממה שאני יכול עם כל תכנית אחרת. זה ממש עליית הפרודוקטיביות 2 או 3 בזמן Vim בהשוואה לתוכניות אחרות, לא רק עם המהירות של עריכת טקסט, אלא גם בדרך בה אני יכול להסתובב המסמך והדרך בה אני יכול לגשת לקבצים אחרים במחשב שלי ולקפוץ ביניהם וכן הלאה וכן הלאה. זה רק להגביר את הפרודוקטיביות של ממש, ממש ענק. אבל כאשר אתה לומד, אתה רוצה לוודא שאתה לומד דבר אחד בכל פעם, ונסה לא להציף את עצמך עם פקודות שונות רבות מדי כי יש הרבה פקודות והרבה קיצורי דרך שונות שאתה יכול ללמוד בVim. אתה רוצה להרים מעט בכל פעם ובמשך השנים לצבור בהדרגה את ההבנה גדולה יותר ויותר של Vim. אם אתה רוצה להמשיך וללמוד עוד, אלה הם חלק מהנושאים המתקדמים יותר אתה יכול להמשיך ללמוד על, וגם זה בקושי מגרד את פני השטח. הנה כמה תוספים פופולריים אתה יכול להרגיש חופשי לבדוק וגוגל ולשחק איתם אם אתה רוצה ורק לראות איזה סוג של תוספים הם שם בחוץ. ואז בסוף PowerPoint זה, אני כולל חבורה של קישורים למשאבים שונים שאתה יכול להשתמש בו כדי ללמוד ממנו. הנה חבורה של קישורים שונים שאתה יכול להשתמש בו כדי להתחיל לעבוד עם Vim. יש להם הדרכות ומה לא שונות, ולבסוף, אלה הם כמה דברים מתקדמים יותר אתה יכול להשתמש גם לבדוק, כמו גם, כמה יציקות מסך וכמה טכניקות מתקדמות יותר בVim וגם כמה פיסות של קוד המקור שונות שאתה יכול להסתכל על GitHub רק להסתכל על קבצי התצורה של אנשים אחרים או להסתכל על תוספים בVim וכן הלאה וכן הלאה. זה כל מה שיש לי בשבילך. [CS50.TV]