vi にモードはいくつあるか?

最近初めて Solaris の vi を使って気がついたのだが、set showmode したときのモード表示がたくさんある。
インサートモードに入るのに使ったキーによって、次のように変わる。
i, I INSERT MODE
a, A APPEND MODE
o, O OPEN MODE
c モーション(1行以内) CHANGE MODE
cc, c モーション(複数行) INPUT MODE
traditional vi のソースを見てみると、確かにこのように書かれていた。

switch (mode) {
case 0:		str = "               ";	break;
case 'A':	/*FALLTHROUGH*/
case 'a':	str = "AAPPEND MODE";		break;
case 'C':	/*FALLTHROUGH*/
case 'c':	str = "CCHANGE MODE";		break;
case 'O':	/*FALLTHROUGH*/
case 'o':	str = "OOPEN MODE";		break;
case 'R':	str = "RREPLACE MODE";		break;
case 'r':	str = "rREPLACE 1 CHAR";	break;
default:	str = "IINSERT MODE";
}

INPUT MODE はどこで追加されたのだろう?
nvi で試してみると、OPEN MODE, INPUT MODE はないものの、Insert, Append, Change は区別されていた。
vile, elvis は INSERT MODE しかなかった。
vi がこんなに芸が細かいとは、vim から入った私にはけっこう驚きだった。
vim は r を押したときもモード表示が変わらない。ここは変わってくれた方が親切だと思う。


[追記:2006-11-22]
Solaris で strings `which vi` してみたら「SUBSTITUTE MODE」という単語も出てきた。これは使われていないのだろうか。s, S では c と同じになったが。