viの威力は、「UNIXコマンドの呼び出し」によって最大限に発揮されます。UNIXのコマンドを呼び出すには、次のようにするだけです。
:!コマンド
たとえば、 :!ls でディレクトリのファイル一覧を見ることができます。さらに :!cat ファイル名 のようにすれば、参照したいファイルを一時的に画面に表示することもできます。(リターンキーを押せば、もとのviの画面に戻ります。)date、calといった単純なコマンドは言うまでもなく、作成中のプログラムを、試験的にコンパイルしたり実行させたりすることも容易です。また、複数のコマンドを続けて実行するため、一時的にUNIXのコマンドライン入力になることもできます。(最近のエディターでは、当り前の機能になりましたが、viはその元祖と言えます。)
:!csh
これで新しいシェルが起動されます。このシェルは、^dで終了し、もとのviの画面になります。 さらに便利なのは、コマンドの実行結果をテキストに付け加える機能です。
:r!コマンド
これで、コマンドの結果がカーソルのある行の下に付け加えられます。 UNIXのコマンド、とりわけ各種のフィルターや自作のシェルスクリプトと組み合わせることによって、様々なことが可能となります。
:r!head program :r!grep printf program :r!sed −n 4,8p program
それぞれ、ファイルprogramの、先頭の10行を読み込む、printfという文字列を含む行を読み込む、4行目から8行目までを読み込む、という働きをします。