Unix / Linux-viエディターチュートリアル
この章では、Unixでviエディターがどのように機能するかを理解します。Unixでファイルを編集する方法はたくさんあります。画面指向のテキストエディタを使用したファイルの編集vi最良の方法の1つです。このエディタを使用すると、ファイル内の他の行との関連で行を編集できます。
と呼ばれるviエディタの改良版 VIMまた、現在利用可能になっています。ここで、VIMはVi IM証明した。
viは、一般的にUnixエディタのデファクトスタンダードと見なされています。
通常、Unixシステムのすべてのフレーバーで使用できます。
その実装は全体的に非常に似ています。
必要なリソースはごくわずかです。
このような他のエディタよりもユーザーフレンドリーです ed または ex。
あなたは使用することができます vi既存のファイルを編集したり、新しいファイルを最初から作成したりするためのエディター。このエディタを使用して、テキストファイルを読み取ることもできます。
viエディターの起動
次の表に、viエディターを使用するための基本的なコマンドを示します。
シニア番号 | コマンドと説明 |
---|---|
1 | vi filename 新しいファイルがまだ存在しない場合は作成し、存在しない場合は既存のファイルを開きます。 |
2 | vi -R filename 既存のファイルを読み取り専用モードで開きます。 |
3 | view filename 既存のファイルを読み取り専用モードで開きます。 |
以下は、新しいファイルを作成する例です testfile 現在の作業ディレクトリにまだ存在しない場合-
$vi testfile
上記のコマンドは、次の出力を生成します-
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]
あなたは気づくでしょう tildeカーソルに続く各行の(〜)。チルダは未使用の線を表します。行がチルダで始まっておらず、空白のように見える場合は、スペース、タブ、改行、またはその他の表示できない文字が存在します。
これで、作業を開始するための開いているファイルが1つあります。先に進む前に、いくつかの重要な概念を理解しましょう。
動作モード
viエディターで作業していると、通常、次の2つのモードに遭遇します。
Command mode−このモードでは、ファイルの保存、コマンドの実行、カーソルの移動、行または単語の切り取り(ヤンク)と貼り付け、検索と置換などの管理タスクを実行できます。このモードでは、入力した内容はすべてコマンドとして解釈されます。
Insert mode−このモードでは、ファイルにテキストを挿入できます。このモードで入力されたものはすべて入力として解釈され、ファイルに配置されます。
viは常にで始まります command mode。テキストを入力するには、単に入力する挿入モードである必要がありますi。挿入モードを終了するには、を押します。Esc キー。コマンドモードに戻ります。
Hint−現在のモードがわからない場合は、Escキーを2回押します。これにより、コマンドモードになります。viエディターを使用してファイルを開きます。いくつかの文字を入力することから始めて、次にコマンドモードに来て違いを理解してください。
viから抜け出す
viを終了するコマンドは :q。コマンドモードになったら、コロンと「q」を入力してから戻ります。ファイルが何らかの方法で変更されている場合、エディターはこれを警告し、終了させません。このメッセージを無視するには、保存せずにviを終了するコマンドは次のとおりです。:q!。これにより、変更を保存せずにviを終了できます。
エディタの内容を保存するコマンドは次のとおりです。 :w。上記のコマンドをquitコマンドと組み合わせるか、次のコマンドを使用できます。:wq そして戻る。
する最も簡単な方法 save your changes and exit viZZコマンドを使用します。コマンドモードの場合は、次のように入力しますZZ。ザ・ZZ コマンドはと同じように機能します :wq コマンド。
ファイルの特定の名前を指定/記述したい場合は、ファイルの後に指定することでそれを行うことができます。 :w。たとえば、作業中のファイルを別のファイル名として保存する場合は、filename2、入力します :w filename2 そして戻る。
ファイル内での移動
テキストに影響を与えずにファイル内を移動するには、コマンドモードになっている必要があります(Escキーを2回押します)。次の表に、一度に1文字ずつ移動するために使用できるいくつかのコマンドを示します。
シニア番号 | コマンドと説明 |
---|---|
1 | k カーソルを1行上に移動します |
2 | j カーソルを1行下に移動します |
3 | h カーソルを1文字左に移動します |
4 | l カーソルを1文字右に移動します |
ファイル内を移動するには、次の点を考慮する必要があります-
viでは大文字と小文字が区別されます。コマンドを使用するときは、大文字の使用に注意する必要があります。
viのほとんどのコマンドの前には、アクションを実行する回数を指定できます。例えば、2j カーソルをカーソル位置から2行下に移動します。
viでファイル内を移動する方法は他にもたくさんあります。コマンドモードである必要があることに注意してください(press Esc twice)。次の表に、ファイル内を移動するためのいくつかのコマンドを示します。
シニア番号 | コマンドと説明 |
---|---|
1 | 0 or | 行の先頭にカーソルを置きます |
2 | $ 行末にカーソルを置きます |
3 | w カーソルを次の単語に置きます |
4 | b カーソルを前の単語に置きます |
5 | ( 現在の文の先頭にカーソルを置きます |
6 | ) 次の文の先頭にカーソルを置きます |
7 | E 空白で区切られた単語の末尾に移動します |
8 | { 段落を後ろに移動します |
9 | } 段落を前に移動します |
10 | [[ セクションを後ろに移動します |
11 | ]] セクションを前方に移動します |
12 | n| 列に移動します n 現在の行で |
13 | 1G ファイルの最初の行に移動します |
14 | G ファイルの最後の行に移動します |
15 | nG に移動します nth ファイルの行 |
16 | :n に移動します nth ファイルの行 |
17 | fc に進む c |
18 | Fc に戻ります c |
19 | H 画面の上部に移動します |
20 | nH に移動します nth 画面の上からの線 |
21 | M 画面中央に移動します |
22 | L 画面の下部に移動します |
23 | nL に移動します nth 画面の下からの線 |
24 | :x コロンの後に数字が続くと、カーソルはで表される行番号に配置されます。 x |
制御コマンド
次のコマンドをコントロールキーとともに使用して、以下の表に示す機能を実行できます。
シニア番号 | コマンドと説明 |
---|---|
1 | CTRL+d 画面を1/2画面進めます |
2 | CTRL+f 全画面を1つ進めます |
3 | CTRL+u 画面を1/2画面後方に移動します |
4 | CTRL+b 全画面を1つ後方に移動します |
5 | CTRL+e 画面を1行上に移動します |
6 | CTRL+y 画面を1行下に移動します |
7 | CTRL+u 画面を1/2ページ上に移動します |
8 | CTRL+d 画面を1/2ページ下に移動します |
9 | CTRL+b 画面を1ページ上に移動します |
10 | CTRL+f 画面を1ページ下に移動します |
11 | CTRL+I 画面を再描画します |
ファイルの編集
ファイルを編集するには、挿入モードである必要があります。コマンドモードから挿入モードに入る方法はたくさんあります-
シニア番号 | コマンドと説明 |
---|---|
1 | i 現在のカーソル位置の前にテキストを挿入します |
2 | I 現在の行の先頭にテキストを挿入します |
3 | a 現在のカーソル位置の後にテキストを挿入します |
4 | A 現在の行の終わりにテキストを挿入します |
5 | o カーソル位置の下にテキスト入力用の新しい行を作成します |
6 | O カーソル位置の上にテキスト入力用の新しい行を作成します |
文字の削除
これは、開いているファイルの文字と行を削除するために使用できる重要なコマンドのリストです-
シニア番号 | コマンドと説明 |
---|---|
1 | x カーソル位置の下の文字を削除します |
2 | X カーソル位置の前の文字を削除します |
3 | dw 現在のカーソル位置から次の単語に削除します |
4 | d^ 現在のカーソル位置から行頭までを削除します |
5 | d$ 現在のカーソル位置から行末までを削除します |
6 | D カーソル位置から現在の行の終わりまで削除します |
7 | dd カーソルが置かれている行を削除します |
上記のように、viのほとんどのコマンドの前には、アクションを実行する回数を指定できます。例えば、2x カーソル位置の下の2文字を削除し、 2dd カーソルが置かれている2行を削除します。
先に進む前に、コマンドを練習することをお勧めします。
変更コマンド
また、viの文字、単語、または行を削除せずに変更することもできます。関連するコマンドは次のとおりです-
シニア番号 | コマンドと説明 |
---|---|
1 | cc 行の内容を削除して、挿入モードのままにします。 |
2 | cw カーソルが置かれている単語をカーソルから小文字に変更します w 言葉の終わり。 |
3 | r カーソルの下の文字を置き換えます。viは、置換が入力された後、コマンドモードに戻ります。 |
4 | R 現在カーソルの下にある文字で始まる複数の文字を上書きします。使用する必要がありますEsc 上書きを停止します。 |
5 | s 現在の文字を入力した文字に置き換えます。その後、挿入モードのままになります。 |
6 | S カーソルが置かれている行を削除し、新しいテキストに置き換えます。新しいテキストが入力された後、viは挿入モードのままになります。 |
コピーアンドペーストコマンド
次のコマンドを使用して、ある場所から行や単語をコピーしてから、別の場所に貼り付けることができます。
シニア番号 | コマンドと説明 |
---|---|
1 | yy 現在の行をコピーします。 |
2 | yw 小文字のwカーソルが置かれている文字から、単語の終わりまで現在の単語をコピーします。 |
3 | p コピーしたテキストをカーソルの後に置きます。 |
4 | P ヤンクされたテキストをカーソルの前に置きます。 |
高度なコマンド
日常の編集を簡素化し、vi −をより効率的に使用できるようにする高度なコマンドがいくつかあります。
シニア番号 | コマンドと説明 |
---|---|
1 | J 現在の行を次の行に結合します。j個のコマンドの数が多くの行に加わります。 |
2 | << 現在の行を1シフト幅だけ左にシフトします。 |
3 | >> 現在の行を1シフト幅右にシフトします。 |
4 | ~ カーソル下の文字の大文字小文字を切り替えます。 |
5 | ^G CtrlキーとGキーを同時に押すと、現在のファイル名とステータスが表示されます。 |
6 | U 現在の行を、カーソルがその行に入る前の状態に戻します。 |
7 | u これは、ファイルで行われた最後の変更を元に戻すのに役立ちます。もう一度「u」と入力すると、変更がやり直されます。 |
8 | J 現在の行を次の行に結合します。カウントはその数の行に結合します。 |
9 | :f ファイル内の現在の位置を%で表示し、ファイル名、ファイルの総数を表示します。 |
10 | :f filename 現在のファイルの名前をfilenameに変更します。 |
11 | :w filename ファイルfilenameに書き込みます。 |
12 | :e filename ファイル名で別のファイルを開きます。 |
13 | :cd dirname 現在の作業ディレクトリをdirnameに変更します。 |
14 | :e # 開いている2つのファイルを切り替えます。 |
15 | :n viを使用して複数のファイルを開く場合は、 :n シリーズの次のファイルに移動します。 |
16 | :p viを使用して複数のファイルを開く場合は、 :p シリーズの前のファイルに移動します。 |
17 | :N viを使用して複数のファイルを開く場合は、 :N シリーズの前のファイルに移動します。 |
18 | :r file ファイルを読み取り、現在の行の後に挿入します。 |
19 | :nr file ファイルを読み取り、行の後に挿入します n。 |
単語と文字の検索
viエディターには2種類の検索があります。 string そして character。文字列検索の場合、/ そして ?コマンドが使用されます。これらのコマンドを開始すると、入力したばかりのコマンドが画面の最後の行に表示され、検索する特定の文字列を入力します。
これらの2つのコマンドは、検索が行われる方向のみが異なります。
ザ・ / コマンドはファイル内を前方(下方)に検索します。
ザ・ ? コマンドはファイルを逆方向(上方向)に検索します。
ザ・ n そして Nコマンドは、前の検索コマンドを同じ方向または反対方向にそれぞれ繰り返します。一部の文字には特別な意味があります。これらの文字の前には円記号(\)検索式の一部として含まれます。
シニア番号 | キャラクターと説明 |
---|---|
1 | ^ 行の先頭で検索します(検索式の先頭で使用します)。 |
2 | . 1文字に一致します。 |
3 | * 前の文字の0個以上に一致します。 |
4 | $ 行の終わり(検索式の終わりに使用)。 |
5 | [ 一致または不一致の式のセットを開始します。 |
6 | < これは、単語の終わりまたは始まりを見つけるためにバックスラッシュでエスケープされた式に入れられます。 |
7 | > これは 'を見るのに役立ちます<'上記の文字の説明。 |
文字検索は、コマンドの後に入力された文字を見つけるために1行以内を検索します。ザ・f そして F コマンドは、現在の行の文字のみを検索します。 f 前方検索と F 後方に検索すると、カーソルが見つかった文字の位置に移動します。
ザ・ t そして T コマンドは現在の行の文字のみを検索しますが、 t、カーソルが文字の前の位置に移動し、 T 文字の後の位置まで行を逆方向に検索します。
コマンドの設定
次の方法を使用して、vi画面のルックアンドフィールを変更できます。 :setコマンド。コマンドモードになったら、次のように入力します:set 次のコマンドのいずれかが続きます。
シニア番号 | コマンドと説明 |
---|---|
1 | :set ic 検索時にケースを無視します |
2 | :set ai 自動インデントを設定します |
3 | :set noai 自動インデントの設定を解除します |
4 | :set nu 左側に行番号のある行を表示します |
5 | :set sw ソフトウェアのタブストップの幅を設定します。たとえば、このコマンドでシフト幅を4に設定します—:set sw = 4 |
6 | :set ws 場合wrapscanが設定され、単語がファイルの一番下で発見されていない、それは最初にそれを検索してみてくださいます |
7 | :set wm このオプションの値がゼロより大きい場合、エディターは自動的に「ワードラップ」を行います。たとえば、折り返しマージンを2文字に設定するには、次のように入力します。:set wm = 2 |
8 | :set ro ファイルタイプを「読み取り専用」に変更します |
9 | :set term 端末タイプを印刷します |
10 | :set bf 入力から制御文字を破棄します |
コマンドの実行
viには、エディター内からコマンドを実行する機能があります。コマンドを実行するには、コマンドモードに移動して次のように入力するだけです。:! コマンド。
たとえば、ファイルをそのファイル名で保存する前にファイルが存在するかどうかを確認する場合は、次のように入力できます。 :! ls の出力が表示されます ls 画面上。
任意のキー(またはコマンドのエスケープシーケンス)を押して、viセッションに戻ることができます。
テキストの置き換え
置換コマンド(:s/)ファイル内の単語または単語のグループをすばやく置き換えることができます。以下は、テキストを置き換える構文です-
:s/search/replace/g
ザ・ gグローバルの略です。このコマンドの結果は、カーソルの行のすべての出現箇所が変更されることです。
注意すべき重要なポイント
次の点は、vi −での成功に追加されます。
コマンドを使用するには、コマンドモードである必要があります。(コマンドモードになっていることを確認するために、いつでもEscキーを2回押してください。)
コマンドには注意する必要があります。これらは大文字と小文字が区別されます。
テキストを入力するには、挿入モードである必要があります。