viエディタは『スクリーンエディタ』に分類されるということはすでに説明しました。 ただし、viエディタは、『ラインエディタ』の機能も持っています。
つまり、viエディタは、スクリーンエディタでありラインエディタでもあるということです。
viエディタにラインエディタの機能が含まれているのは、viエディタが、ラインエディタの『edエディタ』を祖先に持つからです。
1970年代に、当時UNIXの標準エディタであったedエディタ(ラインエディタ)に、スクリーンエディタの機能を加えた新しいエディタが開発されました。
開発された新しいエディタは、ラインエディタでありながらスクリーンエディタの機能も持っていました。 起動時はラインエディタとして動作するのですが、いつでもスクリーンエディタに切り替えることができたのです。
そのエディタの名前は『exエディタ』で、内蔵しているスクリーンエディタは『Visual Mode』と名付けられました。
exエディタの公開から数年後、exエディタに『viエディタ』と呼ばれる別名が与えられました。 具体的には、シンボリックリンクによって vi という別の名前で起動することができるようになりました。
これにより、起動コマンドは "ex" と "vi" のどちらでもよくなりました。 ただし、どちらの名前で起動したかによって初期モードが変わります。
"ex" として起動した場合には初期モードはラインエディタとなり、"vi" として起動した場合には初期モードはスクリーンエディタになります。
viエディタは、exエディタでもあります。 よって、スクリーンエディタとしての機能もラインエディタとしての機能も使うことができます。
文書を見たままには編集できないラインエディタですが、決して時代遅れのテキストエディタではありません。 多くの機能でスクリーンエディタの方が効率的ですが、作業内容によってはラインエディタの方が素早く編集できます。
例えば、5行目から17行目まで削除するという場合には、
5,17d
とするだけで、5行目から17行目までが削除されます。
上記の例以外にも、ラインエディタの方が効率よく作業できる場面は多くあります。 viエディタで文書を編集する場合には、ラインエディタの機能もよく使用します。
viエディタはスクリーンエディタですが、ラインエディタの機能も持っています。 スクリーンエディタとラインエディタの機能を使い分けることにより、効率的に文書を編集することができます。
なお、スクリーンエディタの命令は『viコマンド』、ラインエディタの命令は『exコマンド』と呼ばれます。