検索したときジャンプした行数を表示するハック
/ で検索したとき、もといた位置からどれくらいジャンプしたのかを気になることがあるので、それを表示するようにしてみた。
慣れないとうざい気もするが、慣れの問題だろう。m でマークしたときなども何か表示した方が親切かもしれない。
vi のマークというのは26個もあるが、どこに何をマークしたか覚えておかねばならないので、どうも活用している気になれない。
--- ../src.orig/normal.c 2006-04-29 22:11:20.000000000 +0900 +++ normal.c 2006-10-16 10:38:09.412607500 +0900 @@ -6054,7 +6054,11 @@ char_u *pat; int opt; /* extra flags for do_search() */ { - int i; + int i; + pos_T oldpos; + long jumped; + + oldpos = curwin->w_cursor; cap->oap->motion_type = MCHAR; cap->oap->inclusive = FALSE; @@ -6081,6 +6085,13 @@ /* "/$" will put the cursor after the end of the line, may need to * correct that here */ check_cursor(); + + jumped = curwin->w_cursor.lnum - oldpos.lnum; + if (jumped > 0) + smsg((char_u *)_("%ld lines down"), jumped); + else if (jumped < 0) + smsg((char_u *)_("%ld lines up"), -jumped); + } /*