פקודות להזזת הסמן
כל השינויים למיניהם שנעשים בעורך vi נעשים לפי המיקום של הסמן, ולכן יש צורך לדעת את הפקודות שמזיזות את הסמן. לעורך vi יש כ-40 פקודות להזזת הסמן, אנו נלמד בתחילה להכיר את הפקודות הבסיסיות.
במרבית המקלדות ניתן להשתמש בארבעת החצים להזיז את הסמן, אולם יש מעדיפים את השימוש בתווים: k - למעלה, j - למטה, l - ימינה ,h - שמאלה.
מקש Enter מזיז גם הוא בדומה ל-j למטה, אולם הוא מציב את הסמן בתחילת השורה בניגוד ל-j שיורד שורה אחת למטה מהמקום הנוכחי. את הסמן ניתן להזיז אך ורק במקומות שבהם קיים תמליל כלשהו, כלומר בקובץ חדש וריק לא ניתן יהיה לזוז איתו.
פקודות קליטת תמליל
יש ארבע פקודות לקליטה מהמקלדת: a - הוספה, i - הכנסה, o או O - פתיחה.
בדרך כלל כאשר פותחים קובץ חדש, לאחר הכניסה ל vi מקישים את התו i שלאחריו ניתן להתחיל להקליד מלל. במידה ויש טעות בהקלדה ניתן למחוק על ידי שימוש במקשים Backspace, Del.
נדגים את ארבעת הפקודות כדי לראות מה כל אחת מהן עושה.
לדוגמא: יש לי קובץ שקיים בו הטקסט הבא:
? what is the weather today
.it is raining
נניח כי הסמן נמצא על התו t שבמילה the (מודגש ומסומן בקו תחתון) ואנו רוצים להוסיף את הטקסט kkkk.
נעבור למצב הוספה (append) על ידי הקשת התו a (לא נראה את הפקודה על המסך), ונקיש את האותיות kkkk. כתוצאה מכך המלל ישתנה ויהפוך להיות:
? what is tkkkkhe weather today
.it is raining
נחזור על הדוגמא עבור פקודת ההכנסה (insert) בטקסט המקורי על ידי הקשת התו i, ואחריו המלל kkkk. התוצאה שתתקבל:
? what is kkkkthe weather today
.it is raining
שוב נחזור על הדוגמא בטקסט המקורי עבור פקודת הפתיחה (open) על ידי הקשת התו O, ואחריו המלל kkkk. התוצאה שתתקבל:
kkkk
? what is the weather today
.it is raining
אם בדוגמא זו היינו מקישים את התו o (במקום O) היינו מקבלים:
? what is the weather today
kkkk
.it is raining
פקודות מחיקה
ישנן שלוש פקודות מחיקה: x - מחיקת תו בודד, r - החלפת תו בודד, dd - מחיקת שורה אחת. הפקודות משתמשות בסמן שעל המסך כנקודה שממנה יתבצעו השינויים.
דוגמא: ניקח את הטקסט מהדוגמא לעיל:
? what is the weather today
kkkk
.it is raining
נעמוד עם הסמן על האות t במילה the (כפי שמסומן). כעת נקיש על התו x, פעולה זו מחקה את התו t ומשכה את המשך הטקסט שמאלה:
? what is he weather today
kkkk
.it is raining
נקיש שוב את התו x וגם האות h נעלמה:
? what is e weather today
kkkk
.it is raining
ניתן לבצע מחיקה זו בדרך נוספת על ידי הקשת הפקודה 2x.
נקיש על Enter כדי להציב את הסמן בתחילת השורה שמתחת, על האות k הראשונה. נניח כי אנו רוצים להחליף את האותיות k בספרות 1234, להחלפת האות הראשונה נקיש r1. פקודה זו מחליפה (replace) את התו המסומן בתו 1:
? what is e weather today
1kkk
.it is raining
הסמן נישאר עדיין באותו מקום לאחר ההחלפה, ולכן יש להזיזו תו אחד ימינה להחלפת התו הבא, ולהקיש r2. כעת הטקסט יראה כך:
? what is e weather today
12kk
.it is raining
נחזור על הפקודות r3 ו- r4 כדי להחליף את שאר התווים.
שוב נקיש Enter כדי לרדת לתחילת השורה הבאה, כעת הסמן נמצא על האות i:
? what is e weather today
1234
.it is raining
נקיש את הפקודה dd, פקודה זו תגרום לשורה להמחק. אם הייתה קיימת שורה נוספת מתחת לשורה שמחקנו היא הייתה מועלת ונכתבת במקום השורה שנמחקה. במחשבים מסויימים ייתכן שהיה מסומן התו @ בצד שמאל של השורה שנמחקה על מנת לסמן שיש שם שורת רווח.
פקודת undo
לעיתים לאחר הקשת פקודה, נרצה לבטל אותה ולחזור למצב שהיה לפניה, לצורך כך נקיש על התו u. למשל, אם מחקנו שורה על ידי הקשת dd נוכל להחזיר אותה אם הפקודה הבאה תהיה u.
הפקודה U (באות גדולה) תעשה את אותה פעולה אך באופן כללי יותר, היא תבטל את כל השינויים שעשינו בשורה הנוכחית שבה הסמן נמצא.