日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
VI(1) FreeBSD 一般コマンドマニュアル VI(1) 名称 ex, vi, view -- テキストエディタ 書式 ex [-FRrSsv] [-c cmd] [-t tag] [-w size] [file ...] vi [-eFRrS] [-c cmd] [-t tag] [-w size] [file ...] view [-eFrS] [-c cmd] [-t tag] [-w size] [file ...] 解説 vi は、スクリーン指向のテキストエディタです。ex は、行指向のテキストエ ディタです。ex と vi は、同じプログラムの異なるインタフェースで、編集セッ ションの間に行ったり来たり切り替えることが可能です。view は、vi の -R (読 み込み専用) オプションを使用するのと同等です。 このマニュアルページは、ex/vi テキストエディタの nex/nvi バージョンとして 提供されるマニュアルページです。nex/nvi は、オリジナルの Fourth Berkeley Software Distribution (4BSD) ex と vi プログラムのための bug-for-bug (バ グまで含めた) 互換性の置き換えを目的としています。このマニュアルページの 残りについて、nex/nvi は、ex/vi の歴史的な実装を区別することが必要なとき のみ使用されます。 このマニュアルページは、ex/vi をよく知っているユーザを対象としています。 他の人は、このマニュアルページの前にエディタのよいチュートリアルをほぼ確 実に読むべきです。利用者の良く知らない環境で、間違いなくすぐに仕事をしな ければならないなら、ファーストスタートアップとタイトルをつけられたオプ ションの説明の後のセクションを読んでください。利用者が行なおうとしている ことを理解するには、おそらく十分です。 次のオプションが利用可能です: -c cmd 最初にロードされたファイルで cmd を実行します。ファイルの最初の ポジショニングに特に役に立ちますが、cmd は、ポジショニングする コマンドに制限されません。これは、歴史的な ``+cmd'' 構文のため の POSIX 1003.2 インタフェースです。nex/nvi は、古い構文と新し い構文の両方をサポートしています。 -e あたかもコマンド名が ex であったかのように、ex モードで編集を開 始します。 -F 最初に編集し始めるとき、ファイル全体をコピーしません。(デフォル トは、利用者が編集セッションの間に、誰か他の人がファイルを修正 した場合に、コピーを行なうことです。) -R あたかもコマンド名が view であるか、または readonly (読み込み専 用) オプションが設定されていたかのように、読み込み専用モードで 編集を開始します。 -r 指定されたファイルを復旧するか、またはファイルが指定されないな ら、復旧することができたファイルをリストします。指定された名前 によって復旧可能なファイルが存在しないなら、あたかも -r オプ ションが指定されなかったかのように、ファイルは、編集されます。 -S 外部プログラムへのすべてのアクセスを許可せずに、secure (安全な) 編集オプションの設定で実行します。 -s バッチモードに入ります。ex 編集セッションでのみ適用可能です。 バッチモードは、ex スクリプトを実行するとき、役に立ちます。プロ ンプト、通知メッセージ、と他のユーザ指向のメッセージは、オフに され、スタートアップファイルまたは環境変数は、読み込まれませ ん。これは、歴史的な ``-'' 引数のための POSIX 1003.2 インタ フェースです。nex/nvi は、古い構文と新しい構文の両方をサポート しています。 -t tag 指定された tag (タグ) (ctags(1) 参照) で編集を開始します。 -v あたかもコマンド名が vi であるかのように、vi モードで編集を開始 します。 -w size 最初のウィンドウサイズを行の指定された数に設定します。 ex/vi のためのコマンド入力は、標準入力から読み込まれます。vi インタフェー スでは、標準入力が端末でないなら、エラーです。ex インタフェースでは、標準 入力が端末でないなら、ex は、とにかく、それからコマンドを読み込みます。し かしながら、セッションは、まさに -s オプションが指定されたかのように、正 確にバッチモードのセッションとなります。 速いスタートアップ このセクションは、vi を使用して、単純な編集作業を行うために必要とする最低 限を利用者に伝えます。スクリーンエディタを以前に使用していないなら、この 単純な紹介でさえ問題があるかもしれません。その場合に、既に vi を知ってい る人を見つけて、彼らに、このセクションを通して利用者を導いてもらうべきで す。 vi は、スクリーンエディタです。これは、スクリーンの最後の行を除いて、各ス クリーンの行にファイルの一部を表示して、ほとんどすべてのスクリーンを利用 することを意味します。スクリーンの最後の行は、利用者が vi にコマンドを与 えて、vi が利用者に情報を与えるために使用されます。 利用者が理解しておく必要がある他のことがらは、vi がモードがあるエディタで あるということです、すなわち、利用者は、テキストを入力するか、またはコマ ンドを実行するように、どれか一方を行なう正しいモードでなければなりませ ん。最初にファイルを編集し始めるとき、コマンドモードとなります。入力モー ドに切り替えるコマンドがあります。入力モードから抜け出すただ 1 つのキーが あり、それは、<escape> (エスケープ) キーです。 キーの名前は、< と > で表示されます、例えば、<escape> は、利用者の端末で 通常、``Esc'' とラベルが付けられている、``escape'' キーを意味します。利用 者が、一体どのモードでいるか混乱するなら、vi がビープ音を出すまで、 <escape> キーを入力し続けてください。一般的に、vi は、許可されないことを しようとするなら、ビープ音を出します。また、エラーメッセージを表示しま す。 ファイルを編集し始めるために、次のコマンドを入力します: $ vi file 編集を始めるとすぐに、入力するべきコマンドは、次の通りです: :set verbose showmode これで、エディタは、利用者に冗長なエラーメッセージを与え、スクリーンの下 端に現在のモードを表示します。 ファイルをあちこち移動するコマンドは、次の通りです: h カーソルを 1 文字左に移動します。 j カーソルを 1 行下に移動します。 k カーソルを 1 行上に移動します。 l カーソルを 1 文字右に移動します。 <cursor-arrows> カーソルの矢印キーも動作するはずです。 /text ファイル中の文字列 ``text'' を検索して、カーソルをその最初の文字 に移動します。 新しいテキストを入力するコマンドは、次の通りです: a カーソルの後に、新しいテキストを追加します。 i カーソルの前に、新しいテキストを挿入します。 o カーソルがある行の下に新しい行を開いて、テキストを入力し始めま す。 O カーソルがある行の上に新しい行を開いて、テキストを入力し始めま す。 <escape> いったん、a, i, o または O コマンドの 1 つを使用して、入力モー ドに入ると、テキストを入力することを終了するために、<escape> を 使用し、コマンドモードに戻ります。 テキストをコピーするコマンドは、次の通りです: yy カーソルがある行をコピーします。 p カーソルがある行の後にコピーされた行を追加します。 テキストを削除するコマンドは、次の通りです: dd カーソルがある行を削除します。 x カーソルがある文字を削除してください。 ファイルに書き込むコマンドは、次の通りです: :w vi のコマンド行の引数として、最初に使用された名前でファイルに書き 戻します。 :w file_name 名前 file_name でファイルに書き戻します。 編集を終了して、エディタを終るコマンドは、次の通りです: :q 編集を終了して、vi から去ります (ファイルを修正しているが、利用者 が変更を保存しないなら、vi は、終了することを拒否します)。 :q! 利用者が行なったあらゆる修正を廃棄して、終了します。 最後の 1 つの注意は: 通常でない文字は、スクリーンで 1 カラムを超えて占め ることができ、長い行は、単一のスクリーン行を越えることができます。上記の コマンドは、``物理的な'' 文字と行に作用します、すなわち、それらは、すべて の文字が、どんなにそれを占めるスクリーン行があっても、すべての文字が、ど んなにそれを占めるスクリーンカラムがあっても影響します。 正規表現 ex/vi は、ex substitute, global と v コマンドの最初の部分と検索パターンで のように、行アドレスのための re_format(7) で文書化されている、正規表現 (RE) をサポートしています。基本的な正規表現 (BRE) は、デフォルトで有効に されています。拡張された正規表現 (ERE) は、extended オプションが有効にさ れるなら、使用されます。magic オプションを使用して正規表現の使用を、無効 にすることができます。 次の文字列には、正規表現の ex/vi バージョンで特別の意味があります: • 空の正規表現は、使用される最後の正規表現と同等です。 • `\<' は、単語の始まりと一致します。 • `\>' は、単語の終了と一致します。 • `~' は、最後の substitute (置換) コマンドの置き換えられた部分と一致し ます。 バッファ バッファは、コマンドが、後の使用のために変更されるか、または削除されたテ キストを保存することができる領域です。vi のバッファは、ダブルクォートが先 行した単一文字で指定されます、例えば、"<c>。ex のバッファは、同じですが、 ダブルクォートなしです。nex/nvi は、バッファ名が期待される位置で別の意味 のないあらゆる文字の使用を許可します。 すべてのバッファは、行モードまたは文字モードのいずれかです。テキストに行 モードでバッファに挿入することは、それが含んでいる行の各々のための新しい 行を作成します、一方、文字モードのバッファは、それが含んでいる最初と最後 の行以外のあらゆる行のために新しい行を作成します。最初と最後の行は、現在 の行の一部になって、現在のカーソル位置に挿入されます。バッファに 2 行以上 があるなら、現在の行は、それ自身分割されます。バッファにテキストを格納す るすべての ex コマンドは、行モードでそのように行ないます。vi コマンドの振 る舞いは、次のように、それらの関連する動作コマンドに依存します: • <control-A>, h, l, ,, 0, B, E, F, T, W, ^, b, e, f and t は、宛先バッ ファを文字指向にします。 • j, <control-M>, k, ', -, G, H, L, M, _ と | は、宛先バッファを行指向 にします。 • $, %, `, (, ), /, ?, [[, ]], { と } は、最初と終りの位置が行の最初の 文字と最後の文字でないなら、宛先バッファを文字指向とします。その場合 に、バッファは、行指向です。 ex コマンド display buffers は、バッファごとの現在のモードを表示します。 指定されたバッファ `a' から `z' は、それらの大文字の等価物を使用して参照 され、その場合に、新しい内容は、それを交換する代わりに、バッファに追加さ れます。 指定されたバッファ `1' から `9' は、特別です。c (変更) または d (削除) コ マンドを使用して修正されたテキストの領域は、他のバッファが指定されないな ら、そして、それが次の条件の 1 つを満足するなら、数値のバッファ `1' に入 れられます: • 2 行以上の文字を含んでいます。 • 行指向の動作を使用して指定されます。 • 次の動作コマンドの 1 つを使用して指定されます: <control-A>, `<character>, n, N, %, /, {, }, (, ), と ?。 このコピーが終わる前に、バッファの以前の内容 `1' は、バッファ `2' に移動 され、`2' は、バッファ `3' に移動されるなどされます。バッファ `9' の内容 は、廃棄されます。この回転は、別のバッファを指定するユーザにかかわらず起 こることに注意してください。vi で、テキストは、数値のバッファに明示的に格 納されます。この場合に、バッファの回転は、バッファの内容の置換の前に起こ ります。数値バッファは、vi モードでのみ利用可能です。 VI コマンド 次のセクションは、vi エディタのコマンドモードで利用可能なコマンドについて 説明します。次の単語には、コマンド記述で特別の意味があります: bigword 1 組の非空白類文字。 buffer コマンドがテキストを置く一時的な領域。指定されるなら、デフォルト のバッファが使用されます。また、上記の「バッファ」を参照してくだ さい。 count 正の数は、コマンドの繰り返しの望ましい数を指定するために使用され ます。指定されないなら、デフォルトは、1 です。 motion テキストの影響を受けた領域の別の終り、現在のカーソル位置である最 初を示すカーソル移動コマンド。コマンド文字の繰り返しは、全体の現 在の行に影響します。 word 文字、数字または下線のシーケンス。 buffer と count の両方が存在するなら、任意の順序で指定されます。motion と count の両方が存在するなら、動作の一部を考慮して、ともに効率的に増加され ます。 <control-A> カーソル位置で開始される単語を前方に検索します。 [count] <control-B> count スクリーン、ページを後ろ方向に戻ります。できるなら、オーバ ラップする 2 行が保持されます。 [count] <control-D> count 行、前方にスクロールします。count が与えられないなら、最後 の <control-D> または <control-U> コマンドによって指定された行の 数を前方にスクロールします。これが最初の <control-D> コマンドであ るなら、現在のスクリーンの行の数の半分をスクロールします。 [count] <control-E> できるなら、現在の行とカラムをそのままにしたままで、count 行、前 方にスクロールします。 [count] <control-F> count スクリーン、前方にページを進めます。できるなら、オーバラッ プする 2 行が保持されます。 <control-G> 次のファイル情報を表示します: (vi に与えられた) ファイル名。ファ イルが最後に書き込まれたときからファイルが修正されたかどうか。 ファイルが読み込み専用であるか。現在の行番号。ファイルの行の合計 数。ファイルの行の合計のパーセンテージとして現在の行番号。 [count] <control-H> [count] h 現在の行で count 文字カーソルを後ろに移動する。 [count] <control-J> [count] <control-N> [count] j 現在のカラムを変更せずに、count 行、カーソルを下に移動する。 <control-L> <control-R> スクリーンを再描画します。 [count] <control-M> [count] + その行の最初の空白でない文字に count 行、カーソルを下に移動しま す。 [count] <control-P> [count] k 現在のカラムを変更せずに、count 行、カーソルを上に移動します。 <control-T> 最も近いタグの文脈に戻ります。 [count] <control-U> count 行、後方にスクロールします。count が与えられないなら、最後 の <control-D> または <control-U> コマンドによって指定された行の 数を後方にスクロールします。これが最初の <control-U> コマンドであ るなら、現在のスクリーンで行の数の半分をスクロールします。 <control-W> ウィンドウの次のより低いスクリーンに切り替えるか、またはウィンド ウにより低いスクリーンがないなら、最初のスクリーンに切り替えま す。 [count] <control-Y> できるなら、現在の行とカラムをそのままにしたままで、count 行、後 方にスクロールします。 <control-Z> 現在のエディタのセッションをサスペンドします。 <escape> 入力されている ex コマンドを実行するか、またはそれが部分的だけで あるなら、キャンセルします。 <control-]> タグ参照をタグのスタックにプッシュします。 <control-^> 最も最近編集されたファイルに切り替えます。 [count] <space> [count] l 現在の行を変更せずに、count 文字、カーソルを前方に移動します。 [count] ! motion shell-argument(s) <carriage-return> (単一の引数にバンドルされた) シェル引数が後続する -c フラグで呼び 出された shell オプションによって指定されたプログラムの出力 (標準 出力と標準エラー) で、count と motion による範囲の行を置き換えま す。シェル引数内で、`%', `#' と `!' 文字は、それぞれ、現在のファ イル名、以前の現在のファイル名と以前の ! または :! コマンドのコマ ンドテキストに拡張されます。`%', `#' と `!' の特別の意味は、バッ クスラッシュでそれらをエスケープすることによって、無効にすること ができます。 [count] # #|+|- カーソル位置、またはそれに続く最初の非空白文字で始まる count に よってカーソルの下の数を (後続する `#' または `+') 増加させるか、 または (後続する `-') 減少させます。先導する `0x' または `0X' が ある数は、16 進数として解釈されます。先導する `0' がある数は、8 進数でない数を含んでいなければ、8 進数として解釈されます。他の数 は、`+' または `-' を前に付けることができます。 [count] $ 行の終りにカーソルを移動します。count が指定されるなら、さらに count - 1 行、カーソルを下に移動します。 % カーソル位置またはその右に最も近く見つけられたものと一致する matchchars 文字に移動します。 & 現在の行で以前の置換コマンドを繰り返します。 '<character> `<character> 文字 character によってマークされれたカーソル位置に返るか、また は、character が `'' または ``' であるなら、次のコマンドの最後の 前のカーソルの位置に返ります: <control-A>, <control-T>, <control-]>, %, ', `, (, ), /, ?, G, H, L, [[, ]], {, }。最初の形 式は、character でマークされた行の最初の非空白文字に返ります。2 番目の形式は、character によってマークされた行とカラムに返りま す。 [count] ( [count] ) それぞれ count センテンスを後方または前方に移動します。センテンス は、前のセンテンス、パラグラフまたはセクション境界に続く最初の空 白でない文字から始まり、次のピリオド、感嘆符または疑問符文字に、 閉じ括弧、ダブルクォート、またはシングルクォート文字の任意の数が 続き、行の終りか、または 2 つの空白類文字のいずれかが続くまで継続 するテキストの領域です。空行のグループ (または、空白類文字だけを 含んでいる行) は、単一のセンテンスとして扱われます。 [count] , 逆検索文字 (すなわち、最後の F, f, T または t コマンド) count 回 数。 [count] - 前の行の最初の非空白文字に移動します、count 回数。 [count] . テキストを修正した最後の vi コマンドを繰り返します。count は、繰 り返されたコマンドの count 引数と関連する motion (動作) の両方を 置き換えます。. コマンドが u コマンドを繰り返すなら、変更されたロ グは、u コマンドのアクションに依存して、前方または後方に回転され ます。 /RE <carriage-return> /RE/ [offset] [z] <carriage-return> ?RE <carriage-return> ?RE? [offset] [z] <carriage-return> N n 正規表現で前方 (`/') または後方 (`?') に検索します。n と N は、そ れぞれ、同じ方向または反対方向に最後の検索を繰り返します。RE が空 であるなら、最後の検索する正規表現が使用されます。offset が指定さ れるなら、カーソルは、一致した正規表現の前に、または後の offset 行に置かれます。n または N コマンドのいずれかが ! コマンドのため の動作の構成要素として使用されるなら、コマンドのテキストのための プロンプトはなく、前の ! が実行されます。複数の検索パターンは、セ ミコロンと 0 個以上の空白類文字で、それらを区切ることによってグ ループ化されます。これらのパターンは、最後の検索パターンによって 決定された最終のカーソル位置で左から右に評価されます。z コマンド は、結果の行の位置を変えるために閉じた検索式に追加されます。 0 現在の行の最初の文字に移動します。 : ex コマンドを実行します。 [count] ; 最後の文字の検索を繰り返します (すなわち、最後の F, f, T または t コマンド) count 回数。 [count] < motion [count] > motion shiftwidth の値によって、それぞれ count 行、左または右にシフトし ます。 @ buffer vi コマンドとして指定された buffer を実行します。バッファは、ex コマンドも含んでいますが、それらは : コマンドとして表現されなけれ ばなりません。buffer が `@' または `*', であるなら、実行された最 後のバッファが使用されます。 [count] A 行の終りにテキストを追加して、入力モードに入ります。count 引数が 与えられるなら、文字入力は、入力モードが終了した後に、count - 1 回、繰り返されます。 [count] B count 大きな単語 (bigword) 後方に移動します。 [buffer] C 現在の位置から行の終りまでテキストを変更します。buffer が指定され るなら、削除されたテキストを buffer に ``yank'' します。 [buffer] D 現在の位置から行の終りまでテキストを削除します。buffer が指定され るなら、削除されたテキストを buffer に ``yank'' します。 [count] E count の大きな単語 (bigword) の終りに、前方に移動します。 [count] F <character> <character> に対して現在の行を通して後方に count 回、検索します。 [count] G count が指定されないなら、行 count に、またはファイルの最後の行に 移動します。 [count] H スクリーンの先頭からスクリーンの行 count - 1 行下に移動します。 [count] I 行の初めにテキストを挿入して、入力モードに入ります。count 引数が 与えられるなら、文字入力は、count - 1 以上の回数、繰り返されま す。 [count] J 現在の行で count 行、結合 (join) します。2 つの結合された行の間の 間隔は、前のものが疑問符、ピリオドまたは感嘆符で終わっているな ら、2 つの空白類文字に設定されます。そうでなければ、1 つの空白類 文字に設定されます。 [count] L スクリーンの下端のスクリーンの行 count - 1 行上に移動します。 M スクリーンの中央のスクリーン行に移動します。 [count] O 現在の行の上の新しい行にテキストを追加して、入力モードを入りま す。count 引数が与えられるなら、文字入力は、count - 1 以上の回 数、繰り返されます。 [buffer] P buffer が文字指向であるなら、現在のカラムの前に、または行指向であ るなら、現在の行の前に buffer からテキストを挿入します。 Q vi (または visual) モードを終了して、ex モードに切り替えます。 [count] R 現在の行の文字を置き換えて、入力モードに入ります。count 引数が与 えられるなら、文字入力は、挿入モードを終了するとき、count - 1 以 上の回数、繰り返されます。 [buffer] [count] S count 行を置換します。buffer が指定されるなら、削除されたテキスト を buffer に ``yank'' します。 [count] T <character> 指定された <character> の後の文字に対して現在の行を通して後方に count 回、検索します。 U カーソルが最後に移動する前の状態に現在の行を復旧します。 [count] W count の大きな単語 (bigword) を前方に移動します。 [buffer] [count] X 現在の行で、カーソルの前の count 文字を削除します。buffer が指定 されるなら、削除されたテキストを buffer に ``yank'' します。 [buffer] [count] Y buffer に count 行コピーするか、(または ``yank'') します。 ZZ 編集するファイルがこれ以上ないなら、ファイルを書き込み、vi を終了 します。2 つの ``quit'' コマンドを入力することは、編集するあらゆ る残りのファイルを無視します。 [count] [[ count セクション境界を後方に移動します。 [count] ]] count セクション境界を前方に移動します。 ^ 現在の行の最初の非空白文字に移動します。 [count] _ count - 1 行下の最初の非空白文字に移動します。 [count] a カーソルの後にテキストを追加して、入力モードに入ります。count 引 数が与えられるなら、文字入力は、count 回数繰り返されます。 [count] b count 単語後方に移動します。 [buffer] [count] c motion count と motion によって記述されたテキストの領域を変更します。 buffer が指定されるなら、buffer に変更されたテキストを ``yank'' します。 [buffer] [count] d motion count と motion によって記述されたテキストの領域を削除します。 buffer が指定されるなら、削除されたテキストを buffer に ``yank'' します。 [count] e 前方に count 単語の終りに移動します。 [count] f <character> <character> に対して現在の行の残りを通して、count 回前方に検索し ます。 [count] i カーソルの前にテキストを挿入して、入力モードに入ります。count 引 数が与えられるなら、文字入力は、count 回数、繰り返されます。 m <character> <character> として現在のコンテキスト (行とカラム) を保存します。 [count] o 現在の行の下の新しい行にテキストを追加して、入力モードに入りま す。count 引数が与えられるなら、文字入力は、count - 1 回、繰り返 されます。 [buffer] p buffer からのテキストを追加します。テキストは、buffer が文字指向 であるるなら、現在のカラムの後に追加され、そうでなければ、現在の 行の後に追加されます。 [count] r <character> count 文字を character と置き換えます。 [buffer] [count] s 現在の文字で始まる現在の行の count 文字を置換します。buffer が指 定されるなら、buffer に置換されたテキストを ``yank'' します。 [count] t <character> <character> の直前の文字に対して現在の行を通して、count 回、前方 に検索します。 u ファイルに行なわれた最後の変更を取消します。繰り返されるなら、u コマンドは、これらの 2 つの状態を交互に代わります。u の直後に使用 されるとき、. コマンドによって、変更されたログは、u コマンドの動 作に依存して、前方または後方に回転します。 [count] w 前方に count 単語を移動します。 [buffer] [count] x 現在のカーソル位置で count 文字を削除しますが、行の終りまでです。 [buffer] [count] y motion バッファに count と motion によって指定されたテキスト領域をコピー するか、(または ``yank'') します。 [count1] z [count2] type オプションで、スクリーンの位置の変更とサイズの変更を行なって、再 描画します。count2 が指定されるなら、スクリーンサイズを count2 行 に制限します。次の type 文字が使用されます: + count1 が指定されるなら、スクリーンの先頭の行 count1 に置 きます。そうでなければ、現在のスクリーンの後にスクリーン を表示します。 <carriage-return> スクリーンの先頭の行 count1 に置きます。 . スクリーンの中心の行 count1 に置きます。 - スクリーンの下端の行 count1 に置きます。 ^ count1 が与えられるなら、count1 の前のスクリーンの前にス クリーン (すなわち、前の 2 つのスクリーン) を表示します。 そうでなければ、現在のスクリーンの前のスクリーンを表示し ます。 [count] { 後方に count パラグラフ、移動します。 [column] | 現在の行の特定の column (カラム) に移動します。column (カラム) が 省略されるなら、現在の行の始めに移動します。 [count] } 前方に count パラグラフ、移動します。 [count] ~ motion tildeop オプションが設定されないなら、次の count (複数の) 文字と motion を指定することができない場合に逆にされます。そうでなけれ ば、motion は、強制的で、~ は、count と motion によって指定された テキスト領域の文字の場合を逆にします。 <interrupt> 現在の操作を割り込みます。<interrupt> 文字は、<control-C> です。 VI テキスト入力コマンド 次のセクションは、vi エディタのテキスト入力モードで利用可能なコマンドにつ いて説明しています。 <nul> 前の入力を再実行します。 <control-D> 前の shiftwidth カラム境界また消去します。 ^<control-D> 自動インデント文字のすべてを消去して、自動インデントのレベルをリ セットします。 0<control-D> すべての自動インデント文字を消去します。 <control-T> 次の shiftwidth カラム境界に前方に移動するために、十分な <タブ> と <空白> 文字を挿入します。 <erase> <control-H> 最後の文字を消去します。 <literal next> 任意の特別の意味から次の文字をエスケープします。<literal next> 文 字は、通常 <control-V> です。 <escape> ファイルにすべてのテキスト入力を解決して、コマンドモードに戻りま す。 <line erase> 現在の行を消去します。 <control-W> <word erase> 最後の単語を消去します。単語の定義は、altwerase と ttywerase オプ ションに依存します。 <control-X>[0-9A-Fa-f]+ テキストに指定された 16 進数値で文字を挿入します。 <interrupt> コマンドモードに戻って、テキスト入力モードを割り込みます。 <interrupt> 文字は、通常 <control-C> です。 EX コマンド 次のセクションは、ex エディタで利用可能なコマンドについて説明しています。 下記の各エントリで、タグ行は、コマンドのための使用法の要約です。 <end-of-file> スクリーンをスクロールします。 ! argument(s) [range] ! argument(s) シェルコマンド、またはシェルコマンドによって行のフィルタを実行し ます。 " コメント。 [range] nu[mber] [count] [flags] [range] # [count] [flags] それぞれ行番号で先導され、選択された行を表示します。 @ buffer * buffer バッファを実行します。 [range] <[< ...] [count] [flags] 左に行をシフトします。 [line] = [flags] line (行) の番号を表示します。line が指定されないなら、ファイルの 最後の行の行番号を表示します。 [range] >[> ...] [count] [flags] 右に行をシフトします。 ab[breviate] lhs rhs vi のみ。略語リストに rhs のための略語として lhs を追加します。 [line] a[ppend][!] 入力テキストは、指定された行の後に追加されます。 ar[gs] 引数のリストを表示します。 bg vi のみ。現在のスクリーンをバックグラウンドにします。 [range] c[hange][!] [count] 入力テキストは、指定された範囲を置き換えます。 chd[ir][!] [directory] cd[!] [directory] 現在の作業ディレクトリを変更します。 [range] co[py] line [flags] [range] t line [flags] 宛先の line (行) の後に指定された行をコピーします。 cs[cope] add | find | help | kill | reset Cscope コマンドを実行します。 [range] d[elete] [buffer] [count] [flags] ファイルから行を削除します。 di[splay] b[uffers] | c[onnections] | s[creens] | t[ags] バッファ、Cscope 接続、スクリーンまたはタグを表示します。 [Ee][dit][!] [+cmd] [file] [Ee]x[!] [+cmd] [file] 異なったファイルを編集します。 exu[sage] [command] ex コマンドのための使用法を表示します。 f[ile] [file] ファイル名を表示してオプションで変更します。 [Ff]g [name] vi モードのみ。指定されたスクリーンをフォアグラウンドにします。 [range] g[lobal] /pattern/ [commands] [range] v /pattern/ [commands] コマンドを (`global') に一致する行または (`v') パターンと一致しな い行に適用します。 he[lp] ヘルプメッセージを表示します。 [line] i[nsert][!] 入力テキストは、指定された行の前に挿入されます。 [range] j[oin][!] [count] [flags] テキストの行とともに結合します。 [range] l[ist] [count] [flags] 行を明白に表示します。 map[!] [lhs rhs] (vi のみのための) マップを定義するか、または表示します。 [line] ma[rk] <character> [line] k <character> マーク <character> で行をマークします。 [range] m[ove] line 指定された行をターゲットの行の後に移動します。 mk[exrc][!] file 指定された file に略語、エディタオプションとマップを書き込みま す。 [Nn][ext][!] [file ...] 引数リストから次のファイルを編集します。 pre[serve] ex -r オプションを使用して、後で復旧することができる形式でファイ ルを保存します。 [Pp]rev[ious][!] 引数リストから以前のファイルを編集します。 [range] p[rint] [count] [flags] 指定された行を表示します。 [line] pu[t] [buffer] バッファの内容を現在の行に追加します。 q[uit][!] 編集セッションを終了します。 [line] r[ead][!] [file] ファイルを読み込みます。 rec[over] file 以前に保存されていたなら、file を復旧します。 res[ize] [+|-]size vi モードのみ。現在のスクリーンを大きくするか、または縮めます。 rew[ind][!] 引数リストをリワインドします。 se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all] エディタのオプションを表示するか、または設定します。 sh[ell] シェルプログラムを実行します。 so[urce] file ファイルから ex コマンドを読み込んで、実行します。 [range] s[ubstitute] [/pattern/replace/] [options] [count] [flags] [range] & [options] [count] [flags] [range] ~ [options] [count] [flags] 置換を行ないます。replace フィールドは、次のシーケンスのいずれか を含んでいます: `&' pattern (パターン) によって一致したテキスト。 `~' 以前の substitute コマンドの置き換え部分。 `%' これがすべての replace パターンであるなら、以前の置き換え 部分の substitute コマンド。 `\#' ここで `#' は、1 から 9 までの整数で、テキストは、pattern の # 番目の部分式と一致します。 `\L' `\E' または `\e' の次の発生の行の終りまでの文字を小文字に 変換します。 `\l' 次の文字を小文字に変換します。 `\U' `\E' または `\e' の次の発生の行の終りまでの文字を大文字に 変換します。 `\u' 次の文字を大文字に変換します。 su[spend][!] st[op][!] <suspend> 編集セッションをサスペンドします。<suspend> 文字は、通常 <control-Z> です。 [Tt]a[g][!] tagstring 指定されたタグを含んでいるファイルを編集します。 tagn[ext][!] 現在のタグの次のコンテキストを含んでいるファイルを編集します。 tagp[op][!] [file | number] タグスタックで指定されたタグにポップします。 tagpr[ev][!] 現在のタグの前のコンテキストを含んでいるファイルを編集します。 tagt[op][!] スタックをクリアして、タグスタックの最も最近のタグにポップしま す。 una[bbreviate] lhs vi のみ。略語を削除します。 u[ndo] ファイルに行なわれた最後の変更を取り消します。 unm[ap][!] lhs マップされた文字列をアンマップします。 ve[rsion] ex/vi エディタのバージョンを表示します。 [line] vi[sual] [type] [count] [flags] ex モードのみ。vi に入ります。 [Vi]i[sual][!] [+cmd] [file] vi モードのみ。新しいファイルを編集します。 viu[sage] [command] vi コマンドのための使用法を表示します。 [range] w[rite][!] [>>] [file] [range] w[rite] [!] [file] [range] wn[!] [>>] [file] [range] wq[!] [>>] [file] ファイルに書き込みます。 [range] x[it][!] [file] それが修正されているなら、ファイルに書き込み、エディタを終了しま す。 [range] ya[nk] [buffer] [count] 指定された行をバッファにコピーします。 [line] z [type] [count] [flags] ウィンドウを調整します。 設定オプション エディタの振る舞いを変更するために設定するか、(または設定を解除する) 多く のオプションがあります。このセクションは、オプション、それらの略語とそれ らのデフォルト値について説明しています。 下記の各エントリで、タグの行の最初の部分は、あらゆる同等な略語が続く、オ プションの完全な名前です。角括弧の部分は、オプションのデフォルト値です。 ほとんどのオプションは、ブール値です、すなわち、それらは、on または off のいずれかで、関連する値は、ありません。 オプションは、他に指定されないなら、ex と vi モードの両方に適用されます。 altwerase [off] vi のみ。代替の単語消去アルゴリズムを選択します。 autoindent, ai [off] 自動的に新しい行をインデントします。 autoprint, ap [on] ex のみ。現在の行を自動的に表示します。 autowrite, aw [off] ファイルを変更するか、エディタのセッションをサスペンドするとき、 修正されたファイルを自動的に書き込みます。 backup [""] それらが上書きされる前に、ファイルをバックアップします。 beautify, bf [off] 制御文字を廃棄します。 cdpath [environment variable CDPATH, or current directory] cd コマンドのためのパス接頭辞として使用されたディレクトリのパス。 cedit [no default] コロンコマンド行ヒストリを編集する文字を設定します。 columns, co [80] スクリーンのカラムの数を設定します。 comment [off] vi のみ。シェル、C と C++ 言語ファイルで、先導するコメントをス キップします。 directory, dir [environment variable TMPDIR, or /tmp] 一時ファイルが作成されるディレクトリ。 edcompatible, ed [off] 各新しいコマンドのために設定を解除するようにそれらを初期化する代 わり、substitute コマンドへの `c' と `g' 接尾辞の値を記憶します。 errorbells, eb [off] ex のみ。ベルでエラーメッセージを知らせます。 escapetime [1] ex/vi は、<escape> キーのマッピングを完了するまで続くキーのために 10 分の数秒待ちます。 exrc, ex [off] ローカルディレクトリでスタートアップファイルを読み込みます。 extended [off] 基本的な正規表現 (BRE) ではなく拡張正規表現 (ERE) を使用します。 正規表現に関する詳細についてはは、re_format(7) を参照してくださ い。 filec [<tab>] コロンコマンド行でファイルのパスの完了を実行する文字を設定しま す。 fileencoding, fe [auto detect] 現在のファイルのエンコード (符号化) を設定します。 flash [on] エラーでキーボードをビープ音を鳴らす代わりにスクリーンをフラッ シュします。 hardtabs, ht [0] ハードウェアのタブ設定の間の間隔を設定します。このオプションは、 現在効果がありません。 iclower [off] 大文字が検索文字列に現われない限り、すべての正規表現の大文字小文 字を区別しません。 ignorecase, ic [off] 正規表現の大文字小文字の違いを無視します。 inputencoding, ie [locale] 入力文字のエンコード (符号化) を設定します。 keytime [6] ex/vi は、キーのマッピングを完了するまで続くキーのために 10 分の 数秒待ちます。 leftright [off] vi のみ。左から右のスクロールを行ないます。 lines, li [24] vi のみ。スクリーンで行の数を設定します。 lisp [off] vi のみ。様々な検索コマンドと Lisp で動作するオプションを修正しま す。このオプションは、まだ実装されていません。 list [off] 明白な方法で行を表示します。 lock [on] 編集、読み込み、または書き込みされている、あらゆるファイルで排他 的ロックを取得することを試みます。 magic [on] off に切り替えられたとき、`^' と `$' を除いて、すべての正規表現の 文字は、通常の文字として扱われます。`\' によって個別の文字に先行 することは、それらを再び有効にします。 matchchars [[]{}()] 文字のペアは、% コマンドによって検索します。 matchtime [7] vi のみ。ex/vi は、showmatch オプションが設定されるとき、一致する 文字で 10 分の数秒休止します。 mesg [on] 他のユーザからのメッセージを許可します。 msgcat [/usr/share/vi/catalog/] 指定された言語のエラーと情報メッセージを表示するために使用される メッセージカタログを選択します。 modelines, modeline [off] ex コマンドのための各ファイルの最初と最後のわずかの行を読み込みま す。このオプションは、決して実装されません。 noprint [""] 印刷可能な文字として決して扱われない文字。 number, nu [off] 現在の行番号で表示された各行に先行します。 octal [off] デフォルト 16 進数の代わりに 8 進数としての未知の文字を表示しま す。 open [on] ex のみ。このオプションが設定されないなら、open と visual コマン ドは、許可されません。 optimize, opt [on] vi のみ。ダム端末へのテキストのスループットを最適化します。このオ プションは、まだ実装されていません。 paragraphs, para [IPLPPPQPP LIpplpipbp] vi のみ。{ と } コマンドのための追加のパラグラフ境界を定義しま す。 path [""] 編集されているファイルを検索するための追加のディレクトリを定義し ます。 print [""] 印刷可能文字として常に扱われる文字。 prompt [on] ex のみ。コマンドのプロンプトを表示します。 readonly, ro [off] 読み込み専用としてファイルとセッションをマークします。 recdir [/var/tmp/vi.recover] 復旧ファイルが格納されるディレクトリ。 redraw, re [off] vi のみ。ダム端末でインテリジェント端末をシミュレートします。この オプションは、まだ実装されていません。 remap [on] 解決されるまでキーを再マップします。 report [5] エディタが変更または yank を報告することに関する行の数を設定しま す。 ruler [off] vi のみ。コロンコマンド行で列/カラム定規を表示します。 scroll, scr [window size / 2] スクロールされた行の数を設定します。 searchincr [off] / と ? コマンドを増加します。 sections, sect [NHSHH HUnhsh] vi のみ。[[ と ]] コマンドのための追加セクションの境界を定義しま す。 secure [off] 外部プログラムへのすべてのアクセスを off に切り替えます。 shell, sh [environment variable SHELL, or /bin/sh] エディタによって使用されるシェルを選択します。 shellmeta [~{[*?$`'"\] ファイル名の拡張が必要かどうか判断するためにチェックされたメタ文 字を設定します。 shiftwidth, sw [8] 自動インデントとシフトコマンドのインデント幅を設定します。 showmatch, sm [off] vi のみ。右のものが挿入されるとき、左の一致する文字に注意してくだ さい。 showmode, smd [off] vi のみ。現在のエディタモードと ``modified'' フラグを表示します。 sidescroll [16] vi のみ。左から右のスクロールがシフトする量を設定します。 slowopen, slow [off] テキスト入力の間に更新する表示を遅らせます。このオプションは、ま だ実装されていません。 sourceany [off] 現在のユーザによって所有されないスタートアップファイルを読み込み ます。このオプションは、決して実装されません。 tabstop, ts [8] このオプションは、エディタの表示のためのタブの幅を設定します。 taglength, tl [0] タグ名の significant 文字の数を設定します。 tags, tag [tags] タグファイルのリストを設定します。 term, ttytype, tty [environment variable TERM] 端末のタイプを設定します。 terse [off] このオプションは、歴史的にエディタメッセージをそれほど冗長でない ようにします。それは、この実装で効果がありません。 tildeop [off] 関連する動作を行なう ~ コマンドを修正します。 timeout, to [on] マップされるキーのタイムアウト。 ttywerase [off] vi のみ。代替の消去アルゴリズムを選択します。 verbose [off] vi のみ。すべてのエラーのためのエラーメッセージを表示します。 w300 [no default] vi のみ。ボーレートが 1200 ボー未満であるなら、ウィンドウサイズを 設定します。 w1200 [no default] vi のみ。ボーレートが 1200 ボーと等しいなら、ウィンドウサイズを設 定します。 w9600 [no default] vi のみ。ボーレートが 1200 ボー以上であるなら、ウィンドウサイズを 設定します。 warn [on] ex のみ。ファイルが ! コマンドの前に、最後に書き込まれて以来、修 正されているなら、このオプションによって、警告メッセージは、端末 に印刷 (表示) されます。 window, w, wi [environment variable LINES - 1] スクリーンのためのウィンドウサイズを設定します。 windowname [off] 現在のファイル名へのアイコン/ウィンドウ名を変更します。 wraplen, wl [0] vi のみ。左側のマージンから指定されたカラムの数、自動的に、行を分 断します。wraplen と wrapmargin 編集オプションの両方が設定される なら、wrapmargin 値が使用されます。 wrapmargin, wm [0] vi のみ。右側のマージンから指定されたカラムの数、自動的に、行を分 断します。wraplen と wrapmargin 編集オプションの両方が設定される なら、wrapmargin 値が使用されます。 wrapscan, ws [on] ファイルの終りまたは始めのまわりを折り畳む検索を設定します。 writeany, wa [off] ファイルの上書きチェックを off に切り替えます。 環境変数 COLUMNS スクリーンのカラムの数。この値は、あらゆるシステムまたは端末特有 の値を無効にします。ex/vi が実行するとき、COLUMNS 環境変数が設定 されていないか、または columns オプションがユーザによって明示的 にリセットされているなら、ex/vi は、環境変数に値を入れます。 EXINIT ex スタートアップコマンドのリストは、変数 NEXINIT も設定されてい ないなら、/etc/vi.exrc の後に読み込まれます。 HOME スタートアップ $HOME/.nexrc と $HOME/.exrc ファイルのための初期 ディレクトリのパスとして使用されるユーザのホームディレクトリ。ま た、この値は、cd コマンドのためのデフォルトのディレクトリとして 使用されます。 LINES スクリーンの列の数。この値は、あらゆるシステムまたは端末特有の値 を無効にします。ex/vi が実行するとき、LINES 環境変数が設定されて いないか、または lines オプションがユーザによって明示的にリセッ トされているなら、ex/vi は、環境変数に値を入れます。 NEXINIT ex スタートアップコマンドのリストは、/etc/vi.exrc の後に読み込ま れます。 SHELL ユーザシェルの選択 (shell オプションも参照)。 TERM ユーザの端末タイプ。デフォルトは、タイプ ``unknown'' です。ex/vi が実行するとき、TERM 環境変数が設定されていないか、または term オプションがユーザによって明示的にリセットされているなら、ex/vi は、環境変数に値を入れます。 TMPDIR 一時ファイルを格納するために使用される位置 (directory 編集オプ ションも参照)。 非同期イベント SIGALRM vi/ex は、ファイル修正の定期的なバックアップのために、そして操 作が長い時間をとるかもしれないとき、``busy'' メッセージを表示す るために、このシグナルを使用します。 SIGHUP SIGTERM 現在のバッファがその全体を最後に書き込まれてから、変更されてい るなら、エディタは、後で復旧することができるように修正された ファイルを保存することを試みます。詳細については、vi/ex リファ レンスマニュアルのセクション「復旧」を参照してください。 SIGINT 割り込みが生じるとき、現在の操作は、停止され、エディタは、コマ ンドレベルに戻ります。テキストの入力の間に割り込まれたなら、既 に入力されたテキストは、あたかもテキストの入力が、通常終了した かのように、ファイルに解消されます。 SIGWINCH スクリーンは、サイズ変更されます。詳細については、vi/ex リファ レンスマニュアルのセクション「スクリーンのサイズ処理」を参照し てください。 関連ファイル /bin/sh デフォルトのユーザシェル。 /etc/vi.exrc システム全体の vi のスタートアップファイル。ex コマ ンドのために、スタートアップのシーケンスで最初に読み 込まれます。root またはユーザによって所有され、所有 者によってのみ書き込み可能でなければなりません。 /tmp 一時ファイルのディレクトリ。 /var/tmp/vi.recover デフォルトの復旧ファイルのディレクトリ。 $HOME/.nexrc ユーザのホームディレクトリのスタートアップファイルの ための最初の選択で、NEXINIT または EXINIT のいずれか が設定されていないなら、/etc/vi.exrc 直後に ex コマ ンドのために読み込まれます。root またはユーザによっ て所有され、所有者によってのみ書き込み可能でなければ なりません。 $HOME/.exrc $HOME/.nexrc と同じ条件の下で ex コマンドのために読 み込まれる、ユーザのホームディレクトリのスタートアッ プファイルのための 2 番目の選択。 .nexrc exrc オプションが以前にオンにされたなら、スタート アップシーケンスの終わりで ex コマンドのための読み込 まれる、ローカルのディレクトリのスタートアップファイ ルのための最初の選択。ユーザによって所有され、所有者 によってのみ書き込み可能でなければなりません。 .exrc .nexrc と同じ条件の下で ex コマンドのために読み込ま れる、ローカルのディレクトリのスタートアップファイル のための 2 番目の選択。 終了ステータス ex と vi ユーティリティは、成功すれば、0 で終了し、エラーが生じるなら、>0 で終了します。 関連項目 ctags(1), iconv(1), re_format(7) 規格 nex/nvi は、IEEE Std 1003.1-2008 (``POSIX.1'') に近づいています。そのド キュメントは、いくつかの場面で歴史的な ex/vi の慣例と異なります。両側で行 なわれる変更があります。 歴史 ex エディタは、1BSD ではじめて登場しました。ex/vi エディタのための nex/nvi の置き換えは、4.4BSD ではじめて登場しました。 作者 Bill Joy は、1977 年に ex のオリジナル版を書きました。 FreeBSD 11.2 November 2, 2013 FreeBSD 11.2