viカスタマイズ

:setコマンド

viの実行中にオプション(行番号の表示など)を変える。
オンに切り替える

:set option

オフに切り替える

:set nooption

現在の設定オプションの設定状況を確認

:set all

.exrcファイル

vi起動時にホームディレクトリの.exrcファイルからオプション設定を読み込む。
viやexコマンドを使うときに必ず有効にしておきたいsetコマンドやabコマンド、mapコマンドを設定しておく。

~/.exrcファイルの例

set nowrapscan wrapmargin=7
set sections=SeAhBhChDh nomesg
map q :w^M:n^M
map v :dwElp
ab ORA O'Reilly & Associates, Inc.

.exrc中のコマンドの先頭にコロンをつける必要はない。

viはホームディレクトリ以外に、カレントディレクトリにある.exrcファイルも読み込む。
また、:soコマンド(source)で.exrcファイル以外のファイルを読み込むこともできる。

:so .progoptions

UNIXコマンドの実行

感嘆符(!)を使えば、シェルを生成して感嘆符の後ろにある内容をUNIXコマンドとして認識するようにexに指示できる。

:!command

連続してコマンドを実行したい場合は、

:sh

で、シェルを生成できる。
viに戻りたいときは、control+D で戻れる。

また、:readコマンドとUNIXコマンドを組み合わせれば、UNIXコマンドの実行結果をファイルに読み込める。

:r !date

:rコマンドの前に行アドレスをつければコマンド結果をその行に挿入できる。

:6r !date
テキストのフィルタ処理

コマンド出力がバッファ中のテキストブロックと置き換えることができる。
フィルタをかけたい行アドレスを指定して、その後に感嘆符と実行するコマンドを指定する。

:96,99!sort

96〜99行をsortして結果をその4行に置換する。

キー入力節約用コマンド

単語の略記

省略形を定義するexコマンド

:ab abbr phrase

abbrはphraseの省略形。

International Materials Research Center を imrc で略記できるようにする例

:ab imrc International Materials Research Center

省略形はスペースキーかキャリッジリターンか[Esc](コマンドモードに戻る)を押すと展開される。

現在定義されている省略形の一覧を表示

:ab

mapコマンドの使い方

文字xを編集コマンドのsequenceとして定義

:map x sequence

xに定義されたsequenceを削除

:unmap x

現在マップされている文字の一覧を表示

:map