viは、ユーザーの目的に応じて、いくつかのサービスを用意しています。 そのうち重要なものを紹介しましょう。通常viでは行番号は表示しません。行番号を表示させるには、次のようにします。
:set number
あるいは、この略記で :se nu でも構いません。設定を解除するには
:se nonu
のように、noをつけてください。
C言語などのプログラムでは、読み易くするため行の先頭をずらします。(これを「インデント」と言います。)これを自動的に行う機能(autoindent)があります。
:se ai
この機能が設定されると、挿入モードで次の行に移動した時、カーソルの位置が前の行の空白に揃えられます。自動インデントの影響をなくしたい行に対しては^dを入力します(挿入モードの状態で)。自動インデント機能全体をを解除するには :se noai とします。
やはりC言語やLISPなどのプログラムでは、(){}[]などの括弧の対応が重要です。showmatch の機能は、括弧が正しく入力されているかを挿入モード中で、自動的にチェックしてくれます。括弧を入力するたびに、それに対応する括弧があると一瞬カーソルが移動し、その存在を示します。
:se sm
解除はやはり :se nosm です。