名前 | 形式 | 機能説明 | オプション | オペランド | コマンド概要 | 使用法 | 環境 | ファイル | 属性 | 関連項目 | 著者 | 注意事項
vi (ビジュアル) は、ラインエディタ ex に基づいたディスプレイ指向のテキストエディタです。vi の中から ex のコマンドモードを使用することも、ex の中から vi のコマンドモードを使用することも可能です。ビジュアルコマンドは、本マニュアルページで説明しています。オプションの設定の仕方 (自動行番号付けや、改行を押したときの新しい出力行の開始など)、および ex ラインエディタのすべてのコマンドは、ex(1) で説明しています。
vi を使用すると、ユーザーがファイルへ行う変更は、ユーザーが見ている端末スクリーンに反映されます。スクリーン上のカーソルの位置は、ファイルの中の位置を示します。
view 呼び出しは、readonly (読み取り専用) フラグを設定することを除くと vi と同じです。
vedit 呼び出しは、初心者を想定したものです。基本的に vi と同じですが、フラグを 1 に設定し、showmode および novice フラグを設定し、magic をオフにします。このようなデフォルトに設定することによって、vi の使い方がより分かりやすくなります。
以下の呼び出しオプションは、vi によって解釈されます (以前に文書化されていたオプションについては、以降の「注意事項」で説明しています)。
フィードバックのすべてを抑制します。編集スクリプト実行時に役に立ちます。
-x オプションと同様に、暗号オプションです。 ただし、vi は ex の C コマンドをシミュレートします。C コマンドは X コマンドに似ていますが、読み取られたテキストは、すべて暗号化されていると仮定します。
LISP プログラムの編集のための設定を行います。
エディタやシステムのクラッシュの結果として保存されたファイル名をすべてリストします。
エディタやシステムのクラッシュ後、filename を編集します (クラッシュが発生したときにバッファの中にあった filename のバージョンを回復します)。
Readonly (読み取り専用モード)。このフラグを設定すると、ファイルに誤って上書きすることを防止できます。
このオプションは -t tag オプションと合わせて指定します。タグファイルがソートされていない場合や、バイナリ検索 (ソートされたタグファイルに依存) がタグの検索に失敗するときに遅延リニア検索も行うように、vi に伝えます。リニア検索は遅いため、大規模なタグファイルを処理する場合には、このフラグを使用するよりもソートされたタグファイルを使用するようにしてください。通常、タグファイルを作成すると、タグファイルはソートされて生成されます。タグファイルについての詳細は、ctags(1) を参照してください。
tag を含むファイルを編集し、その定義に従ってエディタの編集位置を設定します。
vi を使った編集画面を表示します。単に vi コマンドを入力しても同じように実行できます。
冗長。ex コマンドが標準入力によって読み込まれる場合に、その入力を標準エラーに反映します。シェルスクリプト中の ex コマンドを実行する場合に役に立ちます。
デフォルトのウィンドウサイズを n に設定します。これは、低速の回線でエディタを使用するときに役に立ちます。
暗号オプション。これを使用すると、ex の X コマンドをシミュレートし、ユーザーに対してプロンプトを出し、1 つのキーの入力を求めます。このキーを使って、crypt コマンドのアルゴリズムに従い、テキストを暗号化したり、暗号を解除したりし ます。X コマンドは、読み取ったテキストが暗号化されているかどうかを判別します。また、一時バッファファイルも -x オプションに対して入力したキーの変形バージョンを用いて暗号化されます。空の暗号化キーが入力された場合 (つまり、プロンプトに対してリターンを返した場合)、ファイルは暗号化されません。これは、Back Space キーや Undo キーなど、暗号化キーの入力ミスによって、誤って暗号化されてしまったファイルを解読するための回避策です。
指定されたエディタコマンド command (通常は検索コマンドまたは位置設定コマンド) を実行し、編集を始めます。
-t tag と -c command の両方のオプションを指定した場合、-t tag オプションがが始めに実行されます。つまり、tag のついたファイルを -t によって選んでから、コマンドが実行されます。
説明では、CR はキャリッジリターンを表し、ESC はエスケープキーを表します。
矢印キーはカーソル移動
矢印キーと同じ
text を挿入
単語を new に変更
単語を複数形に (単語の終わり; s の追加 ; 入力状態からエスケープ)
文字の削除
単語の削除
行の削除
3 行削除
前回の変更を取り消し
変更を保存し、vi を終了
変更を保存せず、vi を終了
text の検索
スクロールアップとスクロールダウン
ex または ed のコマンド
ファイルが変更されていれば、書き込みと終了。それ以外、終了のみ
変更の書き込み
アクセス権が有効でないときの強制書き込み
終了
変更は無視して、終了
ファイル name の編集
変更は無視して、再編集
ファイルの最後から編集開始
ファイルの n 行目から編集開始
代替ファイルの編集
変更は無視して、代替ファイルの編集
ファイル name に書き込み
ファイル name に上書き
シェルの実行と復帰
cmd の実行と復帰
引数リストの次のファイルを編集
新しい引数リストを指定
現在のファイルと行の表示
カーソルは tag の位置
ex または ed コマンド (substitute または global など) も入力することができます。このときは、前にコロン、後ろにキャッリッジリターンを入力します。
画面の先送り
画面の後戻し
半画面スクロールダウン
半画面スクロールアップ
指定した行の行頭に移動 (デフォルトは文末) n は行番号
pat に一致する行 (前方)
pat に一致する行 (後方)
前回の / または ? コマンドの繰り返し
前回の / または ? コマンドの逆転
n 回目に pat に一致する行 (前方)
n 回目に pat に一致する行 (後方)
次の節または関数
前の節または関数
文の始まり
文の終わり
パラグラフの始まり
パラグラフの終わり
( に対応する )、または { に対応する } を検索
ウィンドウのクリアと再表示
ウィンドウのクリアと再表示 (‸L が -> キーのとき)
現在の行をウィンドウの一番上にして画面を再表示
現在の行をウィンドウの一番下にして画面を再表示
現在の行をウィンドウの真ん中にして画面を再表示
pat に一致する行はウィンドウの一番下
ウィンドウは n 行
1 行スクロールダウン
1 行スクロールアップ
前のコンテキストへカーソルを移動
行の最初の空白以外の部分へカーソルを移動
現在の位置に ASCII 文字の x でマーク付け
x でマークを付けた行へカーソルを移動
x でマークを付けた行の最初の空白以外の部分へカーソルを移動
画面の一番上
画面の一番下
画面の真ん中
次行 (最初の空白以外の部分)
前行 (最初の空白以外の部分)
改行。+ と同じ
次行。同じカラム
前行。同じカラム
最初の空白以外の文字
行の始まり
行の終わり
正方向
逆方向
<- と同じ (バックスペース)
-> と同じ (スペースバー)
x の検索 (前方)
x の検索 (後方)
前方の x の直前の文字に移動
後方の x の直後の文字に移動
前回の f、F、t、または T の繰り返し
前回の f、F、t、または T の逆の繰り返し
n カラム移動
( に対応する )、または { に対応する } を検索
前方の単語
後方の単語
単語の終わり
次の文
次のパラグラフ
前の文
前のパラグラフ
空白文字で区切られた前方の単語
空白文字で区切られた後方の単語
空白文字で区切られた単語の終わり
最後の文字の消去 (バックスペース)
最後の単語の消去
ユーザーの消去文字。‸H (バックスペース)
ユーザーの抹消文字。入力行を消去
ユーザーの消去文字および抹消文字をクォート
挿入を終了。コマンドモードへ復帰
割り込み。挿入モードを中断
1 文字バックタブ。autoindent の左マージンの解除
キャレット (‸) と control-d (‸D) 行頭までバックタブ
autoindent の左マージンは解除しない
行頭までバックタブ。autoindent の左マージンの解除
非出力文字のクォート
カーソルの後に追加
行の終わりに追加
カーソルの前に挿入
空白文字でない最初の文字の前に挿入
下の行をオープン
上の行をオープン
1 文字を x に置換
複数文字を text に置換
演算子のあとにはカーソル動作が続き、カーソルが通過したテキストすべてに演算子が適用されます。たとえば、w は 1 単語移動しますが、dw とすると 1 単語削除します。演算子を重ねると、1 行に適用されます。たとえば dd とすると、1 行すべてを削除します。
削除
変更
行をバッファに退避 (yank)
左シフト
右シフト
コマンドへのフィルタ
行の残りの部分を変更 (c$)
行の残りの部分を削除 (d$)
文字の置換 (cl)
行の置換 (cc)
行の結合
文字の削除 (dl)
カーソルの直前の文字を削除 (dh)
行の yank (yy)
Put は削除したり退避したテキストのうち、最も新しいテキストを挿入します。しかし、バッファが指定された場合は (ASCII の小文字 a から z を使用) そのバッファのテキストを取り出して挿入します。
3 行退避 (yank)
3 文字退避 (yank)
カーソル後にテキストを取り出して挿入
カーソルの前にテキストを取り出して挿入
バッファ x から取り出して挿入
バッファ x に退避 (yank)
バッファ x に削除
ファイルが 2G バイト(231 バイト) 以上ある場合の vi と view の動作については、largefile(5) を参照してください。
vi の実行に影響を与える環境変数 LC_CTYPE、LC_TIME、LC_MESSAGES、NLSPATH についての詳細は、environ(5) を参照してください。
一時的な作業ファイルを置くデフォルトのディレクトリ。directory オプションを使用して、変更可能 (ex(1) の set コマンドを参照)
コンパイルされた端末記述のデータベース
コンパイルされた端末記述のデータベースのサブセット
次の属性については attributes(5) のマニュアルページを参照してください。
vi および ex は、カリフォルニア大学バークレイ校、コンピュータ科学学部、電子技術コンピュータ科学学科で開発されました。
サポートを続けてはいますが、マニュアル上では 2 つのオプションがコマンド構文標準 (intro(1) を参照) に準拠したオプションに置き換えられています。オプション引数を取らない -r オプションは、-L オプションに置き換えられました。+command は -c command に置き換えられています。
ファイルが読み込まれたときに、メッセージ file too large to recover with -r option が表示されることがあります。これは、このファイルの編集および保存はできるが、万一、編集内容が失われた場合には -r オプションでの回復はできないことを意味します。
編集環境が構成オプションにデフォルトで設定されています。編集作業を開始するとき、vi は環境変数 EXINIT を読み込もうとします。変数が定義されていればエディタは EXINIT の値を使い、定義されていなければ $HOME/.exrc 中に設定された値を使います。$HOME/.exrc がなければ、デフォルト値を使います。
$HOME 以外の現在のディレクトリにある .exrc のコピーを使う場合は、EXINIT または $HOME/.exrc 中の exrc オプションを設定してください。exrc を EXINIT または $HOME/.exrc 中で設定すれば、EXINIT で設定されているオプションをローカルな .exrc で無効にすることができます。
/usr/share/lib/terminfo/?/* あるいは /usr/share/lib/terminfo/?/* のエントリを勝手に変更すると (たとえば、エントリを変えたり移したりする)、エントリが存在し、かつ正しいと想定されている vi などのプログラムに影響を及ぼすことがあります。特に、機能の低い端末のエントリを消去すると、不慮の問題を引き起こすことがあります。
‸T を使用したソフトウェアタブは、 autoindent の直後にのみ動作します。
インテリジェント端末上の左右シフトは、削除や挿入などの端末上の文字操作機能を使用しません。
標準の Solaris で使用される vi は将来、POSIX.2 に適合するものに置き変わる予定です (standards(5) を参照)。アドレス指定や機能で ex ファミリを使用するスクリプトでは /usr/xpg4/bin バージョンのユーティリティを使用してください。
名前 | 形式 | 機能説明 | オプション | オペランド | コマンド概要 | 使用法 | 環境 | ファイル | 属性 | 関連項目 | 著者 | 注意事項