7. サブコマンドや入力文字列の略記

:map キー コマンド列コマンドモードで実行したい一連のコマンドをキーに割り当てる。(コマンドに、[ESC]などの特殊キーを含めるときは、直前に[CTRL]-[v]を入力する。 xや dなどの viコマンドの名前をキーにした場合は、mapによって割り当てられた機能が優先実行される。
:map! キー 文字列入力モードでキーを入力すると、指定した文字列が入力される。
:unmap[CTRL]-[v]mapで割り当てたキーを無効にする。
:unmap![CTRL]-[v]map!で割り当てたキーを無効にする。

ワンポイント
 コマンド、文字列の割り当ての有効期限は?

設定したキーは 無効の命令を入力するか、viが終了するまで有効です。同じオプションを毎回使用する場合は、.exrcファイルにコマンドを書き込むと、vi起動時に自動的に設定されます。

8.その他のコマンド
■UNIXコマンドの実行
:!UNIXコマンド編集中、viを終了させずにUNIXコマンドを実行する。コマンド実行が終わると実行前の状態に戻る。
:shviを終了させずにシェルを起動する。複数のコマンドを実行するときに便利。exitコマンドでviに戻る。
[CTRL]-[z]viを一時停止し、バックグラウンドに移動する。フォアグラウンドでは、UNIXのプロンプトが表示されコマンド入力が可能になる。 バックグラウンドのviを元に戻すには、プロンプトでfgと入力する。
!カーソル移動コマンドUNIXコマンド編集対象のテキストのうち、カーソル移動コマンドで指定された部分を対象にUNIXコマンド(sort,trなど)を実行する。
[n]!!UNIXコマンド現在行を含む n 行に対してUNIXコマンドを実行する。nを省略すると現在行が対象となる。

■コマンドの取り消し、再実行
u     (undo)直前のコマンド実行の取り消し
U同一行で行われた変更の取り消し
.(ドット)直前の変更コマンド(削除、置換など)の実行を繰り返す

ワンポイント

.(ドット)コマンドは繰り返しに便利
例えば、同じ単語の置き換えを繰り返ししたいとき、1回目だけは、cw→置き換えたい単語の入力→[ESC] と実行し、2回目以降は変更したい単語の先頭にカーソルを移動して .と押すだけでOKです。
■行をまとめる
J  (join)現在行と次行を1行にまとめる。
     
9. .exrcファイル
■$HOME/.exrcファイル

set や mapなどの設定を記述しておくファイル。 vi起動時にファイルの中に書いてある設定が自動的に行われる。ワーキングディレクトリ--ホームディレクトリの順に探して読み込むので、 一般的な設定は自分のホームディレクトリに、各種作業用の設定は該当するディレクトリ配下に .exrcファイルを作成するとよい。 ワーキングディレクトリの.exrcを有効にするためには、オプションexrcの設定が必要なシステムもある。   
   
(ex.)
set exrc nu showmode tabstop=4   
また、環境変数EXINITにコマンドを登録する方法もある。   
   
(ex.)
% setenv EXINIT='set exrc nu showmode tabstop=4' (Cシェル系)
$ EXINIT='set exrc ・・・・' ; export EXINIT (Bシェル系)