TL;DR
viのもっとも便利な機能はhjklによるホームポジションに手を置いたままのカーソル移動ですが(俺調べ)
次に手放せない要因になっているのは、マークと名前付きバッファです。
操作方法については色々ネットに情報が出ていますが、具体的な使用ケースについてはあまり情報が無いように感じたので個人的に便利だと思っている使い方を共有してみます。
今回はまずマークについて
マーク
コマンドは色々ありますが、私が使うのは以下だけです。
m[a-zA-Z] カーソル位置をマークする
'[a-zA-Z] 指定のマークの行頭に移動する
:marks マーク一覧。なにをマークしたのか忘れた時に使う。
個人的にはしおりみたいなものだと思っています。しおりを挟んだ箇所にいつでも一発で戻れるという。よくあるとーってもスコープが長い関数の中を追っている時に、とりあえず追っている変数の宣言箇所に
maと素早くaでマークして、そこに飛びたくなったら、現在地をmmとmでマーク(m連打でマークできるのがポイント)
'aで宣言部に戻り'mでまた元の場所に戻るとかよくやります。
変数の名前を連想する名前でマークすると結構な数を覚えていられるのでおすすめです。
たとえば、isActive... てな場所であればmiでiとマークするとか。
ぜひお試しあれ。