これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド viposix です。
プログラム:
NAME
vi — 画面指向 (ビジュアル) 表示エディタ
SYNOPSIS
vi [−rR] [−c command] [−t タグ文字列] [−w サイズ] [file...]
DESCRIPTION
このユーティリティは、User Portability Utilities をサポートするシステムで提供されます。
オプションを指定して、POSIX2_CHAR_TERM シンボルを定義します。 他のシステムではオプションです。
当学校区の vi (ビジュアル) ユーティリティは、画面指向のテキスト エディターです。 オープンモードとビジュアルモードのみ
エディターの機能は POSIX.1-2008 に記述されています。 行エディタを参照してください ex 追加編集用
で使用される機能 vi. ユーザーは前後に切り替えることができます vi ex 実行します
ex 内部からのコマンド vi.
この参照ページでは、 edit バッファ 現在の作業テキストを説明します。 いいえ
特定の実装は、この用語によって暗示されます。 すべての編集変更は、
エディット バッファに変更を加えても、エディタ コマンドが
ファイルにソフトウェアを指定する必要があります。
使用時 vi、ターミナル画面は編集バッファへのウィンドウとして機能します。 行われた変更
編集バッファへの反映は画面表示に反映されます。 カーソルの位置
画面上の編集バッファ内の位置を示します。
一部の端末には、完全な機能をサポートするために必要なすべての機能が備わっていません。 vi
意味。 これらのコマンドがそのような端末でサポートされていない場合、この条件は
「エディターコマンドではありません」などのエラーメッセージを生成したり、構文を報告したりしてはなりません
エラー。 実装は、コマンドを受け入れて画面に結果を生成することができます
これは、このボリュームの要件を満たす試みが失敗した結果です。
POSIX.1-2008 または端末関連の欠陥を説明するエラーを報告します。
OPTIONS
当学校区の vi ユーティリティは、POSIX.1‐2008の基本定義ボリュームに準拠する必要があります。 セクション 12.2,
ユーティリティ 構文 ガイドライン、 それ以外で 「+」 のようにオプション区切り文字として認識される場合があります。
だけでなく '−'.
次のオプションがサポートされます。
−c command
ジョブの設定方法については、 ex コマンドの説明 −c オプションを選択します。
−r ジョブの設定方法については、 ex コマンドの説明 −r オプションを選択します。
−r ジョブの設定方法については、 ex コマンドの説明 −r オプションを選択します。
−t タグ文字列
ジョブの設定方法については、 ex コマンドの説明 −t オプションを選択します。
−w サイズ ジョブの設定方法については、 ex コマンドの説明 −w オプションを選択します。
オペランド
の OPERANDS セクションを参照してください。 ex コマンドでサポートされているオペランドの説明
vi
標準入力
標準入力が端末デバイスでない場合、結果は未定義です。 標準入力
詳細説明で説明されているように、一連のコマンドと入力テキストで構成されます。
のセクションから無料でダウンロードできます。
標準入力からの読み取りでエラーが返された場合、またはエディターが末尾を検出した場合
標準入力からのファイル条件、それは SIGHUP 非同期と同等でなければなりません
イベント。
入力 ファイル
の INPUT FILES セクションを参照してください。 ex 入力ファイルの説明のためのコマンド
によってサポートされています vi
ENVIRONMENT 変数
の環境変数セクションを参照してください。 ex 環境変数のコマンド
の実行に影響を与える vi
非同期 イベント
の ASYNCHRONOUS EVENTS セクションを参照してください。 ex に影響する非同期イベントの
の実行 vi
標準出力
標準出力が端末デバイスでない場合、未定義の結果が発生します。
標準出力は、ユーザーへのプロンプトの書き込み、情報メッセージ、
ファイルから行を書き込むため。
標準
標準出力が端末デバイスでない場合、未定義の結果が発生します。
標準エラーは、診断メッセージにのみ使用されます。
出力 ファイル
の OUTPUT FILES セクションを参照してください。 ex 出力ファイルの説明のためのコマンド
によってサポートされています vi
拡張済み DESCRIPTION
端末が特定されていない部分をサポートするために必要な機能を備えていない場合
vi 定義、実装は最初に開始する必要があります ex モードまたはオープンモード。
それ以外の場合、初期化後、 vi コマンドモードになります。 テキスト入力モードは
テキストの挿入または変更に使用されるいくつかのコマンドの XNUMX つによって入力されます。 文字入力モードでは、
コマンドモードに戻るために使用できます。 その他の用途で後述します
このセクション; 見る Terminate Command or 入力 モード.
初期化 in ex vi
詳細はこちら: 初期化 in ex vi の説明のために ex vi の初期化 vi
ユーティリティ。
Command 説明 in vi
このリファレンス ページでは、コマンドの引数を表すために次の記号が使用されています。
バッファ の説明を参照してください バッファ の EXTENDED DESCRIPTION セクションで ex
効用; 見る Command 説明 in ex.
オープン モードとビジュアル モードで、コマンドの概要に [バッファ]と[カウント]
コマンド名の前に、どちらの順序で指定してもかまいません。
カウント ほとんどのコマンドでオプションの引数として使用される正の整数。
繰り返し回数またはサイズとして。 この引数はオプションであり、そうでない場合はデフォルトで 1 になります。
特に指定されていない。
のあらすじ行 vi コマンド‐G、 ‐L, ‐R、
‐]、 %, &, ^, D, m, M, Q, u, U, ZZ ありません カウント オプションとして
口論。 いずれにせよ、指定してもエラーにはなりません。 カウント これらに
コマンド、および指定された任意の カウント 無視されます。
モーション によって使用されるオプションの末尾の引数 !, <, >, c, d, y コマンド、つまり
コマンドによって影響を受けるテキストの領域を示すために使用されます。 の
モーションは、繰り返されるコマンド文字の XNUMX つ、または複数のコマンド文字の XNUMX つにすることができます
その他 vi コマンド (次の表にリストされています)。 該当する各コマンド
コマンドを繰り返して一致するテキストの領域を指定します。 という各コマンド
モーション コマンドとして使用でき、影響を受けるテキストの領域を指定します。
実行するコマンド モーション 引数は、行または文字のいずれかで動作します。
場合によります。 線上で操作する場合、落下するすべての線
コマンドに指定されたテキスト領域内の一部または全体
影響を受ける。 文字を操作する場合、指定された正確な文字のみ
テキスト領域が影響を受けます。 各モーション コマンドは、これを個別に指定します。
モーションコマンドの可能性があるコマンドをモーションコマンドとして使用しない場合、
指定された現在の行と列に現在の位置を設定します。
次のコマンドは、有効なカーソル移動コマンドです。
( - j H
) $ k L
[[ % l M
-H ]] _ n N
-N { ; t T
-P } ? w W
^ b B
+ e E
| f F
/ h G
任意 カウント 関連するモーションコマンドを持つコマンドに指定された
モーションコマンドに適用されます。 もし カウント 両方のコマンドに適用されます
およびそれに関連付けられたモーション コマンドの場合、その効果は倍増するものとします。
このセクションでは、編集バッファー内の位置を指定するために次の記号が使用されます。
現在 文字
カーソルが現在示している文字。
end of a ライン
最後の非(もしあれば)と終了
行の。 空行の場合、この位置は先頭と一致します。
ラインの。
end of edit バッファ
編集バッファーの最後の行の末尾に対応する位置。
このセクションでは、コマンド アクションを指定するために次の記号が使用されます。
ビッグワード POSIX ロケールでは、 vi の XNUMX 種類を認識します。 ビッグワード:
1. 非前後の文字
文字または行の先頭または末尾または編集バッファ
2. 連続する XNUMX つまたは複数の空白行
3. 編集バッファーの最初の文字
4.最後の非編集バッファで
単語 POSIX ロケールでは、 vi 次の XNUMX 種類の単語を認識します。
1. 両端が区切られた、文字、数字、およびアンダースコアの最大シーケンス
で:
-- 文字、数字、アンダースコア以外の文字
-- 行頭または行末
-- 編集バッファの先頭または末尾
2. 文字、数字、アンダースコア、または
両端を次の文字で区切った文字:
-- 文字、数字、アンダースコア
-- 文字
-- 行頭または行末
-- 編集バッファの先頭または末尾
3. 連続する XNUMX つまたは複数の空白行
4. 編集バッファーの最初の文字
5.最後の非編集バッファで
境界
A 境界 次のいずれかです。
1. 最初の文字が
2. 最初の文字が開き中括弧 ('{')
3. 最初の文字がそしてそのXNUMX番目とXNUMX番目
文字は、 セクション 編集オプション (を参照) ed)
4. 最初の文字がそして唯一の他のキャラクター
の XNUMX 文字ペアの最初の文字に一致します。 セクション edit
オプションで、XNUMX 文字のペアの XNUMX 番目の文字は
5. 編集バッファの最初の行
6. 編集バッファーの最終行が空の場合、編集バッファーの最終行
またはそれが ]] or } 指図; それ以外の場合、最後の非最後の
編集バッファの行
段落 境界
A 段落 境界 次のいずれかです。
1. セクション境界
2. 最初の文字がそしてそのXNUMX番目とXNUMX番目
文字は、 パラグラフ 編集オプション (を参照) ed)
3. 最初の文字がそして唯一の他のキャラクター
の XNUMX 文字ペアの最初の文字に一致します。 パラグラフ edit
オプションで、XNUMX 文字のペアの XNUMX 番目の文字は
4. 連続する XNUMX つまたは複数の空白行
思い出した サーチ 方向
の説明を参照してください 思い出した サーチ 方向 in ed.
文 境界
A 文 境界 次のいずれかです。
1. 段落境界
2.最初の非段落境界の後に発生する
3. 最初の非の後に発生する('。')、
(「!」)、 また(「?」)、その後に XNUMX つ文字または末尾
行の; 任意の数の閉じ括弧 (')')、閉じ括弧 (']'),
二重引用符 ('"')、または一重引用符 ( )文字が表示されます
句読点と XNUMX つの間文字または行末
の説明の残りの部分では、 vi ユーティリティでは、「バッファライン」という用語は
「表示行」という用語は、編集バッファー内の行を指します。
XNUMX つのバッファー行を表示するために使用される表示画面。 「現在行」という用語は、
特定の「バッファライン」。
画面上に対応するバッファ行がない表示行がある場合
それらはファイルの末尾の後にある行に対応するため、それらは
単体で表示('〜') 文字、および終了文字.
画面の最後の行は、エラーを報告するか、情報を表示するために使用されます。
メッセージ。 また、「行指向コマンド」の入力を表示するためにも使用されます (/, ?,
:, !)。 行指向のコマンドが実行されると、エディターはテキスト入力を入力します
それぞれのコマンド文字をプロンプトとして使用して、画面の最後の行のモード
文字。 (の場合、 ! コマンドによって、関連付けられたモーションが入力されます。
エディターがテキスト入力モードに入る前のユーザー) ユーザーが入力した行は、
で終了、非‐Vエスケープ、またはエスケープされていない
. 表示幅から XNUMX 列を引いた数よりも多くの文字が必要かどうかは不明です。
画面の列数を入力できます。
最後の画面以外の画面の一部を上書きするコマンドが実行された場合
画面の行 (たとえば、 ex サスペンド or ! コマンド)、 ex shell
コマンドを実行すると、画面が更新される前にユーザーに文字の入力を求めるプロンプトが表示され、
編集セッションは続きました。
文字は、によって設定された画面上の列数を占めます。 タブストップ edit
オプション(を参照) ed)、表示前の列数がその数より少ない場合を除きます
表示された行が折りたたまれるマージン。 この場合、彼らは
その境界までの列数を増やします。
カーソルは、現在の行に配置され、現在の列に対して次のように相対的になります。
以降のセクションで説明する各コマンドで指定します。
オープン モードでは、現在の行がまだ表示されていない場合は、表示されます。
ビジュアル モードで、現在の行が表示されていない場合は、表示されている行
拡大、スクロール、または再描画して、現在の
表示される行。 画面を再描画する場合は、表示行数まで
の値で指定 ウィンドウを使用して入力ファイルを追加します。 編集オプションが表示されます (現在の
で指定された表示行数で行を完全に表示することはできません。 ウィンドウを使用して入力ファイルを追加します。
編集オプション)、現在の行は、
可能な限り表示された行 (行の距離によって課される制約内)
編集バッファーの最初または最後から)。 現在の行が最初の行の前にある場合
行が表示され、画面がスクロールされた場合、現在の行の特定されていない部分
ディスプレイの最初の行に配置されます。 現在の行が最後の行の後にある場合
行が表示され、画面がスクロールされた場合、現在の行の特定されていない部分
ディスプレイの最後の行に配置されます。
ビジュアル モードで、編集バッファの行 (現在の行以外) が
ディスプレイの下部にある行に完全に収まります。
編集者は、行のどの部分も表示しないことを選択できます。 の行
この理由で編集バッファからのテキストを含まないディスプレイは、それぞれ
単一で構成されています 「@」 文字。
ビジュアル モードでは、編集者は不特定の理由により、
基礎となる編集バッファーのテキストに対応するように表示します。 行うディスプレイの行
このため、編集バッファからのテキストに正しく対応していません。
「@」 文字 (および終端文字)、 そしてその‐Rコマンドは
エディターが画面を更新して、編集バッファーを正しく表すようにします。
現在の列を設定するオープンおよびビジュアル モードのコマンドは、それを次の列位置に設定します。
行内の文字位置ではありません。 ただし、この場合、列
ディスプレイ内の位置は、無限幅のディスプレイに対して計算されます。 例えば、
折り畳まれた行の一部である文字に関連する列
追加のスクリーン行は、バッファ行がある表示行の列からオフセットされます。
特定の表示行の先頭からではなく、開始します。
ディスプレイの表示カーソル列は、現在の列の値に基づいています。
次に、各ルールが順番に適用されます。
1. 現在の列が、表示された
行、表示カーソル列は、最後に占有された表示行列に設定されます
最後の非によって現在の行; それ以外の場合は、表示カーソル列
現在の列に設定されます。
2.表示行欄に一部が表示されている文字の場合
表示カーソル列によって指定されたには、複数の表示行が必要です
カラム:
を。 テキスト入力モードの場合、表示カーソル列は最初に調整されます。
その文字の任意の部分が表示される行列を表示します。
b. それ以外の場合、表示カーソル列は最後の表示行に調整されます
その文字の任意の部分が表示される列。
現在の列は、表示カーソル列に対するこれらの調整によって変更されません。
の解析または実行中にエラーが発生した場合 vi コマンド:
* 端末にアラートが送信されます。 の実行 vi コマンドが停止し、カーソルが
(たとえば、現在の行と列) はさらに変更されません。
※以下のコマンド区間で特に指定がない限り、不定
情報メッセージを表示するかどうか。
* 部分的に入力されたもの vi コマンドは破棄されます。
*の場合 vi コマンドの結果 地図 拡張、そこからのすべての文字 地図
拡張は破棄されるものとします。 地図 コマンド(を参照)
ed).
*の場合 vi コマンドはバッファの実行の結果であり、それ以上のコマンドは発生しませんでした
バッファの実行によって実行されます。
ページへ移動します。 後方
シノプシス:
[カウント] -B
オープンモードの場合、 ‐B コマンドは、 z
それ以外の場合、現在の行が編集バッファーの最初の行である場合、エラーになります。
Status ウィンドウを使用して入力ファイルを追加します。 編集オプションが 3 未満の場合、編集オプションの最終行が表示される画面を表示します。
表示は次の一部になります。
(現在 最初の ライン) −1
それ以外の場合は、ディスプレイの最初の行が次の一部である画面を表示します。
(現在 最初の ライン) - カウント x ((ウィンドウ編集オプション) −2)
この計算が編集の最初の行の前にある行になる場合
バッファ、ディスプレイの最初の行は、最初の行の一部を表示する必要があります
エディットバッファ。
電流プローブ ライン: 前の表示の行が画面に残っていない場合は、最後に設定します。
ディスプレイの行; それ以外の場合は、(ライン − これに表示される新しい行の数
画面)。
電流プローブ の項目に表示されます。:非設定.
スクロール フォワード
シノプシス:
[カウント] -D
現在の行が編集バッファの最後の行である場合、エラーになります。
ない場合 カウント 指定されている、 カウント デフォルトは カウント 以前に関連付けられた
‐Dまたは‐Uコマンド。 以前が無かった場合‐Dまたは‐う
コマンド、 カウント の値をデフォルトとします。 スクロール 編集オプション。
オープンモードの場合、現在の行の次の行から開始するまで、行を書き込みます。 カウント
行またはファイルの最後の行が書き込まれました。
電流プローブ ライン: 現在の行 + カウント 編集バッファの最終行を過ぎている。
編集バッファーの最後の行。 それ以外の場合は、現在の行に設定 + カウント.
電流プローブ の項目に表示されます。:非設定.
スクロール フォワード by LINE
シノプシス:
[カウント] -E
現在表示されている最後の行の後の行数行を表示します。
エディットバッファの最終行が表示された場合はエラーとなります。 ない場合
ライン カウント 現在表示されている最後の行の後の行、表示の最後の行
編集バッファの最後の行の一部を表示します。
電流プローブ ライン: 前の現在の文字が表示されている場合は変更されません。 それ以外の場合は、に設定
表示される最初の行。
電流プローブ の項目に表示されます。: 変更なし。
ページへ移動します。 フォワード
シノプシス:
[カウント] -F
オープンモードの場合、 ‐F コマンドは、 z
それ以外の場合、現在の行が編集バッファーの最後の行である場合は、エラーになります。
Status ウィンドウを使用して入力ファイルを追加します。 編集オプションが 3 未満の場合、編集オプションの最初の行が表示される画面を表示します。
表示は次の一部になります。
(現在 last ライン)+1
それ以外の場合は、ディスプレイの最初の行が次の一部である画面を表示します。
(現在 最初の ライン)+ カウント x ((ウィンドウ編集オプション) −2)
この計算の結果、編集バッファーの最終行より後の行になる場合は、
ディスプレイの最後の行には、編集の最後の行の一部が表示されます
バッファ。
電流プローブ ライン: 前の表示からの行が画面に残っていない場合は、最初に設定します。
ディスプレイの行; それ以外の場合は、(ライン + これに表示される新しい行の数
画面)。
電流プローブ の項目に表示されます。:非設定.
ディスプレイ 情報
シノプシス:
-G
このコマンドは、 ex file
移動 カーソル 後方
シノプシス:
[カウント] -H
[カウント] h
現在 消去 文字 (stty を参照)
現在の行の現在の文字の前に文字がない場合、それは
エラー。 未満の場合 カウント 現在の行の前の文字、 カウント
行の前の文字数に調整されます。
モーションコマンドとして使用する場合:
1. テキスト領域は、開始カーソルの前の文字から、
や カウント開始カーソルの前の th 文字。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: に設定 (の項目に表示されます。 − によって占有される列の数 カウント 文字エンディング
前の現在の列と一緒に)。
移動 Down
シノプシス:
[カウント]
[カウント] -J
[カウント] -M
[カウント] -N
[カウント] j
[カウント]
[カウント] +
以下の場合 カウント 編集バッファの現在の行の後の行、それは
エラー。
モーションコマンドとして使用する場合:
1. テキスト領域には、開始行と次の行を含める必要があります。 カウント − 1 行。
2. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: に設定 現在 ライン+ カウント.
電流プローブ の項目に表示されます。:非設定のために、 ‐M、および + コマンド。
それ以外の場合は変更されません。
クリア 再表示
シノプシス:
-L
オープンモードの場合、画面をクリアして現在の行を再表示します。 それ以外の場合は、クリアして
画面を再表示します。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
移動 Up
シノプシス:
[カウント] -P
[カウント] k
[カウント] -
以下の場合 カウント 編集バッファの現在の行の前の行、それは
エラー。
モーションコマンドとして使用する場合:
1. テキスト領域には、開始行と前の行を含める必要があります。 カウント ライン。
2. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: に設定 現在 ライン - カウント.
電流プローブ の項目に表示されます。:非設定のために - 指図; それ以外の場合は変更されません。
再描画 画面
シノプシス:
-R
行が表示画面から削除され、削除フラグが設定されている場合
を使った端末 @ 規則 (詳細説明セクションの冒頭を参照)、
それらは、編集バッファの内容と一致するように再表示されます。
行にフラグが立てられているかどうかは不明です @ 端末に収まらないので
表示に影響します。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
スクロール 後ろ向き
シノプシス:
[カウント] -U
現在の行が編集バッファの最初の行である場合、エラーになります。
ない場合 カウント 指定されている、 カウント デフォルトは カウント 以前に関連付けられた
‐Dまたは‐Uコマンド。 以前が無かった場合‐Dまたは‐う
コマンド、 カウント の値をデフォルトとします。 スクロール 編集オプション。
電流プローブ ライン:もし カウント 現在の行より大きい場合は 1 に設定されます。 それ以外の場合は、
現在の行- カウント.
電流プローブ の項目に表示されます。:非設定.
スクロール 後ろ向き by LINE
シノプシス:
[カウント] -Y
ラインを表示する カウント 現在表示されている最初の行の前の行。
現在の行が編集バッファの最初の行である場合、エラーになります。 これなら
計算は、編集バッファーの最初の行の前にある行になります。
ディスプレイの最初の行には、編集バッファの最初の行の一部が表示されます。
電流プローブ ライン: 前の現在の文字が表示されている場合は変更されません。 それ以外の場合は、に設定
表示される最初の行。
電流プローブ の項目に表示されます。: 変更なし。
編集 代替の File
シノプシス:
-^
このコマンドは、 ex edit コマンド、代替パス名を
その引数。
Terminate Command or 入力 モード
シノプシス:
部分的な場合 vi コマンド (少なくとも XNUMX つの非カウント キャラクター)
入力、破棄 カウント およびコマンド文字。
それ以外の場合、コマンド文字が入力されていない場合、 の結果でした
マップが拡大すると、端末に警告が表示され、 文字は破棄されます。
エラーにはなりません。
それ以外の場合は、エラーになります。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
検索 の タグ文字列
シノプシス:
-]
現在の文字が単語でない場合、または、エラーとなります。
このコマンドは、 ex タグ コマンド、そのコマンドへの引数付き
以下のように定義されます。
現在のキャラクターが:
1.すべてスキップカーソルから行末までの文字。
2. 行末に達した場合はエラーとする。
次に、への引数 ex タグ コマンドは現在の文字とその後のすべての文字でなければなりません
単語以外の最初の文字または行末まで。
移動 カーソル フォワード
シノプシス:
[カウント]
[カウント] l (エル)
以下の場合 カウント 非現在のカーソルの後の文字
ライン、 カウント の数に調整するものとします。 カーソルの後の文字
ライン上に。
モーションコマンドとして使用する場合:
1. 現在または カウントカーソルの後の th 文字は、最後の非の中に
行、テキスト領域は、現在の文字までの現在の文字で構成されます。
最後の非行で。 それ以外の場合、テキスト領域は
現在の文字まで、ただしこれを含まない カウントカーソルの後の th 文字。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
ない場合現在の行の現在の文字の後の文字、
エラーとなります。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: の任意の部分を表示する最後の列に設定します。 カウント番目の文字
現在のキャラクターの後。
交換する テキスト 結果 from シェル(Shell) Command
シノプシス:
[カウント] ! モーション シェルコマンド
モーションコマンドが ! コマンドが繰り返されました:
1. 編集バッファが空で何もない場合 カウント が供給された場合、コマンドは
に相当する ex :読む ! コマンド、テキスト入力あり、テキストなし
任意のバッファにコピーされます。
2. それ以外の場合:
を。 未満の場合 カウント 編集バッファーの現在の行から -1 行後、
エラーとなります。
b. テキスト領域は、現在の行から次の行までである必要があります。 カウント
−1 行。
それ以外の場合、テキスト領域は、テキスト領域の任意の文字が含まれる行になります。
モーションコマンドで指定したものが表示されます。
バッファにコピーされたテキストは行モードになります。
このコマンドは、 ex ! 指定された行のコマンド。
移動 カーソル 〜へ 行末
シノプシス:
[カウント] $
( 未満の場合はエラーとなります。カウント −1) の現在の行の後の行
エディットバッファ。
モーションコマンドとして使用する場合:
1。 もし カウント は1です:
を。 行が空の場合はエラーになります。
b. それ以外の場合、テキスト領域は先頭からのすべての文字で構成されます。
最後の非 - へのカーソル行内、包括的、およびにコピーされたすべてのテキスト
バッファは文字モードでなければなりません。
2. それ以外の場合、開始カーソル位置が最初の非の
行、テキスト領域は現在の行と次の行で構成されます カウント −1 行、
バッファに保存されたテキストは行モードになります。
3. それ以外の場合、テキスト領域は開始カーソルから
最後の非その行で カウント 現在から-1行進む
バッファにコピーされたテキストは文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: に設定 現在 ライン + カウント-1。
電流プローブ の項目に表示されます。: 現在の列は、最後の表示行列に設定されます。
非または、行が空の場合は列位置 1 です。
現在の列は、最後の表示行の最後の列になるように調整されます。
非後続のコマンドが現在の行を変更すると、現在の行の
コマンドは現在の列を変更します。
移動 〜へ マッチング 人格
シノプシス:
%
現在の位置の文字が括弧、括弧、または中括弧でない場合、
これらの文字の最初の文字まで行を前方検索します。 そんなキャラがいなかったら
エラーとなります。
一致する文字は、
現在の位置または
それは現在の行で見つかりました。
左括弧の場合、一致は次のように決定されます。
1. カウンターを 1 に設定します。
2. 括弧が見つかるか、編集バッファーの終わりに到達するまで、順方向に検索します。
3. エディットバッファの最後に達した場合、エラーとなります。
4. 左括弧が見つかった場合、カウンターを 1 増やします。
5. 閉じ括弧が見つかった場合、カウンターを 1 減らします。
6. カウンターがゼロの場合、現在の文字が一致する文字です。
右括弧のマッチングは、検索が
逆方向、開始文字からバッファの先頭まで、右括弧
はカウンターを 1 増やし、開き括弧はカウンターを XNUMX 減らします。
1.
大かっこと中かっこの一致は同等である必要があります。
開き括弧と閉じ括弧、または開き括弧と閉じ中括弧に対して行われます。 実装です~
他の文字も検索して一致させるかどうかを定義します。
モーションコマンドとして使用する場合:
1. 一致するカーソルが編集バッファー内の開始カーソルの後にあった場合、
開始カーソル位置は、最初の非非の中に
開始行であり、一致するカーソル位置が最後の非
非一致する行では、テキスト領域は現在の行で構成されます
一致する行まで、包括的であり、バッファにコピーされたテキストはすべてインラインでなければなりません
モード。
2. 一致するカーソルが編集バッファー内の開始カーソルの前にあった場合、
開始カーソル位置は、最後の非非の中に
開始行であり、一致するカーソル位置が最初の非
非一致する行では、テキスト領域は現在の行で構成されます
一致する行まで、包括的であり、バッファにコピーされたテキストはすべてインラインでなければなりません
モード。
3. それ以外の場合、テキスト領域は、一致する文字の開始文字で構成されます。
文字、包括的、およびバッファにコピーされるすべてのテキストは文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 一致する文字がある行に設定されます。
電流プローブ の項目に表示されます。: 一致する文字の一部が存在する最後の列に設定します。
表示されます。
繰り返す 置換
シノプシス:
&
前の置換コマンドを繰り返します。 このコマンドは、 ex &
アドレスとして現在の行を指定し、指定しないコマンド オプション, カウントまたは フラグ.
返品 〜へ 前へ コンテキスト at 開始 of LINE
シノプシス:
' 文字
でマークされた編集バッファに行がない場合、エラーになります。 文字.
モーションコマンドとして使用する場合:
1. 開始カーソルがマークされたカーソルの後にある場合、開始カーソルの位置
編集バッファ内のカーソルとマークされたカーソルは、論理的に交換されます。
2. テキスト領域は、マークされた行までの開始行から構成されます。
バッファにコピーされたテキストは行モードになります。
モーションコマンドとして使用しない場合:
電流プローブ ライン: マークが参照する行に設定します。
電流プローブ の項目に表示されます。:非設定.
返品 〜へ 前へ コンテキスト
シノプシス:
` 文字
マークされた行が編集バッファにない場合はエラーになります。 マークされている場合
行の保存された番号付き文字位置に文字が含まれていない場合、それは
あたかもマークされた位置が最初の非.
モーションコマンドとして使用する場合:
1. マークされたカーソルが編集で同じ文字を参照すると、エラーになります。
buffer を開始カーソルとして使用します。
2. 開始カーソルがマークされたカーソルの後にある場合、開始カーソルの位置
編集バッファ内のカーソルとマークされたカーソルは、論理的に交換されます。
3. 開始行が空の場合、または開始カーソルが最初の行またはその前にある場合
非非開始行の、マークされたカーソル行が空または
マークされたカーソルは、マークされたカーソル行の最初の文字、テキストを参照します。
領域は、開始カーソルから
マークされたカーソル行の前の行 (両端を含む)、およびバッファーにコピーされたテキスト
ラインモードになります。
4. マークされたカーソル行が空の場合、またはマークされたカーソルが
最初の非非マークされたカーソル行の
テキストの領域は、開始カーソルから最後の非の
マークされたカーソル行の前の行 (両端を含む)、およびバッファーにコピーされたすべてのテキストは、
キャラクターモードになります。
5. それ以外の場合、テキストの領域は開始カーソル (両端を含む) から
マークされたカーソル (排他的) であり、バッファーにコピーされたテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: マークが参照する行に設定します。
電流プローブ の項目に表示されます。: 文字の任意の部分が参照される最後の列に設定します。
マークが表示されます。
返品 〜へ 前へ セクション
シノプシス:
[カウント] [[
カーソルを編集バッファー内を後方に移動し、前のバッファーの最初の文字に移動します。
セクション境界、 カウント 回。
モーションコマンドとして使用する場合:
1. 開始カーソルが開始行の最初の文字または先頭文字にあった場合
行は空で、境界の最初の文字は境界の最初の文字でした
境界線、テキスト領域は、現在の行までの現在の行で構成されます。
の行 カウント次の境界が始まり、バッファにコピーされたテキストはすべて
ラインモードになります。
2. 境界が編集バッファーの最後の行または最後の非行であった場合の
編集バッファの最後の行、テキスト領域は最後の文字で構成されます
開始文字までの編集バッファ、およびファイルに保存されたテキスト
バッファは文字モードでなければなりません。
3. それ以外の場合、テキスト領域は開始文字から構成されますが、
の最初の文字を含む カウント次の境界、およびにコピーされたテキスト
バッファは文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: カウントエディット バッファ内の次の境界が開始します。
電流プローブ の項目に表示されます。: の最初の文字の任意の部分が含まれる最後の列に設定します。
カウント次の境界が表示されるか、行が空の場合は列位置 1 が表示されます。
移動 〜へ 次へ セクション
シノプシス:
[カウント] ]]
カーソルを編集バッファ内で次のセクションの最初の文字に移動します
境界、 カウント 回。
モーションコマンドとして使用する場合:
1. 開始カーソルが開始行の最初の文字または先頭文字にあった場合
行は空で、境界の最初の文字は境界の最初の文字でした
境界線、テキスト領域は、現在の行までの現在の行で構成されます。
の行 カウントth 前の境界が開始し、バッファーにコピーされたテキスト
ラインモードになります。
2. 境界が編集バッファの最初の行である場合、テキスト領域は
編集バッファ内の最初の文字から開始文字まで (開始文字は含まない)
文字であり、バッファにコピーされるテキストはすべて文字モードでなければなりません。
3. それ以外の場合、テキスト領域は、 カウントth
開始文字までの前のセクション境界、および任意のテキスト
バッファへのコピーは文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: カウント編集バッファ内の th 前の境界
開始する。
電流プローブ の項目に表示されます。: の最初の文字の任意の部分が含まれる最後の列に設定します。
カウント1 つ前の境界が表示されるか、行が空の場合は列位置 XNUMX が表示されます。
移動 〜へ 名 非 役職 on 電流プローブ LINE
シノプシス:
^
モーションコマンドとして使用する場合:
1.行に非非文字、またはカーソルが
最初の非非エラーとなります。
2. カーソルが最初の非非行、テキストの
領域は、現在の文字から構成されるものとします。
最初の非非行の。
3. カーソルが最初の非非行、テキストの
リージョンは、開始カーソルの前の文字から、
最初の非非行の。
4. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。:非設定.
電流プローブ LINE 上記の
シノプシス:
[カウント] _
以下の場合 カウント 編集バッファの現在の行から -1 行後、
エラーになります。
モーションコマンドとして使用する場合:
1。 もし カウント が 2 未満の場合、テキスト領域は現在の行になります。
2. それ以外の場合、テキスト領域には開始行と次の行が含まれます。 カウント -1
ライン。
3. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 現在の行に設定 + カウント -1。
電流プローブ の項目に表示されます。:非設定.
移動 戻る 〜へ 開始 of 文
シノプシス:
[カウント] (
文頭に戻ります。 このコマンドは、 [[
ただし、セクションの代わりに文の境界を使用する必要があります。
境界線
移動 フォワード 〜へ 開始 of 文
シノプシス:
[カウント] )
文の先頭に移動します。 このコマンドは、 ]]
ただし、セクションの代わりに文の境界を使用する必要があります。
境界線
移動 戻る 〜へ 先行 段落
シノプシス:
[カウント] {
前の段落の先頭に戻ります。 このコマンドは、
[[ ただし、代わりに段落境界を使用する必要があります。
セクションの境界。
移動 フォワード 〜へ 次へ 段落
シノプシス:
[カウント] }
次の段落の先頭に移動します。 このコマンドは、
]] ただし、代わりに段落境界を使用する必要があります。
セクションの境界。
移動 〜へ 特定の コラム 役職
シノプシス:
[カウント] |
このコマンドの目的のために、現在の表示には長すぎる行と、
は、1 から始まる単一の列数を持つものとして扱われます。
以下の場合 カウント 現在の行の文字が含まれる列
画面に表示される、 カウント の最後の列になるように調整するものとします。
行の一部が画面に表示されます。
モーションコマンドとして使用する場合:
1. 行が空の場合、またはカーソル文字が行の文字と同じ場合
カウント行の th 列、それはエラーになります。
2. カーソルが カウント行の th 列、テキスト領域は
上の文字までの現在の文字で構成されます。
カウント行の th 列。
3. カーソルが カウント行の th 列、テキスト領域は
開始カーソルの前の文字 (その文字を含む)
カウント行の th 列。
4. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 文字の任意の部分が含まれる最後の列に設定します。
に表示され カウント 行の列が表示されます。
逆 もう完成させ、ワークスペースに掲示しましたか? 人格
シノプシス:
[カウント] ,
最後の場合 F, f, Tまたは t コマンドは F, f, Tまたは t、このコマンドは
an f, F, tまたは T コマンド、それぞれ、指定された カウント そして同じ検索
文字。
以前が無かった場合 F, f, Tまたは t コマンド、それはエラーになります。
繰り返す
シノプシス:
[カウント] .
最後を繰り返します !, <, >, A, C, D, I, J, O, P, R, S, X, Y, a, c, d, i, o, p, r, s, x, yまたは
~ 指図。 これらのコマンドのいずれも実行されていない場合は、エラーになります。 コマンド
(テキスト入力モードに入るコマンドを除く) マップ展開の結果として実行される、
最後の反復可能なコマンドの値を変更してはなりません。
関連するモーション コマンドを伴う繰り返しコマンドは、モーション コマンドも繰り返します。
ただし、指定された任意の カウント を置き換えます カウント(s) 元々指定されていた
繰り返されるコマンドまたは関連するモーション コマンド。
繰り返されるコマンドのモーション コンポーネントが f, F, tまたは T、繰り返されるコマンド
の記憶された検索文字を設定してはならない ; , コマンド。
繰り返されるコマンドが p or Pであり、そのコマンドに関連付けられたバッファは
9 未満の数値で名前が付けられた数値バッファー、反復に関連付けられたバッファー
コマンドは、前のバッファの名前によって論理的に命名されたバッファになるように設定されます
1ずつ増加します。
繰り返される文字がテキスト入力コマンドの場合、それに関連付けられた入力テキスト
コマンドは文字通り繰り返されます:
※入力文字はマクロ、略語展開のいずれでもありません。
* 入力文字は、次の例外を除いて、特別な方法で解釈されることはありません。
、 、 と‐T は、 入力 モード
コマンド in vi.
電流プローブ ライン: 繰り返しコマンドの説明に従って設定します。
電流プローブ の項目に表示されます。: 繰り返しコマンドの説明に従って設定します。
もう完成させ、ワークスペースに掲示しましたか? レギュラー 表現
シノプシス:
/
入力行に非文字、それは行に相当するものとします
最後に遭遇した正規表現のみを含みます。 強化された正規表現
による支援 vi で説明されています レギュラー 式 in ex.
それ以外の場合、行は XNUMX つ以上の正規表現として解釈されます。
その後にアドレス オフセットまたは vi z
正規表現が行の最後の正規表現ではない場合、または行が
オフセットまたは z コマンドが指定されている場合、正規表現は
逃げられない 「/」 正規表現の一部として使用されない文字。 もしも
正規表現は行の最初の正規表現ではありません。
XNUMX 個以上の前に文字、 、ゼロ以上
登場人物、そして主役 「/」 の一部として解釈されない文字
正規表現。 正規表現の前に任意の
これら以外のキャラクター。
各検索は、最後に一致した最初の文字の後の文字から開始します
(または、最初の検索の場合はカーソルの後)。 もし ラップスキャン 編集オプションが設定されている場合、
検索は開始カーソル文字の前の文字まで続行されます。 そうでなければ、
編集バッファの最後。 検索で一致が見つからない場合はエラーになります。
この趣旨の情報メッセージが表示されます。
オプションのアドレス オフセット (を参照) アドレッシング in ex) は、最後の通常の後に指定できます
末尾を含む表現 「/」 正規表現の後の文字と
アドレス オフセットを指定します。 このオフセットは、一致を含む行からのものになります
最後に指定された正規表現。 ライン オフセットが
1 より小さいか、編集バッファーの最後の行より大きい行アドレスを示します。 アン
ゼロのアドレス オフセットがサポートされます。 アドレスをたどるとエラーになる
以外の文字とのオフセット文字。
モーション コマンドとして使用しない場合、オプションの z コマンド(を参照) 再描画 ウィンドウ)することができます
末尾を含めることにより、最後の正規表現の後に指定されます 「/」 後の文字
ゼロ以上の正規表現文字、 'z'、ゼロ以上
文字、オプションの新しい ウィンドウを使用して入力ファイルを追加します。 編集オプション値、ゼロ以上文字と
ロケキャラ。 効果はあたかも z の後にコマンドが実行されました /
指図。 に従うとエラーになる z 以外の文字を含むコマンド
文字。
記憶された検索方向は前方に設定されます。
モーションコマンドとして使用する場合:
1. 最後の一致が編集で同じ文字を参照する場合、エラーになります。
buffer を開始カーソルとして使用します。
2. アドレス オフセットが指定されている場合、最後の一致は指定された値によって調整されます。
オフセットは前述の通り。
3. 開始カーソルが最後の一致の後にある場合、開始カーソルの位置
カーソルと編集バッファ内の最後の一致は論理的に交換されます。
4. アドレス オフセットが指定されている場合、テキスト領域はすべての行で構成されます。
開始カーソルから最後の一致行までの文字を含み、
バッファにコピーされたテキストは行モードになります。
5. それ以外の場合、開始行が空の場合、または開始カーソルが
最初の非非スタートラインの、そして最後のマッチラインは空です
または、最後の一致は、最後の一致行の最初の文字から始まります。
領域は、開始カーソルから
最後の一致行の前の行 (両端を含む)、およびバッファーにコピーされたすべてのテキストは、
ラインモードになります。
6. それ以外の場合、最後の一致行が空の場合、または最後の一致が次の文字で始まる場合
または最初の非非最後のマッチ ラインの領域
テキストは、現在のカーソルから最後の非の前の行の
最後の一致行を含み、バッファにコピーされたテキストはすべて文字でなければなりません
モード。
7. それ以外の場合、テキストの領域は、現在のカーソル (包括的) から
最後の一致の最初の文字 (排他的)、およびバッファーにコピーされたテキスト
キャラクターモードになります。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 一致が見つかった場合は、最後に一致した行にアドレス オフセットを加えた値に設定します。
もしあれば; それ以外の場合は変更されません。
電流プローブ の項目に表示されます。: 最初の文字の任意の部分が含まれる最後の列に設定します。
一致が見つかった場合は、最後に一致した文字列が表示されます。 それ以外の場合は変更されません。
移動 〜へ 名 人格 in LINE
シノプシス:
0 (ゼロ)
現在の行の最初の文字に移動します。 キャラクター '0' してはならない
直前に数字がある場合、コマンドとして解釈されます。
モーションコマンドとして使用する場合:
1. カーソル文字が行頭の場合はエラーとする。
2. テキスト領域は、カーソル文字の前の文字から までとします。
行の最初の文字を含みます。
3. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 行の最初の文字の一部が含まれる最後の列
行が空の場合は変更されません。
実行する an ex Command
シノプシス:
:
XNUMX つ以上実行する ex コマンド。
画面の最後の行以外の画面の一部が上書きされた場合
ex コマンド(除く shell), vi を待っていることを示すメッセージを表示します。
ユーザーからの入力、および文字を読み取るものとします。 この措置は、
その他、不特定の理由。
次に入力した文字が ':'別 ex コマンドが受け入れられ、実行されます。
他の文字は画面をリフレッシュし、 vi 指揮に戻る
モード。
電流プローブ ライン: の指定どおり ex
電流プローブ の項目に表示されます。: の指定どおり ex
繰り返す もう完成させ、ワークスペースに掲示しましたか?
シノプシス:
[カウント] ;
このコマンドは、最後の F, f, Tまたは t コマンド、指定された
カウント、および最後に使用されたのと同じ検索文字 F, f, Tまたは t 指図。 もしも
以前はありませんでした F, f, Tまたは t コマンド、それはエラーになります。
シフト 左派
シノプシス:
[カウント] < モーション
モーションコマンドが < コマンドが繰り返されました:
1. 未満の場合 カウント 編集バッファの現在の行から -1 行後、
エラーとなります。
2. テキスト領域は、現在の行から次の行までである必要があります。 カウント -1
ライン。
で指定されたテキスト領域内の任意の行をシフトします。 カウント およびモーションコマンドXNUMXシフト幅
(参照 ex シフト幅 オプション) で説明されているように、行の先頭に向かって ex <
指図。 シフトされていない行は、行モードで無名バッファーにコピーされます。
電流プローブ ライン: モーションが現在のカーソル位置からカーソルの終わりに向かっている場合
編集バッファ、変更なし。 それ以外の場合は、一部である編集バッファーの最初の行に設定します
モーションコマンドで指定されたテキスト領域の
電流プローブ の項目に表示されます。:非設定.
シフト 右派
シノプシス:
[カウント] > モーション
モーションコマンドが > コマンドが繰り返されました:
1. 未満の場合 カウント 編集バッファの現在の行から -1 行後、
エラーとなります。
2. テキスト領域は、現在の行から次の行までである必要があります。 カウント -1
ライン。
によって指定されたテキスト領域内の文字を含む行をシフトします。 カウント とモーション
コマンド XNUMX shiftwidth (を参照してください ex シフト幅 オプション) のように、行頭から離れて
によって記述される ex > 指図。 シフトされていない行は、名前のないバッファにコピーされます
ラインモードで。
電流プローブ ライン: モーションが現在のカーソル位置からカーソルの終わりに向かっている場合
編集バッファ、変更なし。 それ以外の場合は、一部である編集バッファーの最初の行に設定します
モーションコマンドで指定されたテキスト領域の
電流プローブ の項目に表示されます。:非設定.
スキャン 後方 の レギュラー 表現
シノプシス:
?
逆方向にスキャンします。 の ? コマンドは、 / コマンド(を参照) もう完成させ、ワークスペースに掲示しましたか? レギュラー
表現)次の例外を除きます。
1. 入力プロンプトは、 「?」.
2. 各検索は、最後の検索の最初の文字の前の文字から開始します。
一致します (または、最初の検索の場合は、カーソル文字の前の文字)。
3. 検索方向は、カーソルから編集バッファの先頭に向かって、
と ラップスキャン 編集オプションは、検索が最後まで折り返されるかどうかに影響します。
バッファを編集して続行します。
4. 記憶された検索方向は後方に設定されます。
実行する
シノプシス:
@バッファ
Status バッファ として指定されます @、最後に実行されたバッファが使用されます。 前がない場合
buffer が実行された場合、エラーになります。
名前付きバッファの内容が標準入力として入力されたかのように動作します。 それぞれの後
行モード バッファーの行、および文字モード バッファーの最後の行を除くすべての行は、次のように動作します。
あたかも標準入力として入力されました。
このプロセス中にエラーが発生した場合は、エラー メッセージが書き込まれ、それ以上は表示されません。
このコマンドを実行した結果の文字が処理されます。
もし カウント が指定されている場合、そのカウントがユーザー入力として入力されたかのように動作します。
のキャラクター @ バッファが入力されました。
電流プローブ ライン: 個々のコマンドに指定されているとおり。
電流プローブ の項目に表示されます。: 個々のコマンドに指定されているとおり。
逆 シミュレーション例
シノプシス:
[カウント] ~
現在の文字と次の文字の大文字と小文字を逆にする カウント -1文字、そのような
対応する大文字がある小文字は大文字に変更されます
文字、および対応する小文字を持つ大文字は次のように変更されます。
現在のロケールで規定されている小文字。 他のキャラクターは禁止
このコマンドの影響を受けます。
以下の場合 カウント 編集バッファ内のカーソルの後の -1 文字、 カウント
編集バッファ内のカーソルの後の文字数から 1 を引いた値に調整されます。
このコマンドの目的上、最後の非文字列の次の文字上で
行は、編集バッファー内の次の文字になります。
電流プローブ ライン:(を含む行に設定カウント−1) カーソルの後の文字。
電流プローブ の項目に表示されます。: ( の一部が含まれる最後の列に設定します。カウント−1)文字目
カーソル表示後。
追加
シノプシス:
[カウント] a
現在のカーソル位置の後にテキスト入力モードに入ります。 編集中の文字はありません
buffer はこのコマンドの影響を受けます。 あ カウント 入力テキストを
添付 カウント 入力の最後まであと-1回。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
追加 at 行末
シノプシス:
[カウント] A
このコマンドは、 vi コマンド:
$ [ カウント ] a
(参照してください 追加).
移動 後ろ向き 〜へ 先行 Word
シノプシス:
[カウント] b
大きな単語の代わりに単語が区切り文字として使用されることを除いて、このコマンドは
と同等でなければならない B
移動 後ろ向き 〜へ 先行 ビッグワード
シノプシス:
[カウント] B
編集バッファーが空の場合、またはカーソルが編集バッファーの最初の文字にある場合、
エラーとなります。 未満の場合 カウント ビッグワードは、カーソルと先頭の間で始まります
編集バッファ、 カウント 間のビッグワードの開始数に合わせて調整する必要があります。
カーソルと編集バッファの開始。
モーションコマンドとして使用する場合:
1. テキスト領域は、 カウントth 前のビッグワード
カーソル文字まで、ただしカーソル文字は含みません。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: を含む行に設定します。 現在 の項目に表示されます。.
電流プローブ の項目に表示されます。: の最初の文字の一部が存在する最後の列に設定します。
カウントth 前のビッグワードが表示されます。
前日比
シノプシス:
[バッファ][カウント] c モーション
モーションコマンドが c コマンドが繰り返されました:
1. バッファ テキストは行モードでなければなりません。
2. 未満の場合 カウント 編集バッファの現在の行から -1 行後、
エラーとなります。
3. テキスト領域は、現在の行から次の行までである必要があります。 カウント -1
ライン。
それ以外の場合、バッファ テキスト モードとテキスト領域は、モーションで指定されたとおりになります。
置き換えられたテキストは、 バッファ、指定されている場合、名前のないバッファーに。
置換するテキストに複数行の文字が含まれている場合、またはバッファー
テキストが行モードの場合、置き換えられたテキストは数値バッファにもコピーされます。
バッファ テキストが行モードの場合:
1. 領域内の文字を含む行はすべて削除され、エディターは
最初の行を置き換える新しい行の先頭でテキスト入力モードに入ります
行が削除されました。
2。 もし 自動インデント 編集オプションが設定され、 自動インデント に等しい文字 自動インデント
削除された最初の行の文字は、ユーザーが入力したかのように挿入されます。
それ以外の場合、複数行の文字がテキストの領域にある場合:
1. 本文を削除する。
2. テキスト領域の最後の行に残っているテキストは、最初の行に追加されます。
領域内の行、および領域内の最後の行が削除されます。
3. エディタは、最後の文字が削除されていない後、テキスト入力モードに入ります。
テキスト領域の最初の行 (存在する場合)。 それ以外の場合は、最初の列の最初の列に
地域のライン。
さもないと:
1. のグリフの場合 '$' 領域よりも小さい場合、領域の終わりがマークされます
また、 '$'.
2. エディターはテキスト入力モードに入り、テキストの領域を上書きします。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
前日比 〜へ 行末
シノプシス:
[バッファ][カウント] C
このコマンドは、 vi コマンド:
[バッファ][カウント] c$
ジョブの設定方法については、 c
削除
シノプシス:
[バッファ][カウント] d モーション
モーションコマンドが d コマンドが繰り返されました:
1. バッファ テキストは行モードでなければなりません。
2. 未満の場合 カウント 編集バッファの現在の行から -1 行後、
エラーとなります。
3. テキスト領域は、現在の行から次の行までである必要があります。 カウント -1
ライン。
それ以外の場合、バッファ テキスト モードとテキスト領域は、モーションで指定されたとおりになります。
オープン モードで、現在の行が削除され、その行がディスプレイに残っている場合、
「@」 文字は、その行の最初のグリフとして表示されます。
テキストの領域を削除します バッファ、指定されている場合、名前のないバッファーに。 もし
削除するテキストに複数行の文字が含まれているか、バッファ テキストが
行モードでは、削除されたテキストも数値バッファにコピーされます。
電流プローブ ライン: 編集バッファーに表示される最初のテキスト領域行に設定します。
その行は削除されました。その場合、編集の最後の行に設定されます
バッファー、または編集バッファーが空の場合は 1 行目。
電流プローブ の項目に表示されます。:
1. 行が空の場合、列位置 1 に設定します。
2. それ以外の場合、バッファテキストが行モードであるか、モーションがカーソルから
編集バッファの終わり:
a. 現在の行の文字が現在の列に表示されている場合は、
その文字の一部を表示する最後の列。
b. それ以外の場合は、任意の文字の任意の部分が含まれる最後の列に設定します。
行が表示されます。
3. それ以外の場合、テキスト領域を開始した列に文字が表示されている場合は、
その文字の任意の部分を表示する最後の列まで。
4. それ以外の場合は、行の任意の文字の一部が含まれる最後の列に設定します。
表示されます。
削除 〜へ 行末
シノプシス:
[バッファ] D
現在の位置から現在の行の終わりまでのテキストを削除します。 に相当
vi コマンド:
[バッファ] d$
移動 〜へ 単語の終わり
シノプシス:
[カウント] e
区切り文字としてビッグワードの代わりに単語が使用されることを除いて、このコマンドは、
と同等でなければならない E
移動 〜へ ビッグワードの終わり
シノプシス:
[カウント] E
編集バッファが空の場合、エラーになります。 未満の場合 カウント で終わるビッグワード
カーソルと編集バッファの終わり、 カウント の数に調整するものとする。
カーソルと編集バッファーの終わりの間のビッグワードの終わり。
モーションコマンドとして使用する場合:
1. テキスト領域は、 カウントand までの次のビッグワード
カーソル文字を含みます。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 現在の列を含む行に設定します。
電流プローブ の項目に表示されます。: の最後の文字の一部が存在する最後の列に設定します。
カウント次のビッグワードが表示されます。
もう完成させ、ワークスペースに掲示しましたか? 人格 in 電流プローブ LINE (前向き)
シノプシス:
[カウント] f 文字
以下の場合はエラーとなります カウント カーソルの後に文字が出現しない
行に。
モーションコマンドとして使用する場合:
1. テキスト範囲は、カーソル文字から カウントth
カーソルの後の指定された文字の出現。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: のいずれかの部分が含まれる最後の列に設定します。 カウントの th オカレンス
カーソルの後の指定された文字が行に表示されます。
もう完成させ、ワークスペースに掲示しましたか? 人格 in 電流プローブ LINE (逆行する)
シノプシス:
[カウント] F 文字
以下の場合はエラーとなります カウント カーソルの前に文字が出現しない
行に。
モーションコマンドとして使用する場合:
1. テキスト領域は、 カウント前に指定された文字が出現する回数
カーソル文字まで、ただしカーソル文字は含みません。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: のいずれかの部分が含まれる最後の列に設定します。 カウントの th オカレンス
カーソルの前の指定された文字が行に表示されます。
移動 〜へ LINE
シノプシス:
[カウント] G
If カウント が指定されていない場合、デフォルトで編集バッファの最終行になります。 もしも カウント
が編集バッファの最終行より大きい場合、エラーになります。
モーションコマンドとして使用する場合:
1. テキスト領域は、カーソル行から指定された行までである必要があります。
2. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: に設定 カウント if カウント 指定されています。 それ以外の場合は、最後の行。
電流プローブ の項目に表示されます。:非設定.
移動 〜へ Top of 画面
シノプシス:
[カウント] H
行頭の場合 カウント その一部の最初の行よりも大きい
が存在しない場合はエラーとなります。
モーションコマンドとして使用する場合:
1. オープン モードの場合、テキスト領域は現在の行になります。
2. それ以外の場合、テキスト領域は開始行から (
ディスプレイの最初の行 + カウント −1)。
3. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
オープン モードの場合、このコマンドは現在の列を非そして何もしない
else。
それ以外の場合は、現在の行と現在の列を次のように設定します。
電流プローブ ライン:(表示XNUMX行目+ カウント −1)。
電流プローブ の項目に表示されます。:非設定.
インサート 前 カーソル
シノプシス:
[カウント] i
現在のカーソル位置の前でテキスト入力モードに入ります。 にすでに文字がありません
エディット バッファは、このコマンドの影響を受けます。 あ カウント 入力テキストを
添付 カウント 入力の最後まであと-1回。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
インサート at 開始 of LINE
シノプシス:
[カウント] I
このコマンドは、 vi コマンド^[カウント]i.
加入団体
シノプシス:
[カウント] J
現在の行が編集バッファの最後の行である場合、エラーになります。
このコマンドは、 ex join アドレスのないコマンド、および ex
command カウント 1 の値 カウント が指定されていないか、 カウント of 1 が指定され、かつ
an ex command カウント の値 カウント -1 のその他の値 カウント、ただし
現在の行と列は次のように設定されます。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 最後の列に続く文字の一部が含まれる最後の列
最初の行の文字が表示されるか、最後の非いいえの場合は行に
文字が追加されました。
移動 〜へ ボトム of 画面
シノプシス:
[カウント] L
行頭の場合 カウント 一部が表示される最後の行より少ない
表示がない場合はエラーとなります。
モーションコマンドとして使用する場合:
1. オープン モードの場合、テキスト領域は現在の行になります。
2. それ以外の場合、テキスト領域には、開始カーソル行から
(ディスプレイの最後の行 −(カウント −1))。
3. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
1. オープン モードの場合、このコマンドは現在の列を非そして、やります
他には何もありません。
2. それ以外の場合は、現在の行と現在の列を次のように設定します。
電流プローブ ライン: (表示の最終行 -(カウント −1))。
電流プローブ の項目に表示されます。:非設定.
Mark Hodder 役職
シノプシス:
m 手紙
このコマンドは、 ex マーク 指定した文字を
引数。
移動 〜へ 真ん中 of 画面
シノプシス:
M
ディスプレイの中央の線は、次のように計算されます。
( top ライン of 画面) + (((番号 of ライン 表示) + 1) / 2) -1
モーションコマンドとして使用する場合:
1. オープン モードの場合、テキスト領域は現在の行になります。
2. それ以外の場合、テキスト領域には、カーソルの開始行から次の行までのすべての行が含まれます。
ディスプレイの中央の行を含みます。
3. バッファにコピーされるテキストは行モードでなければなりません。
モーションコマンドとして使用しない場合:
オープン モードの場合、このコマンドは現在の列を非そして何もしない
else。
それ以外の場合は、現在の行と現在の列を次のように設定します。
電流プローブ ライン:表示の中段に設定します。
電流プローブ の項目に表示されます。:非設定.
繰り返す レギュラー 表現 もう完成させ、ワークスペースに掲示しましたか? (前向き)
シノプシス:
n
記憶された探索方向が前方だった場合、 n コマンドは、
vi / ユーザーが文字を入力しないコマンド。 それ以外の場合は、
vi ? ユーザーが文字を入力しないコマンド。
Status n コマンドは、 ! コマンド、エディタは
画面の最後の行でテキスト入力モードに入り、ユーザーが
シングルに入った 「!」 文字をテキスト入力として使用します。
繰り返す レギュラー 表現 もう完成させ、ワークスペースに掲示しましたか? (逆行する)
シノプシス:
N
に与えられた最後のパターンの次の一致をスキャンします / or ?、しかし逆方向に。
これはその逆です n.
記憶された探索方向が前方だった場合、 N コマンドは、
vi ? ユーザーが文字を入力しないコマンド。 それ以外の場合は、
vi / ユーザーが文字を入力しないコマンド。 もし N コマンドは
モーションコマンド ! コマンド、エディターは最後のテキスト入力モードに入ってはなりません
ユーザーが単一の行を入力したかのように動作します。 ! としてのキャラクター
テキスト入力。
インサート 空の LINE 以下
シノプシス:
o
現在の行の後に追加された新しい行でテキスト入力モードに入ります。 あ カウント 引き起こすだろう
追加する入力テキスト カウント すでに追加されたテキストの最後までさらに-1回、
毎回、追加された新しい行から開始します。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
インサート 空の LINE 上記の
シノプシス:
O
現在の行の前に挿入された新しい行でテキスト入力モードに入ります。 あ カウント 引き起こすだろう
追加する入力テキスト カウント すでに追加されたテキストの最後までさらに-1回、
毎回、追加された新しい行から開始します。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
入れ from バッファ フォロー
シノプシス:
[バッファ] p
ない場合 バッファ が指定されている場合、名前のないバッファが使用されます。
バッファ テキストが行モードの場合、テキストは現在の行の下に追加されます。
バッファの各行は、編集バッファの新しい行になります。 あ カウント 引き起こすだろう
追加するバッファテキスト カウント すでに追加されたテキストの最後までさらに-1回、
毎回、追加された新しい行から開始します。
バッファテキストが文字モードの場合、テキストは現在の行に追加されます
カーソルの後、最初と最後を除くバッファの各行は
編集バッファの改行。 あ カウント バッファテキストが追加されます カウント -1
最後に追加されたテキストの後に開始するたびに、既に追加されたテキストの最後まで複数回
文字。
電流プローブ ライン: バッファ テキストが行モードの場合、行を +1 行に設定します。 それ以外は、
変更なし。
電流プローブ の項目に表示されます。: バッファ テキストが行モードの場合:
1. バッファの最初の行で、最後の列に設定されます
最初の非行に表示されます。
2.不備がない場合バッファの最初の行で、最後の列に設定されます
最後の非バッファの最初の行は
表示されます。
バッファ テキストが文字モードの場合:
1. バッファ内のテキストが複数の行からのものである場合、最後の列に設定します
バッファの最初の文字の任意の部分が表示されます。
2. それ以外の場合、バッファが名前のないバッファの場合、任意の最後の列に設定されます。
バッファの最後の文字の一部が表示されます。
3. それ以外の場合は、最初の文字の一部が含まれる最初の列に設定します。
バッファが表示されます。
入れ from バッファ 前
シノプシス:
[バッファ] P
ない場合 バッファ が指定されている場合、名前のないバッファが使用されます。
バッファテキストが行モードの場合、テキストは現在の行の上に挿入されます。
バッファの各行は、編集バッファの新しい行になります。 あ カウント 引き起こすだろう
追加するバッファテキスト カウント すでに追加されたテキストの最後までさらに-1回、
毎回、追加された新しい行から開始します。
バッファテキストが文字モードの場合、テキストは現在の行に挿入されます
カーソルの前、およびバッファの最初と最後以外の各行は次のようになります。
編集バッファの改行。 あ カウント バッファテキストが追加されます カウント -1
最後に追加されたテキストの後に開始するたびに、既に追加されたテキストの最後まで複数回
文字。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: バッファ テキストが行モードの場合:
1. バッファの最初の行で、最後の列に設定されます
その文字のどの部分が表示されるか。
2.不備がない場合バッファの最初の行で、最後の列に設定されます
最後の非バッファの最初の行は
表示されます。
バッファ テキストが文字モードの場合:
1. バッファ内のテキストが複数の行からのものである場合、最後の列に設定します
バッファの最初の文字の任意の部分が表示されます。
2. それ以外の場合、バッファが名前のないバッファの場合、任意の最後の列に設定されます。
バッファの最後の文字の一部が表示されます。
3. それ以外の場合は、最初の文字の一部が含まれる最初の列に設定します。
バッファが表示されます。
Enter ex モード
シノプシス:
Q
ビジュアル モードまたはオープン モードを終了して、 ex コマンドモード。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
交換する 人格
シノプシス:
[カウント] r 文字
置き換える カウント 指定した文字でカーソル位置以降の文字を検索します。 もしも
より少ない カウント 非行のカーソル位置以降の文字
エラーとなります。
もしキャラクターが‐V、次の文字以外の任意の文字はぎ取られる
特別な意味を持ち、リテラル文字として使用されます。
もしキャラクターが、置換は行われず、現在の行と現在の
列は変更されません。
もしキャラクターがまた、 カウント 新しい行がに追加されます
現在の行。 これらの行の最後を除くすべてが空になります。 カウント と の文字
カーソルの後の文字は破棄され、カーソルの後の残りの文字は
現在の行は、新しい行の最後に移動されます。 もし 自動インデント 編集オプションは
設定されている場合、それらは同じ数の 自動インデント 行で見つかった文字
コマンドの実行元。
電流プローブ ライン: 置換文字がまた
、その場合、行 + に設定されます カウント.
電流プローブ の項目に表示されます。: 最後の列の一部が置き換えられた最後の列位置に設定します。
文字が表示されるか、置換文字によって新しい行が作成された場合、
非に設定.
交換する キャラクター
シノプシス:
R
現在のカーソル位置でテキスト入力モードに入り、場合によってはテキストを置き換えます
現在の行。 あ カウント 入力テキストが追加されます カウント にさらに-1回
入力の終わり。
電流プローブ 行/列: テキスト入力コマンドに指定されているとおり (を参照) 入力 モード コマンド in
vi).
代替 人格
シノプシス:
[バッファ][カウント] s
このコマンドは、 vi コマンド:
[バッファ][カウント] c
代替 ラインズ
シノプシス:
[バッファ][カウント] S
このコマンドは、 vi コマンド:
[バッファ][カウント] c_
移動 カーソル 〜へ 前 人格 (前向き)
シノプシス:
[カウント] t 文字
以下の場合はエラーとなります カウント カーソルの後に文字が出現しない
行に。
モーションコマンドとして使用する場合:
1. テキスト領域は、カーソルからカーソルまでである必要があります。 カウントth
カーソルの後の指定された文字の出現。
2. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 前の文字の任意の部分が含まれる最後の列に設定します。
カウントカーソルが行に表示された後の、指定された文字の th オカレンス。
移動 カーソル 〜へ 後 人格 (逆行する)
シノプシス:
[カウント] T 文字
以下の場合はエラーとなります カウント カーソルの前に文字が出現しない
行に。
モーションコマンドとして使用する場合:
1. カーソルの前の文字が指定文字の場合、エラーとなります。
2. テキスト領域は、カーソルの前の文字から、カーソルの前の文字までである必要があります。
カウントカーソルの前の指定された文字の th オカレンス。
3. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: の後の文字の任意の部分が含まれる最後の列に設定します。
カウントカーソルが行に表示される前に、指定された文字が出現する回数。
アンドゥ
シノプシス:
u
このコマンドは、 ex 取り消す コマンドを除いて、現在の行と
現在の列は次のように設定されます。
電流プローブ ライン: 追加または変更された行がある場合は、最初の行に設定します。 それ以外の場合は、行に移動します
削除されたテキストがある場合はその前に。 それ以外の場合は、1 行目に移動します。
電流プローブ の項目に表示されます。: 元に戻す場合 ex コマンド、最初の非.
それ以外の場合、テキスト入力コマンドを元に戻す場合:
1. コマンドが C, c, O, o, R, Sまたは s コマンド、現在の列が設定されます
テキスト入力コマンドが入力されたときに保持されていた値に。
2. それ以外の場合、最初の文字の任意の部分が後に続く最後の列に設定します。
削除されたテキストが表示されます。 文字はテキストに従います
この行から削除され、最後の行の任意の部分が含まれる最後の列に設定されます
非が表示されるか、行が空の場合は 1 になります。
それ以外の場合、単一の行が変更された (つまり、追加も削除もされていない) 場合、 u コマンド:
1. テキストが追加または変更された場合は、最初のテキストの一部が含まれる最後の列に設定します。
追加または変更された文字が表示されます。
2. テキストが削除された場合、最初のテキストの一部が含まれる最後の列に設定されます。
削除されたテキストの後の文字が表示されます。 文字
削除されたテキストを追跡し、最後の列の任意の部分が含まれる最後の列に設定します
非が表示されるか、行が空の場合は 1 になります。
それ以外の場合は、非.
アンドゥ 電流プローブ LINE
シノプシス:
U
現在の行を最新の時刻の直前の状態に復元します。
現在の路線になりました。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 最初の列の任意の部分が含まれる行の最初の列に設定します。
行中の文字が表示されます。
移動 〜へ 開始 of Word
シノプシス:
[カウント] w
大きな単語の代わりに単語が区切り文字として使用されることを除いて、このコマンドは
と同等でなければならない W
移動 〜へ 開始 of ビッグワード
シノプシス:
[カウント] W
編集バッファが空の場合、エラーになります。 未満の場合 カウント ビッグワード
カーソルと編集バッファの終わりの間、 カウント を移動するように調整する必要があります。
カーソルを編集バッファー内の最後のビッグワードに移動します。
モーションコマンドとして使用する場合:
1. 関連するコマンドが c, カウント は 1 で、カーソルは、 地域
of text が現在の文字になり、それ以上のアクションは実行されません。
2. 未満の場合 カウント カーソルと編集の終わりの間のビッグワード
バッファの場合、コマンドは成功し、テキストの領域には最後の
編集バッファの文字。
3. ある場合に先行する文字または行末 カウントビッグワード、
関連するコマンドは c、テキストの領域は、
直前の最後の文字文字または行末。
4. ある場合ビッグワードの前にある文字または行末、および
関連コマンドは d or y、テキストの領域は最後のものまでである必要があります
ビッグワードまたは行末の開始前。
5. バッファにコピーされるテキストはすべて文字モードでなければなりません。
モーションコマンドとして使用しない場合:
1. カーソルが編集バッファの最後の文字にある場合、エラーになります。
電流プローブ ライン: 現在の列を含む行に設定します。
電流プローブ の項目に表示されます。: の最初の文字の一部が含まれる最後の列に設定します。
カウント次のビッグワードが表示されます。
削除 人格 at カーソル
シノプシス:
[バッファ][カウント] x
削除 カウント 現在の文字以降の文字 バッファ、指定されている場合、
そして名前のないバッファに。
行が空の場合、エラーになります。 未満の場合 カウント 非
現在行のカーソル位置以降の文字、 カウント に調整するものとします。
非の数カーソル位置以降の文字。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 行が空の場合、列位置 1 に設定します。
カウント 以下非現在の行のカーソル位置以降の文字。
最後の非オブジェクトの一部を表示する最後の列行の。 さもないと、
変更なし。
削除 人格 前 カーソル
シノプシス:
[バッファ][カウント] X
削除 カウント 現在の文字の前の文字 バッファ、指定されている場合、および
名前のないバッファに。
現在の行の現在の文字の前に文字がない場合、それは
エラー。 未満の場合 カウント 現在の行の前の文字、 カウント
行の前の文字数に調整されます。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: (現在の列 - 削除された文字の幅) に設定します。
ヤンク
シノプシス:
[バッファ][カウント] y モーション
テキストの領域をコピー (ヤンク) バッファ、指定されている場合、名前のないバッファーに。
モーションコマンドが y コマンドが繰り返されました:
1. バッファーは行モードでなければなりません。
2. 未満の場合 カウント 編集バッファの現在の行から -1 行後、
エラーとなります。
3. テキスト領域は、現在の行から次の行までである必要があります。 カウント -1
ライン。
それ以外の場合、バッファ テキスト モードとテキスト領域は、モーションで指定されたとおりになります。
電流プローブ ライン: モーションが現在のカーソル位置からカーソルの終わりに向かっている場合
編集バッファ、変更なし。 それ以外の場合は、一部である編集バッファーの最初の行に設定します
モーションコマンドで指定されたテキスト領域の
電流プローブ の項目に表示されます。:
1. モーションが現在のカーソル位置から編集バッファの終わりに向かっていた場合、
変更なし。
2. それ以外の場合、現在の行が空の場合は、列位置 1 に設定します。
3. それ以外の場合は、最初の文字の一部を表示する最後の列に設定します。
モーション コマンドで指定されたテキスト領域の一部であるファイル。
ヤンク 電流プローブ LINE
シノプシス:
[バッファ][カウント] Y
このコマンドは、 vi コマンド:
[バッファ][カウント] y_
再描画 ウィンドウ
オープンモードの場合、 z コマンドには概要が含まれます。
シノプシス:
[カウント] z
If カウント が指定されていない場合、デフォルトで ウィンドウを使用して入力ファイルを追加します。 編集オプション-1。 の z command
と同等でなければならない ex z コマンド、タイプ文字 = フォルダーとその下に カウント of カウント
-2、ただし、現在の行と現在の列は次のように設定する必要があり、
ウィンドウを使用して入力ファイルを追加します。 編集オプションは影響を受けません。 の計算の場合 カウント 引数は
負の数になります。 カウント への議論 ex z コマンドはゼロでなければなりません。 ブランク
行は、最後の行が書き込まれた後に書き込まれます。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
オープンモードでない場合、 z コマンドの概要は次のとおりです。
シノプシス:
[ライン] z [カウント] 文字
If ライン が指定されていない場合、デフォルトで現在の行になります。 もしも ライン と指定されていますが、
が編集バッファの行数より大きい場合、デフォルトで
編集バッファ内の行。
If カウント が指定されている場合、 ウィンドウを使用して入力ファイルを追加します。 編集オプションはに設定されます カウント (として
の ex ウィンドウを使用して入力ファイルを追加します。 コマンド)、画面は再描画されます。
ライン 次の文字で指定されたとおりに配置する必要があります。
、
行の先頭をディスプレイの最初の行に置きます。
. 行の先頭をディスプレイの中央に配置します。 の中間線
表示は、 M
− 行の指定されていない部分をディスプレイの最終行に配置します。
+ もし ライン が指定されました。 場合。 もしも ライン 指定されていませんでしたが、
ディスプレイの最初の行が表示される画面を表示します (現在の最後の行)
+1。 表示の最終行以降に行がない場合はエラーとなります。
^ もし ライン が指定された場合、表示の最終行が
あるディスプレイの最初の行の不特定の部分を含む
表示の最終行の指定された行の指定されていない部分。 これなら
編集バッファの先頭の前の行に計算結果が表示されます。
編集バッファの最初の画面。
それ以外の場合は、ディスプレイの最後の行に
(現在の最初の行 -1) の指定されていない部分。 この計算結果が
エディットバッファの先頭より前の行は、エラーになります。
電流プローブ ライン:もし ライン と '^' 文字が指定されました:
1. コマンドを表示しようとした結果、最初の画面が表示された場合
編集バッファの開始前の行: 最初の画面がすでに
表示され、変更されません。 それ以外の場合は、(現在の最初の行 -1) に設定します。
2. それ以外の場合は、ディスプレイの最終行に設定します。
If ライン と 「+」 文字が指定された場合、ディスプレイの最初の行に設定されます。
そうでなければ、 ライン が指定され、に設定されました ライン.
それ以外の場合は、変更されません。
電流プローブ の項目に表示されます。:非設定.
出口
シノプシス:
ZZ
このコマンドは、 ex XIT アドレスのないコマンド、末尾 !または
ファイル名 ( ex XIT コマンド)。
入力 モード コマンド in vi
テキスト入力モードでは、現在の行は次の XNUMX 個以上で構成されます。
カテゴリ、および終了:
1. テキスト入力エントリ ポイントの前の文字
このカテゴリの文字は、テキスト入力モード中に変更してはなりません。
2. 自動インデント 文字
自動インデント 文字は、作成される各行に自動的に挿入されます
テキスト入力モードで、 また
テキスト入力モード中、またはコマンド自体の効果として。 例えば、 O or o
(参照 ex 自動インデント コマンド)、ユーザーが入力したかのように。
消去できるものとする 自動インデント の文字‐Dコマンド; それ
によって消去できるかどうかは不明です。 ‐H、 ‐U、および‐W
文字。 任意の消去 自動インデント character はグリフを列消去に変換し、
編集バッファから文字を削除しますが、その表現は変更しません
スクリーン。
3. テキスト入力文字
テキスト入力文字は、ユーザーが入力する文字です。 テキスト入力の消去
character グリフを列消去に変換し、編集から文字を削除します
バッファに表示されますが、画面上の表現は変更されません。
ユーザーが入力した各テキスト入力文字 (特別な意味はありません)
次のように扱われます。
a. テキスト入力文字は、編集の最後の文字に追加されます
XNUMX 番目、XNUMX 番目、または XNUMX 番目のカテゴリからバッファします。
b. 画面に消去列がない場合、テキスト入力コマンドは R
コマンド、および元の行から XNUMX 番目のカテゴリの文字が、
カーソル、次のそのような文字は編集バッファから削除されます。 もし
スローオープン 編集オプションが設定されていない場合、画面上の対応するグリフは
消去列になります。
c. 画面上に列の消去がある場合、それらが占める列と同じ数の列、または
が必要であり、テキスト入力文字を表示するために上書きされます。 (もしあれば
段組グリフの一部が上書きされ、残りは
画面に表示され、引き続き消去列として扱われます。 かどうかは特定されていません。
グリフの残りの部分は何らかの方法で変更されます。)
d. テキスト入力文字を表示するために追加の表示行列が必要な場合:
私。 もし スローオープン 編集オプションが設定されている場合、テキスト入力文字は
後続の表示行の列に表示され、文字は上書きされます
それらの列に表示されます。
ii. それ以外の場合、現在表示されている文字は、
テキスト入力文字が表示される表示行
残りを表示するために必要な表示行列の数を先に進めました
テキスト入力文字の。
4. 列の消去
消去列は、論理的には編集バッファーの一部ではなく、画面にのみ表示されます。
後続のテキスト入力文字によって画面上で上書きされる場合があります。 テキストの場合
入力モードが終了すると、すべての消去列が画面に表示されなくなります。
消去列は、最初は、によって指定されたテキストの領域です。 c コマンド(を参照)
前日比); ただし、消去 自動インデント またはテキスト入力文字は、
消去された文字は消去列として扱われます。
5. のテキスト領域に続く文字 c コマンド、またはテキスト入力エントリ ポイント
他のすべてのコマンド
このカテゴリの文字は、次の場合を除き、テキスト入力モード中に変更してはなりません。
カテゴリ 3.b で指定されています。 のために R テキスト入力コマンド、または文字
削除されたときまた入ります。
行頭を越えて消去しようとするのがエラーかどうかは不明
のエントリによって作成されたまた文字入力モード時。
エラーでない場合、エディタは消去文字が入力されたかのように動作します。
前の行に入力された最後のテキスト入力文字の直後、およびすべての
非現在の行の文字は消去列として扱われます。
文字入力モードに入ったとき、または文字入力モードの文字を入力した後(例外を除く)
以下の特殊文字に指定されているように)、カーソルは次のように配置されます。
1. 最初の消去列が存在する場合、その一部を表示する最初の列
2. そうでない場合、 スローオープン 編集オプションが設定された後、最初の表示行の列に
XNUMX 番目、XNUMX 番目、または XNUMX 番目のカテゴリの最後の文字 (存在する場合)
3. それ以外の場合、XNUMX 番目の文字列の最初の文字の一部を表示する最初の列
カテゴリ (存在する場合)
4. それ以外の場合、最初、XNUMX 番目、または
XNUMX 番目のカテゴリ (存在する場合)
5. それ以外の場合は、列位置 1
テキスト入力モード中に画面上で更新される文字は不特定です。
それ以外の場合、最後のテキスト入力文字は常に更新されます。
スローオープン 編集オプションが設定されていない場合、現在のカーソル文字は常に更新されます。
次の仕様は、テキスト入力モードで入力されるコマンド文字に関するものです。
NUL
シノプシス:
NUL
テキスト入力の最初の文字が NUL の場合、最後に入力されたテキストは
ユーザーが入力したかのように入力し、テキスト入力モードを終了します。 テキストは、
文字どおりに入力する。 つまり、文字はマクロ展開も省略展開もされません。
特別な方法で解釈される任意の文字です。 かどうかは未定
実装は、256 バイトを超える記憶された入力テキストをサポートする必要があります。
-D
シノプシス:
-D
の‐D 文字は、テキスト入力モードでは特別な意味を持たないものとします。
行単位のコマンド (を参照) Command 説明 in vi).
このコマンドは、ブロックモード端末でサポートされる必要はありません。
カーソルが 自動インデント 文字、または 自動インデント キャラクターと
'0' or '^' キャラクター:
1. カーソルが列位置 1 にある場合、 ‐Dキャラは捨てる
そしてそれ以上の行動は取られません。
2. そうでなければ、 ‐Dの文字は特別な意味を持たない。
最後の入力文字が '0'、カーソルは列位置 1 に移動します。
それ以外の場合、最後の入力文字が '^'、カーソルは列に移動します
位置 1. さらに、 自動インデント 次の入力ラインのレベルが導出されます
と同じ行から 自動インデント 現在の入力行のレベルが導出されました。
それ以外の場合、カーソルは、前のシフト幅の後の列に戻されます (を参照)。
ex シフト幅 コマンド) 境界。
開始カーソル位置と (両端を含む) 間の列のすべてのグリフ
終了カーソル位置は、で説明されているように、列の消去になります。 入力 モード コマンド in
vi.
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: の場合は 1 に設定します。 ‐D の前に '^' or '0'; それ以外の場合は、設定します
to (列 -1) −((列 -2) % シフト幅).
-H
シノプシス:
-H
行単位のコマンドのテキスト入力モードで、消去する文字がない場合、
テキスト入力モードは終了し、このコマンドに対してそれ以上のアクションは実行されません。
現在の行と列は変更されません。
以外のキャラクターがいる場合 自動インデント で入力した文字
カーソルの前の現在の行では、カーソルは XNUMX 文字戻ります。
そうでなければ、もしあれば 自動インデント カーソルの前の現在の行の文字、それは
実装定義の‐H コマンドがエラーまたはカーソルが移動した場合
後ろにXNUMXつ 自動インデント 文字。
それ以外の場合、カーソルが列位置 1 にあり、前の行に
入力されているかどうかは実装定義です。 ‐H コマンドがエラーまたは
と入力するのと同じです。 ‐H 前の最後の入力文字の後に
入力ライン。
それ以外の場合は、エラーになります。
開始カーソル位置と (両端を含む) 間の列のすべてのグリフ
終了カーソル位置は、で説明されているように、列の消去になります。 入力 モード コマンド in
vi.
現在の消去文字 (を参照) スティ) は、 ‐H
コマンド、以前に挿入された文字が、その場合は
文字の代わりに現在の消去文字が挿入されたかのようになります。
.
電流プローブ ライン: 以前に入力された行が消去されない限り、変更されません。
-1 行に設定されます。
電流プローブ の項目に表示されます。: 裏打ちされた文字の任意の部分を表示する最初の列に設定します
上に。
シノプシス:
-J
-M
入力が行指向のコマンドの一部であった場合、テキスト入力モードは終了し、
コマンドは、提供された入力で実行を継続します。
それ以外の場合は、現在の行を終了します。 以外のキャラクターがいない場合 自動インデント
行上のすべての文字は破棄されます。 そうでなければ、それは
かどうかは不明 自動インデント 行内の文字は、これらを入力することによって変更されます
文字。
現在の行の後に追加された新しい行でテキスト入力モードを続行します。 もし スローオープン
編集オプションが設定されている場合、現在の行の下の画面上の行はプッシュされません
ダウンしますが、それらの最初のものはクリアされ、上書きされたように見えます。
それ以外の場合、現在の行の下にある画面の行は押し下げられます。
Status 自動インデント 編集オプションが設定されている場合、適切な数の 自動インデント 文字はしなければならない
で説明されているように、行にプレフィックスとして追加されます。 ex 自動インデント 編集オプション。
消去列であるカーソルの後のすべての列 (で説明されているように) 入力 モード コマンド
in vi) は破棄されます。
Status 自動インデント 編集オプションが設定されている、すべて直後の文字
カーソルは破棄されます。
カーソルの後の残りのすべての文字は、新しい行に転送され、配置されます。
いずれにしても 自動インデント 文字。
電流プローブ ライン: 現在の行に +1 を設定します。
電流プローブ の項目に表示されます。: 最初の文字の任意の部分を表示する最初の列に設定します
後に 自動インデント 改行文字 (存在する場合)、または最初の桁位置
最後の後 自動インデント ある場合は文字、または列位置 1。
-T
シノプシス:
-T
の‐T 文字は、テキスト入力モードの場合、特別な意味を持たないものとします。
行単位のコマンド (を参照) Command 説明 in vi).
このコマンドは、ブロックモード端末でサポートされる必要はありません。
ユーザーが最小数を入力したかのように動作する移動に必要な文字
カーソルが次の列位置に進む シフト幅 (参照 ex シフト幅
コマンド) 境界。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: に設定 の項目に表示されます。 + シフト幅 − ((列 −1) % シフト幅).
-U
シノプシス:
-U
以外のキャラクターがいる場合 自動インデント で入力した文字
カーソルの前の現在の行、カーソルは後の最初の文字入力に移動します
自動インデント 文字。
そうでなければ、もしあれば 自動インデント カーソルの前の現在の行の文字、それは
実装定義の‐U コマンドがエラーまたはカーソルが移動した場合
行の最初の列位置まで。
それ以外の場合、カーソルが列位置 1 にあり、前の行に
入力されているかどうかは実装定義です。 ‐U コマンドがエラーまたは
と入力するのと同じです。 ‐U 前の最後の入力文字の後に
入力ライン。
それ以外の場合は、エラーになります。
開始カーソル位置と (両端を含む) 間の列のすべてのグリフ
終了カーソル位置は、で説明されているように、列の消去になります。 入力 モード コマンド in
vi.
現在 kill キャラクター(参照 スティ) と同等のアクションを引き起こすものとします。 ‐う
コマンド、以前に挿入された文字が、その場合は
あたかも文字通りの現在のようでなければならない kill の代わりに文字が挿入されていました
.
電流プローブ ライン: 以前に入力された行が消去されない限り、変更されません。
-1 行に設定されます。
電流プローブ の項目に表示されます。: 最後の文字の任意の部分を表示する最初の列に設定します
バックアップしました。
-V
シノプシス:
-V
-Q
以外の後続の文字の入力を許可する‐J または、 として
リテラル文字、テキスト内のエディターにとって特別な意味を取り除く
入力モード。 もし‐V または‐Q は a の前に入力されます。 ‐J または、
の‐V または‐Q文字は破棄され、 ‐J または
で説明されているように動作するものとします入力モード中のコマンド文字。
表示のみを目的として、エディタはあたかも '^' キャラクターは
入力され、カーソルは上書きするかのように配置されます '^' キャラクター。 とき
後続の文字が入力された場合、エディターはその文字が入力されたかのように動作します
オリジナルの代わりに‐V または‐Qキャラ。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。: 変更なし。
-W
シノプシス:
-W
以外のキャラクターがいる場合 自動インデント で入力した文字
カーソルの前の現在の行、カーソルは前の最後の単語に戻ります
カーソル (任意のものを含む最後の単語の終わりと
現在のカーソル); カーソルは、の末尾の後の最初の文字の前に移動してはなりません
どれか 自動インデント 文字。
そうでなければ、もしあれば 自動インデント カーソルの前の現在の行の文字、それは
実装定義の‐W コマンドがエラーまたはカーソルが移動した場合
行の最初の列位置まで。
それ以外の場合、カーソルが列位置 1 にあり、前の行に
入力されているかどうかは実装定義です。 ‐W コマンドがエラーまたは
と入力するのと同じです。 ‐W 前の最後の入力文字の後に
入力ライン。
それ以外の場合は、エラーになります。
開始カーソル位置と (両端を含む) 間の列のすべてのグリフ
終了カーソル位置は、で説明されているように、列の消去になります。 入力 モード コマンド in
vi.
電流プローブ ライン: 以前に入力された行が消去されない限り、変更されません。
-1 行に設定されます。
電流プローブ の項目に表示されます。: 最後の文字の任意の部分を表示する最初の列に設定します
バックアップしました。
シノプシス:
入力が行単位のコマンドの一部である場合:
1。 もし 割り込み が入力された場合、テキスト入力モードは終了し、エディターは
コマンドモードに戻ります。 端末は警告を受けなければならない。
2.もしが入力された場合、テキスト入力モードは終了し、コマンドは
提供された入力で実行を続行します。
それ以外の場合は、テキスト入力モードを終了し、コマンド モードに戻ります。
任意 自動インデント 新しく作成された行に入力された文字は、他の非
文字は削除されます。
主要な 自動インデント と新しく作成された行の文字は、
の最小数文字可能。
編集バッファの内容に合わせて、必要に応じて画面を再表示します。
電流プローブ ライン: 変更なし。
電流プローブ の項目に表示されます。:
1. 現在の行にテキスト入力文字がある場合、列は
最後のテキスト入力文字の一部が表示される最後の列。
2. それ以外の場合、文字が現在の列に表示されている場合は変更されません。
3. それ以外の場合は、列位置 1 に設定します。
EXIT ステータス
次の終了値が返されます。
0正常に完了しました。
> 0エラーが発生しました。
結果 OF エラー
エラーが発生し、標準入力が端末デバイス ファイルでない場合、 vi
ファイルを書き込んだり、コマンドまたはテキスト入力モードに戻ったりしてはならず、終了する必要があります
ゼロ以外の終了ステータス。
それ以外の場合、回復不能なエラーが発生すると、SIGHUP と同等になります。
非同期イベント。
それ以外の場合、エラーが発生した場合、エディターは指定されたとおりに動作する必要があります。 Command
説明 in vi.
当学校区の フォロー中 セクション 有益です。
お申込み USAGE
なし。
例
なし。
理論的根拠
根拠を参照してください ex の詳細については、 vi. の主要部分 vi ユーティリティ
仕様ポイント ex 意図しない発散を避けるために。 その間 ex vi 持ってる
歴史的に単一のユーティリティとして実装されてきましたが、これは POSIX.1-2008 では必要ありません。
の部分であることが認められている. vi 不可能ではないにしても、実装するのは難しいでしょう
ブロックモード端末、またはカーソルのない端末で十分です
したがって、そのような機能がすべてのデバイスで動作することは必須要件ではありません。
端末。 ただし、 vi 実装は完全を提供する必要があります
それらをサポートできるすべての端末の一連の機能。
歴史的には、 vi 標準入力が端末でない場合、すぐに終了します。 POSIX.1‐2008
は、この動作を許可しますが、必須ではありません。 ファイル終了条件は同等ではありません
ファイルの終わりの文字に。 一般的なファイルの終わりの文字、 ‐D、歴史的に
a vi
STDOUT セクションのテキストは、動詞の使用法を反映しています。 ディスプレイ このセクションで;
のいくつかの実装 vi 標準出力を使用して端末に書き込みますが、POSIX.1‐2008
そうである必要はありません。
歴史的に、端末がオープンモードに対応していない場合、実装はオープンモードに戻りました。
フルビジュアルモードをサポート。 POSIX.1‐2008 では、この動作が必要です。 歴史的に、オープン
のモード vi ビジュアル モードとほぼ同じように動作しますが、
編集バッファからの XNUMX 行 (XNUMX つの「バッファ行」) は、常に最新の状態に保たれていました。 これ
行は通常、カーソルアドレス指定を使用して端末の最後から XNUMX 行目に表示されていました
(そして最後の行は、行指向のコマンドの通常の視覚機能を実行し、
メッセージ)。 さらに、一部のコマンドは、オープン モードとビジュアル モードで動作が異なります。
モード。 POSIX.1-2008 では、歴史的な慣行への準拠が必要です。
歴史的には、 ex vi 実装は、テキストが通常どおりに進むことを期待しています
左から右、上から下のヨーロッパ/ラテン語の順序。 要件はありません
POSIX.1‐2008 は、これが事実であることを示しています。 仕様は意図的に言葉を使って書かれている
実装を可能にするために、「before」、「after」、「first」、「last」
言語の自然なテキスト順序をサポートします。
歴史的に、編集バッファーの終わりを過ぎた行は、単一の('〜')
文字; つまり、20 ベースの表示の長さが XNUMX 行で、最後の行が
ファイルが 2 行目にある場合、20 行目から XNUMX 行目には XNUMX つのみが含まれます。 '〜' 文字。
歴史的に、 vi エディターは、下部に完全な行のみを表示しようとしました
画面 (画面の上部に部分的な行が表示されました)。 行が長すぎて
画面の下部に全体が収まるようにします。
表示された 単一として表示された 「@」 文字の一部を表示する代わりに
この線。 POSIX.1-2008 では、この動作を許可していますが、必須ではありません。 実装は
常に画面の下部に完全な行を表示しようとすることをお勧めします
バッファ行によるスクロールまたは画面の位置決めを行います。
歴史的に、 「@」 ダム端末への出力を最小限に抑えるためにも使用されました
低速回線で; つまり、カーソルに対してローカルな変更は更新されましたが、行への変更は
カーソルの近くにない画面には、単に 「@」 符号
現在のテキストに一致するように更新される代わりに。 POSIX.1‐2008 は許可するが、許可しない
端末がスマートになるにつれて使用頻度が減るため、この機能が必要です
接続が高速になります。
初期化 in ex vi
歴史的には、 vi たとえ編集バッファが
「空」。 例えば:
1。 ザ ex command = ビジュアルモードから実行されると、バッファが空のときに ``1'' が書き込まれました。
2. 空の編集バッファーのビジュアル モードからの書き込みは、XNUMX 文字のファイルを書き込みました (a
)、書き込み中 ex 空の編集バッファーのモードは、空のファイルを書き込みました。
3. 空の編集バッファにコマンドを入れて読み込み、先頭に空の行を残します。
エディットバッファ。
一貫性を保つために、POSIX.1-2008 ではこれらの動作は許可されていません。
歴史的には、 vi 端末を常に元のモードに戻したわけではありません。 例えば、
ICRNL が最初に設定されていない場合は変更されました。 POSIX.1‐2008 ではこれを許可していません
行動。
Command 説明 in vi
モーション コマンドは、最も複雑な側面の XNUMX つです。 vi 記述するために。 一部で
例外、モーションコマンドのテキスト領域とバッファタイプの影響 vi コマンドは
ケースバイケースで説明。 POSIX.1‐2008 におけるテキスト領域の記述は、
方向性を示唆するものではありません。 つまり、ラインからの包括的な領域 n 並ぶ n+5は
行からの領域と同一 n+5 行 n. これは学術的な関心以上のものです—
マークへの移動はどちらの方向でも可能です。 ラップスキャン オプションが設定されているので、
検索ポイントへの移動。 歴史的に、行は常にテキストでバッファに格納されます
注文; つまり、編集バッファーの先頭から末尾までです。 POSIX.1‐2008 では
歴史的慣習への適合。
歴史的に、コマンド カウントは関連付けられたモーションに適用されていました。
指定された任意のモーション カウントに乗算されます。 例えば、 2cw と同じです。 c2w, 2c3w
と同じです。 c6w. POSIX.1‐2008 では、この動作が必要です。 歴史的に、 vi そのコマンド
空行のグループを処理するオブジェクトとして、ビッグワード、単語、段落、および文を使用し、
またはのみを含む行文字、一貫性がありません。 一部のコマンドが処理されました
それらを単一のエンティティとして扱い、他の人は各行を個別に扱いました。 たとえば、 w, W,
B コマンドは空行のグループを個々の単語として扱いました。 つまり、コマンド
カーソルを新しい空の各行に移動します。 の e E 空のグループを処理するコマンド
単一の単語としての行。 つまり、最初の使用は行のグループを通過します。 の b
コマンドはユーザーにビープ音を鳴らすか、モーションとして行の最初から実行された場合
コマンドは、予期しない方法で失敗します。 行にのみ含まれる(または終了する)場合
キャラクター、 w W コマンドはユーザーにビープ音を鳴らすだけで、 E e コマンドは
グループを単一の単語として扱い、 B b コマンドは行を次のように扱います
個々の言葉。 仕様の一貫性と簡素化のために、POSIX.1‐2008 は
そのすべて vi コマンドは、空行または空白行のグループを XNUMX つのエンティティとして扱います。
で終わる行を通る移動キャラクターは他の動きと一致していなければなりません。
歴史的には、 vi ドキュメントは、任意の数の二重引用符がスキップされたことを示しました
文の境界の句読点の後。 ただし、実装はスキップされただけです
一重引用符。 POSIX.1‐2008 では、両方をスキップする必要があります。
歴史的に、編集バッファーの最初と最後の文字は単語境界でした。 これ
POSIX.1-2008 では、歴史的な慣行が要求されています。
歴史的には、 vi 可能な限り画面上の列の最小数を更新しようとしました。
誤解を招く情報が表示される可能性があります。 POSIX.1‐2008 では、
入力されている現在の文字が正しく表示されること以外の要件、
この分野の他のすべての決定は実装に委ねます。
歴史的に、行は任意の文字の列の間で任意に折りたたまれていました。
タブを除いて、画面上に複数の列位置が必要でした。
右マージンで終了します。 POSIX.1‐2008 は前者を許可し、
後者。 文字の列の間で任意に改行しない実装
複数の列位置を占有する列は、カーソルが列に置かれないようにする必要があります
文字の一部を含まないもの。
歴史的な vi すべての移動がディスプレイではなくバッファ行によるものであるという問題がありました
またはスクリーン線。 多くの場合、これは正しいことです。 たとえば、単一の行の動き、
など j or k、バッファラインで機能するはずです。 のようなコマンド djまたは j.ここで、 . 変化です
コマンドは、バッファ行に対してのみ意味があります。 しかし、それは正しいことではありません
画面の動きやスクロール コマンドなど‐D、 ‐F、および H. ウィンドウの場合
はかなり小さいため、このような場合にバッファー ラインを使用すると、完全にランダムな動きになる可能性があります。
例えば、 1‐D 重なり合うことなく、完全に変更された画面になる可能性があります。
これは明らかにユーザーが望んでいたことではありません。 の場合、問題はさらに悪化します。 H,
L, M コマンド—カーソルを最初の非ラインの、彼らは
すべてが大きな行で同じ場所を参照する可能性があり、まったく移動しません。
また、行が画面よりも大きい場合は、バッファ行を使用すると、
行の一部を表示することは不可能です。行の一部を表示しないコマンドはありません。
歴史の始まり vi、および行の先頭と末尾の両方の場合
同時に画面に表示できないため、ユーザーは苦しみます。 最後に、ページと半分-
ページスクロールコマンドは歴史的に最初の非新しい行で。 もしも
線は画面とほぼ同じサイズですが、これは不適切です。
前後のカーソル‐D コマンドは、
を選択して、後処理画面に進みます。
の実装 ex vi 関連するため、これらの問題を抱えていないものが存在します
コマンド ( ‐B、 ‐D、 ‐F、 ‐う、 ‐Y、 ‐E, H,
L, M) (編集) バッファー行ではなく、表示 (画面) 行で操作します。
POSIX.1‐2008 では、標準の開発者が
ユーザーが混乱しすぎると信じていました。 しかし、歴史的な慣習は
リラックスした。 例えば、 ex vi 歴史的に試みられ、失敗することもありましたが、
画面の最後の行に行の一部を配置しない。 たとえば、行が
全体に収まらない、行の一部が表示されない、画面の行が表示されない
single を含む行に対応 「@」 文字。 この行為は許されますが、
POSIX.1-2008 では必須ではないため、実装で long をサポートすることが可能です。
コマンドを変更せずに、小さな画面の行をより合理的に表示します。
表示します (バッファーに向けるのではなく)。 POSIX.1-2008 では、実装が
画面に収まらない行を含む編集バッファーの編集を拒否する
全体。
表示領域 (たとえば、 ウィンドウを使用して入力ファイルを追加します。 編集オプション) は歴史的に
ディスプレイ内で局所的な動きが行われたときに新しいテキストを表示するために「成長」または拡張
表示される行数が可能な最大数よりも少ない場合。 拡張は
ターゲットラインが可能な最大値よりも小さい場合、歴史的に最初の選択肢でした
拡張値が離れています。 スクロールは歴史的に次の選択肢でした。
ターゲットラインがディスプレイの半分未満離れているか、そうでない場合は画面が再描画されました。 そこには
ただし、その点では例外でした ex コマンドは通常、常に画面を
再描画。 POSIX.1‐2008 は標準的な動作を指定していません。
接続速度、再描画に必要な文字数などの問題
スクロールするか、実装が対応しなければならない端末機能。
POSIX.1-2008 の現在の行は、ファイル内のバッファー行に XNUMX 対 XNUMX でマップされます。 現在
列はありません。 POSIX.1-2008 で記述されている XNUMX つの異なる列値があります。
XNUMX つ目は、多くの vi コマンド。 この値は
編集者の生涯にわたって記憶されています。 XNUMX 列目の値は実際の位置です
カーソルが置かれている画面上。 XNUMXつは常に同じではありません。 たとえば、
カーソルは複数列の文字、画面上の実際のカーソル位置によって支えられています
歴史的に、コマンドモードではキャラクターの最後の列であり、最初の列でした
入力モードの文字の列。
現在の行を設定するが、現在のカーソル値を設定しないコマンド (
例、 j k) 記憶されている列の位置にできるだけ近づけようとします。
ユーザーが動き回ると、カーソルが垂直の列に制限される傾向があるように
編集バッファで。 POSIX.1‐2008 では、歴史的な慣行への準拠が必要です。
表示行上のカーソルの表示位置が現在の位置から調整されること
この履歴動作をサポートするために、必要に応じて列の値を変更します。
歴史的に、
ユーザーは、行単位のコマンドに文字を入力できます。 あれは、 :, !, /,
or ?. POSIX.1-2008 では、この制限を許可していますが、必須ではありません。
歴史的に、「ソフト」エラーは vi 端末にアラートが発生しましたが、エラーは発生しませんでした
メッセージが表示されました。 原則として、エラーに対してエラー メッセージは表示されませんでした。
でのコマンド実行 vi、ユーザーが無効なまたは
不可能なアクション、または検索対象のオブジェクトが見つからなかった場合。 ソフトエラーの例
含まれました h 左余白に、 ‐B または [[ ファイルの先頭に、 2G
ファイルの終わりなど。 また、次のようなエラー %, ]], }, ), N, n, f, F, t, T
検索対象のオブジェクトが見つからないこともソフトでした。 一貫性が低く、 / ?
パターンが見つからない場合はエラー メッセージを表示し、 /, ?, N, n エラーを表示しました
以前の正規表現が指定されていなかった場合のメッセージ、および ; を表示しませんでした
以前のメッセージがない場合のエラー メッセージ f, F, tまたは T コマンドが発生しました。 また、この中での振る舞い
エリアは、ネットワーク速度のランタイム評価に合理的に基づいている可能性があります
繋がり。 最後に、一部の実装では、ソフト エラーのエラー メッセージが
詳細な編集オプションの値に基づいて、ナイーブなユーザーを支援するために。 POSIX.1‐2008
エラーメッセージが表示される特定のエラーはリストされていません。
実装は、明確な理由がない限り、歴史的な慣行に準拠する必要があります。
発散する。
ページへ移動します。 後方
の‐Bと‐F コマンドは歴史的に、
ファイルの先頭または末尾を過ぎたページ。 ‐Dと‐う
コマンドは単にファイルの先頭または末尾に移動されました。 一貫性のために、POSIX.1‐2008
XNUMX つのコマンドすべてで後者の動作が必要です。 XNUMX つのコマンドはすべて、引き続きそれを考慮します。
現在の行が先頭にある場合はエラー ( ‐B、 ‐U) または終了
( ‐F、 ‐D) ファイルの。 歴史的に、 ‐Bと‐F
コマンドは、XNUMX つのコマンドが実行されたときに重複する行を含めるために XNUMX 行をスキップします。
入りました。 これは、 カウント、あるように、によって
定義、重ならない線。 履歴で使用される実際の計算
の実装 vi のエディター‐Bは:
((現在 最初の ライン) - カウント x (窓 edit オプション)) +2
そして‐Fは:
((現在 最初の ライン) + カウント x (窓 edit オプション)) -2
この計算は、カウントを伴うコマンドとカウントを伴わないコマンドが混在している場合にはうまく機能しません。 為に
例、 3‐F は、 ‐FコマンドをXNUMX回、
を入力しても元に戻すことはできません。 ‐BコマンドをXNUMX回。 一貫性のために
他との vi カウントを取るコマンドの場合、POSIX.1-2008 では別の計算が必要です。
スクロール フォワード
の 4BSD および System V 実装 vi によって使用される初期値が異なります。
スクロール 指図。 使用される 4BSD:
((窓 edit オプション) + 1) /2
System V は スクロール 編集オプション。 System V のバージョンが指定されている
POSIX.1-2008 により、標準開発者は、より直感的で、
スクロール値を設定せずに最初にスクロール値を設定する方法をユーザーに許可しました。
表示される行数。
スクロール フォワード by LINE
歴史的に、 ‐Eと‐Y コマンドは、最後の
および最初の行はそれぞれ、すでに画面に表示されていました。 POSIX.1‐2008 では
歴史的慣習への適合。 歴史的に、 ‐Eと‐Yコマンド
オープンモードでは効果がありませんでした。 仕様の簡潔さと一貫性のために、POSIX.1‐2008
単一行の画面ではありますが、通常どおりに動作する必要があります。
クリア 再表示
歴史的な‐L コマンドは、画面を正確にリフレッシュしました。
現在表示されているものを置き換えます 「@」 削除されたが削除されていない行の文字
更新された画面で更新されました 「@」 文字。 の意図‐Lコマンド
画面が誤って上書きされたときに更新することです。 たとえば、 書きます
別のユーザーからのコマンド、またはモデムのノイズ。
再描画 画面
歴史的な‐R コマンドは、行を更新する必要がある場合にのみ再表示されます。
削除されたが画面上で更新されておらず、フラグが付けられていた 「@」 文字。
このフォームの行がない場合、画面を更新する必要はありません。
が現在表示されています。 POSIX.1-2008 では、実装がこのコマンドを拡張することを許可しています。
でフラグ付けされた画面の行を更新する 「@」 文字が長すぎるため
現在のフレームワークに表示されます。 ただし、現在の行と列は必ずしもそうである必要はありません。
変更されました。
検索 の タグ文字列
歴史的に、最初の非カーソル位置以降が最初の文字であり、
行末までの単語文字である後続のすべての文字は、
含まれています。 たとえば、行頭にカーソルを置いてまたは '#' 内の文字
テキスト "#バー@"、タグは "#バー". キャラクターについて 「b」 そうだった "バー"、そして 'A'
そうだった 「ar」. POSIX.1‐2008 では、この動作が必要です。
交換する テキスト 結果 from シェル(Shell) Command
歴史的に、 <, >, ! コマンドは、行以外のほとんどのカーソルの動きと見なされます
方向付けられたモーションはエラーです。 たとえば、コマンド >/フー コマンドは成功しましたが、
>l XNUMX つのコマンドによって記述されたテキスト領域が同一である可能性がありますが、失敗しました。
一貫性を保つために、XNUMX つのコマンドはすべて、行の一部ではなく行全体のみを考慮します。
領域は、によって指定された文字を含む任意の行として定義されます
モーション。
移動 〜へ マッチング 人格
他の一致する文字は、許可するために実装定義のままにされています
マッチングなどの拡張子 '<' '>' HTMLを検索するため、または #ifdef, #その他, #endif
Cソース検索用。
繰り返す 置換
POSIX.1‐2008 では、 c g 前の代替コマンドに指定されたフラグ
無視されます。 しかし r 実装でサポートされている場合、フラグは引き続き適用できます。
返品 〜へ 前へ (環境 or セクション)
当学校区の [[, ]], (, ), {, } コマンドはすべて「セクション境界」の影響を受けますが、
一部の歴史的な実装では、すべてのコマンドが同じセクションを認識しない
境界。 これはバグであり、機能ではなく、独自のセクション境界アルゴリズムではありませんでした。
コマンドごとに説明します。 保存される特別なケースの XNUMX つは、次の文です。
コマンドは編集バッファの最後の行の最後に移動し、他のコマンドは移動します。
の伝統的な文字カットのセマンティクスを維持するために、
文コマンド。 歴史的に、 vi 編集の最初と最後のセクション境界
バッファは最初の非編集バッファの最初と最後の行
存在します。 それ以外の場合は、編集バッファーの最初と最後の行の最後の文字
XNUMXつ存在します。 他のセクションの場所との一貫性を高めるために、これは単純化されています
POSIX.1-2008 により、編集バッファーの最初と最後の行の最初の文字、または
編集バッファの最初と最後の行が空の場合。
文の境界は歴史的に問題があった vi. 彼らはそれだけではありませんでした
セクションコマンドと段落コマンドで定義された境界ですが、それらは最初のものでした
非それらの境界の後にも発生しました。 歴史的に、 vi
コマンドは、オプションのウィンドウ サイズを カウント の前に
指図。 これは過去のバージョンでは実装されていなかったため、POSIX.1‐2008 では
カウント 他のコマンドとの一貫性のために、コマンドを繰り返します vi コマンド。
繰り返す
歴史的に、テキスト入力コマンド以外のマップされたコマンドは、使用して繰り返すことができませんでした
期間 指図。 POSIX.1-2008 では、歴史的な慣行への準拠が必要です。
特殊文字の解釈に関する制限 (たとえば、 ‐H) で
テキスト入力モード コマンドの繰り返しは、歴史的な慣習に一致させることを目的としています。 為に
たとえば、入力シーケンスが与えられた場合:
イアブ-H -H -Hdef
シーケンスが最初に入力されたときにユーザーにエラーが通知される必要がありますが、途中では通知されません。
コマンドの繰り返し。 キャラクター‐T は特に免除される
制限。 の歴史的な実装 vi 無視された‐Tのキャラクター
コマンドの繰り返し中に元のコマンドを入力します。 POSIX.1‐2008 はこれを禁止しています
行動。
もう完成させ、ワークスペースに掲示しましたか? レギュラー 表現
歴史的に、コマンドは、モーションコマンドが検索された行に影響を与えませんでした。
検索でした(/, ?, N, n) であり、最終位置は行の開始/終了でした。 あった
いくつかの特殊なケースと vi 一貫していませんでした。 POSIX.1-2008 では、この動作は許可されていません。
一貫性のために。 過去の実装は許可されていましたが、検索を処理できませんでした
ラップしたモーション コマンドとして (つまり、編集オプションにより) ラップスキャン) 元に戻す
位置。 POSIX.1-2008 では、この動作をエラーとして扱う必要があります。
歴史的に、構文 "/RE/0" 行モードでテキストをカットするコマンドを強制するために使用されました。
POSIX.1‐2008は、歴史的慣行への適合を要求します。
歴史的に、オープンモードでは、 z 検索コマンドに指定すると、現在行が再表示されます
現在の行を強調表示して現在の画面を表示する代わりに。 為に
仕様の一貫性と単純さを考慮して、POSIX.1-2008 はこの動作を許可していません。
歴史的に、トレーリング z コマンドの一部として入力された場合、コマンドは許可され、無視されます。
モーションコマンドとして使用される検索。 仕様の一貫性と簡素化のために、
POSIX.1-2008 では、この動作は許可されていません。
実行する an ex Command
歴史的には、 vi 実装は、上で入力できるコマンドを制限しました。
コロン コマンド ライン (たとえば、 アペンド 変化する)、および他のいくつかのコマンドは、
壊滅的な失敗を引き起こします。 一貫性を保つために、POSIX.1-2008 ではこれらを許可していません。
制限。 を実行するとき ex コマンド入力 :、入力することはできません
コマンドの終わりと見なされるため、コマンドの一部として。 あ
別のアプローチは入力することです ex コマンドモード vi Q コマンド(およびそれ以降
でビジュアルモードを再開する ex vi 指図)。 の ex コマンドモード、シングルライン
制限は存在しません。 したがって、たとえば、次のようになります。
Q
秒/休憩 ここで/休憩\
ここに/
vi
POSIX.1‐2008 では、 ex コマンドは、画面の任意の部分を上書きします。
リフレッシュによって消去され、 vi ユーザーからの文字を一時停止します。 歴史的に、これは
文字は任意の文字です。 たとえば、ユーザーが
メッセージが表示されたり、マップされた文字が表示されたりします。 これはおそらくバグですが、実装
ユーザーに特定の文字を入力することを要求することで、より厳密にしようとしました。
または、メッセージが表示された後にユーザーが文字を入力することを強制された
ユーザーの憤りを過去の行動に戻します。 POSIX.1‐2008 は、
歴史的慣習。
シフト 左派 (右)
理由を参照してください。 ! / コマンド。 歴史的に、 < > コマンド
カーソルを最初の非(たとえば、コマンドが
繰り返しまたは _ モーションコマンドとして)、変更しないままにしておくこともありました。 POSIX.1‐2008
はこの不一致を許容せず、代わりにカーソルが常に
最初の非. 歴史的に、 < > コマンドはバッファ引数をサポートしていませんでした。
一部の実装では、オプションのバッファーを指定できます。 この動作
POSIX.1-2008 では必須でも禁止されていません。
実行する
歴史的に、バッファは他のバッファを実行することができ、無限ループやその他のループは実行されていました。
可能。 POSIX.1-2008 では、歴史的な慣行への準拠が必要です。 *バッファ の構文
ex では必要ありません vi、それは歴史的な慣行ではなく、一部で使用されているため
vi 追加のスクリプト言語をサポートする実装。
逆 シミュレーション例
歴史的に、 ~ コマンドは関連するものを無視しました カウント、キャラクターのみに作用した
現在の行で。 他のものとの一貫性のために vi コマンド、POSIX.1‐2008 では、
関連する カウント 次に行動する カウント 文字、およびコマンドが後続の文字に移動すること
によって保証されている場合の行 カウント、大きなテキストを編集できるようにする
合理的に効率的な方法。 が存在します vi オプションで
関連するモーション コマンド ~ 指図。 この機能をサポートする実装
に基づいて作成することをお勧めします。 チルドトップ 編集オプションとテキスト領域の処理と
と同じカーソル位置 ヤンク
追加
歴史的には、 カウントに指定されている A, a, I, i コマンドは、の入力を繰り返しました
一行目 カウント 回し、入力テキストの後続の行を繰り返さなかった。
POSIX.1-2008 では、テキスト入力全体を繰り返す必要があります カウント 回。
移動 後ろ向き 〜へ 先行 Word
歴史的には、 vi 単語コマンドが空のモーションコマンドとして使用されると混乱するようになりました
ファイル。 POSIX.1‐2008 では、これはエラーである必要があります。 の歴史的な実装 vi ていた
単語の移動コマンドに多数のバグがあり、それらは動作が大きく異なります
空行、単一の文字で構成される「単語」、および次を含む行の存在
それだけ文字。 仕様の一貫性と簡素化のために、POSIX.1‐2008
は、この動作を許可しません。
前日比 〜へ 行末
いくつかの歴史的な実装 C コマンドが説明どおりに動作しませんでした
POSIX.1‐2008 $ キーを押すことによって実装されたため、キーが再マップされました $
入力キューにキーを入力して再処理します。 POSIX.1-2008 では、この動作は許可されていません。
歴史的に、 C, S, s コマンドは、置換されたテキストを数値にコピーしませんでした
バッファ。 仕様の一貫性と簡素化のために、POSIX.1‐2008 では、
それぞれのように振る舞う c あらゆる点でコマンド。
削除
歴史的に、削除されたオープンモードの行は上にスクロールされ、 @ グリフ
行の先頭に上書きされます。 対応していない端末の場合
必要なカーソルの動きの後、編集者は削除された行を画面から消去しました。 POSIX.1‐2008
歴史的慣習への準拠を必要とします。 つまり、端末が
「@」 文字、行が画面に残ることはできません。
削除 〜へ 行末
いくつかの歴史的な実装 D コマンドが説明どおりに動作しませんでした
POSIX.1‐2008 $ キーを押すことによって実装されたため、キーが再マップされました $
入力キューにキーを入力して再処理します。 POSIX.1-2008 では、この動作は許可されていません。
加入団体
歴史的な奇妙さ vi それはコマンドです J, 1J, 2J すべて同等です。
POSIX.1-2008 では、歴史的な慣行への準拠が必要です。 の vi J コマンドが指定されている
の面で ex join とのコマンド ex command カウント 価値。 のアドレス修正
a カウント 編集バッファの終わりを過ぎていることは、歴史的な互換性のために必要です
両方のための ex vi.
Mark Hodder 役職
歴史的な慣例では、小文字にバッククォートとシングルクォートを加えたもののみを使用できます。
カーソル位置をマークするために使用されます。 POSIX.1‐2008 は歴史的
練習しますが、実装が他の文字もマークとしてサポートすることをお勧めします。
繰り返す レギュラー 表現 もう完成させ、ワークスペースに掲示しましたか? (前方 逆行する)
歴史的に、 N n コマンドは、のモーション コンポーネントとして使用できませんでした。 c
指図。 を除いて、 cN 検索が一線を越えた場合に機能するコマンド
テキスト領域は破棄され、ユーザーはテキスト入力に参加しません。
モード。 仕様の一貫性と簡素化のために、POSIX.1-2008 ではこれを許可していません。
行動。
インサート 空の LINE (下 その上)
歴史的に、 O o コマンドは物理回線の数として使用されました
ターミナルがダムで、 スローオープン オプションが設定されていませんでした。 これは、
遅い接続でのトラフィックを最小限に抑え、ダム端末の再描画を行います。 POSIX.1‐2008
は、この動作を許可していません。 カウント open コマンドに対しては、
その他のテキスト入力コマンド。 歴史的な慣行に対するこの変更は、一貫性を保つために行われました。
機能のスーパーセットは スローオープン 編集オプション。
入れ from バッファ (続く 前)
歴史的には、 カウントに p P バッファが行モードの場合、コマンドは無視されました
バッファですが、バッファが
文字モード バッファ。 この制限がない実装が存在するため、および
行を複数回貼り付けることは一般的に有用であるため、POSIX.1‐2008 では カウント
万人に支持される p P コマンド。
歴史的な実装 vi に大きな問題があることは広く知られていました。 p P
コマンド、特に異常なテキスト領域が編集バッファにコピーされた場合。 の
標準的な開発者はこれらをバグと見なしており、一貫性を保つために許可されていません。
仕様のシンプルさ。
歴史的に、 P or p コマンド (または ex 置きます オープン モードまたはビジュアル モードから実行されるコマンド)
空のファイルで実行され、ファイルの最初の行として空の行が残されました。 為に
仕様の一貫性と単純さを考慮して、POSIX.1-2008 はこの動作を許可していません。
交換する 人格
歴史的に、 r コマンドは正しく処理しませんでした 消去 単語 消去 文字
引数として、関連付けられたものも処理しませんでした カウント 1 より大きい
return> 引数、置き換えたもの カウント 単一の文字.
POSIX.1-2008 では、これらの不一致は許可されていません。
歴史的に、 r コマンドは‐入力文字のVエスケープなど
なのでそしてその; ただし、XNUMXつの主要な必要があります‐V
1つではなく文字。 POSIX.2008‐XNUMX では、
のその他のテキスト入力コマンド vi.
歴史的に、 r 未満の場合はコマンド カウント
行内のカーソル位置以降の文字。 合理的で明確でありながら、
拡張は、 r 空の行にコマンドを実行すると、大きすぎることが必要になります
a カウント のカーソル位置またはその後の文字数に一致するように調整されます。
これは避けるべき歴史的慣行とは十分に異なっています。
POSIX.1‐2008は、歴史的慣行への適合を要求します。
交換する キャラクター
歴史的に、もしあったとしても 自動インデント 行の文字 R コマンドは
走って、そして 自動インデント 設定された、最初の適切にインデントされ、いいえ
文字は. 追加ごとに置き換えます n
文字、ここで n 残りの部分をインデントするのに必要な文字数です。
行を適切なインデント レベルにします。 この動作はバグであり、によって許可されていません
POSIX.1‐2008。
アンドゥ
コマンドを元に戻した後のカーソル位置の歴史的な慣習が混在していました。 ほとんどの場合
場合、単一行に影響するコマンドを元に戻すときに、カーソルが
追加または変更されたテキストの開始、または削除されたテキストの直後。 ただし、ユーザーが
変更された行から移動したか、列が最初の非、
コマンドの原点に戻るか、変更されません。 コマンドを元に戻すとき
複数の行または行全体に影響を与えた場合、カーソルは最初の文字に移動しました
最初の行が復元されました。 これがいかに矛盾しているかを示す例として、検索に続いて
an o テキスト入力コマンド、その後に 取り消す カーソルを場所に戻します
o コマンドが入力されましたが、 cw コマンドの後に o コマンドの後に 取り消す
カーソルを最初の非行の。 POSIX.1‐2008 では、
の利益のために、これらの動作の中で最も有用なものを破棄し、最も有用でないものを破棄します。
仕様の一貫性とシンプルさ。
ヤンク
歴史的に、 ヤンク コマンドがモーションの最後に移動しなかった
前方方向。 モーションが後方にある場合、モーションの最後に移動しました
を除く方向 _ コマンド、または G ' 終了時のコマンド
モーションは現在の行にありました。 これは、数に対して
モーションコマンドの ヤンク コマンドはカーソルを移動しましたが、画面を更新しませんでした。 為に
たとえば、後続のコマンドは、モーションの最後からカーソルを移動します。
画面上のカーソルはカーソルの動きを反映していませんでしたが、 ヤンク
指図。 POSIX.1‐2008 では、すべての ヤンク 後退モーションに関連するコマンド
一貫性を保つためにカーソルをモーションの最後に移動します。具体的には、 '
モーションとしての検索パターンと一致するモーションとしてのコマンド。
ヤンク 電流プローブ LINE
いくつかの歴史的な実装 Y コマンドが説明どおりに動作しませんでした
POSIX.1‐2008 「_」 キーを押すことによって実装されたため、キーが再マップされました
「_」 入力キューにキーを入力して再処理します。 POSIX.1‐2008 ではこれを許可していません
行動。
再描画 ウィンドウ
歴史的に、 z コマンドは常に画面を再描画します。 これは許可されていますが、必須ではありません
POSIX.1‐2008 により、 z などのマクロのコマンド 地図 n nz。
画面サイズの変更に使用する代わりに、画面の配置に使用します。 標準
開発者は、画面を拡大またはスクロールすると、より優れたインターフェイスが提供されると信じていました。
ユーザー。 オプションの新しいウィンドウ サイズが
指定され、 -土地‐R コマンド。
のセマンティクス z^ せいぜい混乱しています。 歴史的な慣行は、画面の前に
指定した行で終了した画面が表示されます。 POSIX.1‐2008 では
歴史的慣習への適合。
歴史的に、 z コマンドは、行の上部または下部に部分的な行を表示しません。
画面。 部分的な行が通常は下部に表示される場合
画面、コマンドは機能しましたが、部分的な行が次のように置き換えられました 「@」 文字。 もし
部分的な行は、通常、画面の上部に表示されます。コマンド
失敗するでしょう。 仕様の一貫性と簡素化のために、POSIX.1-2008 では許可されていません。
この動作。
歴史的に、 z 行指定 1 のコマンドは、コマンドを無視しました。 為に
仕様の一貫性と単純さを考慮して、POSIX.1-2008 はこの動作を許可していません。
歴史的に、 z コマンドは、カーソル列を最初の非のために
最初の画面が表示され、すでに表示されていた場合は文字。 為に
仕様の一貫性と単純さを考慮して、POSIX.1-2008 はこの動作を許可していません。
入力 モード コマンド in vi
歴史的な実装 vi ユーザーが複数行を消去することを許可しませんでした
入力の、または次のような通常の消去文字を使用するには ライン 消去, 言葉遣い, 消去 〜へ
消去 自動インデント 文字。 の実装が存在するため vi これらを持っていない
制限があるため、両方の動作が許可されますが、歴史的な慣行のみが必要です。 の
これらの拡張子の場合、 vi で一時停止する必要があります 自動インデント と前の行
境界線
歴史的な実装 vi 現在の画面の部分のみを更新しました
カーソル文字が表示されました。 たとえば、 vi 入力キーストローク:
iabcd 0C
歴史的に、 文字を上書きします "あいうえお" 表示されたとき。 他の
実装は、 'A' を持つ文字、そして残りの
カーソルの前の文字。 どちらの実装にも問題があります。 歴史的な
上記の例の実装はおそらく視覚的に優れています。 ただし、
キーストローク:
iabcd 0R
歴史的な実装は文字列になります 「BCD」 消えて魔法のように
再出現するとき文字が入ります。 POSIX.1‐2008 では以前の動作が必要です
消去列を上書きするとき、つまり、もはや存在しない文字を上書きするとき
編集バッファの論理的な一部であり、それ以外の場合は後者の動作です。
歴史的な実装 vi を捨てた‐Dと‐T文字の場合
コマンド機能が適切でない場所に入力されました。
POSIX.1‐2008 では、 ‐T機能は常に利用可能であり、
‐D 操作していないときは他のキーとして扱われる 自動インデント 文字。
NUL
のいくつかの歴史的な実装 vi を使用して入力する文字数を制限しました
256 バイトまでの NUL 入力文字。 POSIX.1-2008 では、この制限が許可されています。 でも、
実装では、この制限を削除することをお勧めします。
‐D
入力モード コマンドの根拠も参照してください。 . に隠された仮定
‐D コマンド (および vi 自動インデント 仕様一般)はそれです
文字は画面上で XNUMX 列を占め、 文字が含まれています
の整数の文字。
実装は書き換えが許可されています 自動インデント 行の文字、
、 ‐D、および‐T が入力された場合、または シフト コマンド
これは、歴史的な実装で使用されており、必要であることが判明したためです。
そうする。 たとえば、 ‐D カーソルの前に単一の、 と
タブストップ 8に設定し、 シフト幅 3 に設定すると、 に置き換えられる
いくつかの文字。
‐T
入力モード コマンドの根拠も参照してください。 . 歴史的に、 ‐T
ない場合にのみ機能しました文字は、現在の入力行にまだ入力されていません。 の
さらに、によって挿入された文字‐T は 自動インデント キャラクター、
通常のユーザー消去文字では消去できませんでした。 実装が存在するため
これらの制限はなく、列の境界への移動は一般に
POSIX.1-2008 では、両方の制限を削除する必要があります。
‐V
歴史的には、 vi 中古 ^Vのリテラル次の文字の値に関係なく、
ターミナル。 POSIX.1-2008 では、歴史的な慣行への準拠が必要です。
説明されている用途‐V は、 ‐Q、つまり
を使用する端末で役立ちます。 ‐V は下向き矢印関数です。 ただし、ほとんどの
歴史的な実装の使用‐Q ターミオス START 文字なので、エディタ
通常は受け取りません‐Q でなければ スティ イクソン モードはオフに設定されています。 (の
さらに、いくつかの歴史的な実装 vi 明示的に設定 イクソン モードをオンにしたので、
ユーザーがオフに設定することは困難です。) で説明されているコマンド文字のいずれか
POSIX.1‐2008 は、次のように選択することで無効にすることができます。 ターミオス 制御文字、
スティ の System Interfaces ボリュームで説明されているユーティリティまたはその他の方法
POSIX.1‐2008。
歴史的に、SIGINT は、入力モードを終了するために使用されると端末にアラートを出しました。 この振る舞いは
POSIX.1‐2008 で許可されていますが、必須ではありません。
未来 道順
なし。
onworks.net サービスを使用して viposix オンラインを使用する
