איך עובדת רשימת הקפיצות של vim
אחד הפיצ'רים שאני הכי אוהב ב vim הוא רשימת הקפיצות. אם אתם לא מכירים (ואולי גם אם כן) הנה הסבר קצר מה זה ולמה זה טוב.
1. קפיצה ב vim
שתי הדרכים "הקלאסיות" לטייל בקוד בעורכי טקסט הן ללחוץ על שם קובץ עם סמן העכבר ולהזיז את הסמן עם החצים עד שמגיעים למקום שרוצים לערוך. ב vim אנחנו כמעט לא משתמשים בשני מנגנונים אלה ובמקומם יש לנו קפיצות:
קפיצה לקובץ חדש עם
:e
.קפיצה לטקסט מסוים בקובץ עם
/
.קפיצה לשורה מסוימת, או ל marker מסוים.
קפיצה למקום האחרון בו שיניתי טקסט עם
'.
.קפיצה לקובץ ששמו נמצא מתחת לסמן עם
gf
.קפיצה להגדרה של פונקציה עם
gd
.
ועוד המון קפיצות בסגנון זה.
הטריק הוא שכל פעם שאנחנו קופצים ממקום למקום ב vim, אז וים שומר את המקום הקודם שהיינו בו ברשימה שנקראת רשימת קפיצות. בכל רגע נתון אפשר לכתוב :jumps
ולראות את הרשימה הזאת, או לכתוב :clearjumps
כדי למחוק את ההיסטוריה.
2. טיול ברשימת הקפיצות
נניח ש jumps
מראה לי את הפלט הבא:
:
jump line col file/text
8 1 0 NERD_tree_1
7 12 0 NERD_tree_1
6 4 0 package.json
5 1 0 src/App.vue
4 3 24 src/main.js
2 1 0 NERD_tree_2
1 5 0 NERD_tree_2
> 0 1 61 import { createRouter, createWebHashHistory } from 'vue-router'
1 1 0 ~/tmp/blog/vue/memory-game/node_modules/vue-router/dist/vue-router.d.ts
אז זה אומר שאני עכשיו מסתכל על השורה שמתחילה ב import
ומסומנת בחץ. אני יכול ללחוץ על Ctrl+O כדי לזוז קפיצה אחת אחורה כדי להגיע לנווט הקבצים שנמצא בדיוק שורה אחת מעליי, או Ctrl+I כדי לקפוץ שורה אחת קדימה לקובץ vue-router.d.ts
.
אפשר גם לדלג לקפיצה מסוימת, למשל לחיצה על 6 ואז על Ctrl+O תשלח אותי לקפיצה מספר 6 כלומר לקובץ package.json
.
שימוש בקפיצות וצפיה ברשימת הקפיצות עוזר לנו לשמור על אוריינטציה במיוחד בניווט בפרויקט גדול ולהבין בדיוק מה שיניתי ואיפה.