ホームページ >運用・保守 >Linuxの運用と保守 >Linux の vi コマンドの詳細な説明を整理して共有する

Linux の vi コマンドの詳細な説明を整理して共有する

WBOY
WBOY転載
2021-12-29 18:30:232946ブラウズ

この記事では、vi コマンドの詳細な分析をお届けします。vi エディターは、すべての Unix および Linux システムの標準エディターです。その機能は最新のテキスト エディターに劣りません。皆さんのお役に立てれば幸いです。 。 ヘルプ。

Linux の vi コマンドの詳細な説明を整理して共有する

ここでは、その使用法と手順の一部を簡単に紹介します。 vi エディターは Unix および Linux システムのどのバージョンでもまったく同じであるため、vi が導入されている場所であればどこでも、vi エディターについて詳しく学ぶことができます。 Vi は Linux の最も基本的なテキスト エディタでもあり、これを学習すれば、Linux の世界で問題なく使用できるようになります。

1、vi の基本概念

基本的に、vi はコマンド モード (コマンド モード)、挿入モードの 3 つの状態に分けることができます。 (挿入モード) とボトムラインモード (最終行モード)、各モードの機能は次のように区別されます。

1) コマンドラインモード コマンドモード)

画面カーソルの移動、文字、単語、行の削除、セクションの移動とコピー、挿入モードへの移行、または最終行モードへの移行を制御します。

2) 挿入モード(挿入モード)

挿入モードのみ、のみテキストを入力し、「ESC」キーを押してコマンド ライン モードに戻ることができます。

3) 最終行モード

ファイルを保存するか、vi を終了します。文字列の検索などの編集環境を設定することもできます。 、リストの行番号...など。

ただし、一般に vi を使用する場合、vi は 2 つのモードに簡略化されます。つまり、最後の行モード (ラスト ライン モード) はコマンド ライン モード (コマンド モード) にも含まれます。

2、vi の基本操作

a) vi と入力

システムプロンプトでviとファイル名を入力した後、viを入力した後は「コマンドモード(コマンドモード)」になっているため、文字を入力する前に「挿入モード(インサートモード)」に切り替える必要があります。初めて vi を使用する人は、最初に上下左右のキーを使ってカーソルを移動させたくなりますが、その結果、コンピューターがビープ音を鳴らし続けてイライラするので、vi を入力した後は動かさないでください。を押して「挿入モード」に切り替えます。

b) 挿入モードに切り替えてファイルを編集します

「コマンド モード」の文字をクリックすると、「i」が「挿入モード」になります」と表示されたら、テキストの入力を開始できます。

c) 挿入の切り替え

現在「挿入モード」では、テキストを入力し続けることしかできません。間違った言葉!カーソルキーを使って単語を戻して削除したい場合は、「ESC」キーを押して「コマンドモード(コマンドモード)」に移行してから単語を削除する必要があります。

d) vi を終了してファイルを保存します

「コマンド モード (コマンド モード)」で、「:」コロン キーをクリックして Enter 「最終行モード」、例:

: w filename (指定されたファイル名 filename で記事を保存するには、「w filename」と入力します)

: wq (「wq」と入力し、保存します) vi を終了します)

: q! (保存せずに vi を強制的に終了するには、q! を入力します)

3、コマンド モード ファンクション キー

1). 挿入モード

「i」を押して挿入モード「挿入モード」に切り替え、「i」を押して挿入後モードに入ります, ファイル入力はカーソルの現在位置から始まります;

「a」を押して挿入モードに入ると、テキスト入力は現在のカーソル位置の次の位置から始まります;

「o」を押してください" 挿入モードに入ると、新しい行が挿入され、行の先頭からテキストが入力されます。

2). 挿入モードからコマンド ライン モードに切り替えます

「ESC」キーを押します。

3). カーソルの移動

vi では、キーボード上のカーソルを直接使用して上下左右に移動できます。ただし、通常の vi では小文字の英語が使用されます。文字「h」、「j」、「k」、「l」は、カーソルをそれぞれ左、下、上、右に 1 スペース移動するように制御します。

  • 「ctrl」「b」を押すと、画面が 1 ページ「前に」移動します。

  • 「ctrl」「f」を押すと、画面が 1 ページ「進む」ように移動します。

  • 「ctrl」「u」を押すと、画面が半ページ「前に」移動します。

  • 「ctrl」「d」を押すと、画面が半ページ「前方」に移動します。

  • 数字「0」を押してください: 記事の先頭に移動します。

  • "G" を押す: 記事の最後に移動します。

  • 「$」を押す: カーソルが置かれている行の「末尾」に移動します。

  • "^" を押す: カーソルがある行の「先頭」に移動

  • "w" を押す: カーソルがジャンプします次の単語の先頭

  • 「e」を押すと、カーソルは次の文字の末尾にジャンプします

  • 「b」を押します: カーソルは前のカーソルに戻ります。 単語の先頭

  • "#l" を押します。カーソルは行の # 番目の位置に移動します (例: 5l、56l)。

4). 文字削除

  • 「x」:押すごとに削除it カーソル位置の「後ろ」の 1 文字。

  • 『#x』: たとえば、「6x」は、カーソル位置の「後ろ」の 6 文字を削除することを意味します。

  • "X": 大文字の X。押すたびに、カーソル位置の「前」の文字が削除されます。

  • 「#X」:たとえば、「20X」は、カーソル位置の「最初の」20 文字を削除することを意味します。

  • 「dd」:カーソルのある行を削除します。

  • #「#dd」:カーソルのある行から # 行を削除

#5

). Copy

    「yw」:カーソルから単語の末尾までの文字をバッファにコピーします。
  • 「#yw」:# 個の単語をバッファにコピーします。
  • 「yy」:カーソルがある行をバッファにコピーします。
  • 『#yy』: たとえば、「6yy」は、カーソルが置かれている行から「カウントダウン」して 6 行のテキストをコピーすることを意味します。
  • 「p」: バッファ内の文字をカーソル位置に貼り付けます。注: コピー アンド ペースト機能を完了するには、「y」に関連するすべてのコピー コマンドを「p」と組み合わせる必要があります。
6

). 置換

    「r」: カーソルが置かれている文字を置換します。は 。
  • 『R』:「ESC」キーが押されるまで、カーソルのある文字を置換します。
7

).最後の操作への返信「u」: 誤ってコマンドを実行した場合、 「u」を押すとすぐに前の操作に戻ることができます。複数の返信を実行するには、「u」を複数回押します。

8

).

    "cw" を変更します: カーソルが置かれている単語を末尾に変更します。 word
  • 『c#w』: たとえば、「c3w」は 3 文字を変更することを意味します
9

# #). 指定行へジャンプ

# 「ctrl」「g」 カーソルのある行の行番号を一覧表示します。
  • "#G": たとえば、"15G" は、記事の 15 行目の先頭にカーソルを移動することを意味します。
  • 4

、最終行モードのコマンドの紹介 「最終行モード」を使用する前に、まず次のことを覚えておいてください。 「ESC」キーを押して「コマンド モード」になっていることを確認し、「:」コロンを押して「最終行モード」に入ります。

A)

リスト行番号 "set nu": "set nu" を入力すると、次の行の各行の前に表示されます。ファイルリストの行番号。

B)

ファイル内の特定の行にジャンプします「#」:「#」記号は数字を表し、後ろに 1 つ入力します。コロン 数字 15 を入力してもう一度 Enter キーを押すと、記事の 15 行目にジャンプします。

C) 文字を検索

『/キーワード』: 最初に「/」キーを押してから、検索したい文字を入力します。初めてです。 探しているキーワードが希望のものでない場合は、目的のキーワードが見つかるまで「n」を押し続けてさらに検索できます。

「?キーワード」: 最初に「?」キーを押して、検索したい文字を入力します。初めて検索するキーワードが目的のものでない場合は、押し続けても構いません。 「n」で次に進みます。目的のキーワードを見つけてください。

D) ファイルを保存します

"w": コロンに文字 "w" を入力してファイルを保存します。

E) vi を離れる

"q": "q" を押して終了します。vi から離れることができない場合は、"q" に従ってください。 「 A "!」は vi を強制的に終了します。

『qw』: 終了時にファイルを保存できるように、通常は終了時に「w」を付けて使用することをお勧めします。

5、vi コマンド リスト

1、次の表にコマンド モードのいくつかのキーを示します。 :

  • h カーソルを 1 文字左に移動します。

  • l カーソルを 1 文字右に移動します

  • kカーソルを 1 行上に移動します

  • ##j カーソルを 1 行下に移動します

  • ^カーソルを先頭に移動します行の

  • 0数字「0」、カーソルは記事の先頭に移動します

  • Gカーソルは記事の末尾に移動します

  • ##$ カーソルを行末に移動します。
  • Ctrl f を押して前方にスクロールします。
  • Ctrl b を押して後方にスクロールします。
  • Ctrl d を押して画面の半分を前方に回転させます
  • Ctrl u を押して画面の半分を後方に回転させます
  • iカーソル位置の前に文字を挿入します
  • aカーソル位置の後ろの文字を増やします
  • o新しい行を挿入して入力します
  • # 行頭から

    #ESC で入力状態からコマンド状態に戻る

  • #カーソル以降の文字を削除

  • #xxカーソル # 文字以降の文字を削除

  • XX (大文字 X)、カーソルより前の文字を削除

  • #XX カーソルの前の # 文字を削除します

  • ddカーソルがある行を削除します

  • #ddカーソルのある行から # 行を削除しますカーソルは

  • # です ywカーソル位置の単語をコピーします

  • ywカーソル位置の単語をコピーします

  • yyカーソル位置の行をコピー

  • #yyカーソルがある行から # 行をコピー

  • p貼り付け

  • #u操作をキャンセル

  • #cwカーソル位置の 1 文字を変更
  • ##cwカーソル位置の # 文字を変更
  • 2
  • 、次の表に、ライン コマンド モードでのいくつかの命令を示します。

w filename

#編集中のファイルをファイル名として保存します
  • wq ファイル名

編集中のファイルをファイル名として保存しますfilename を指定して vi を終了します
  • q!

すべての変更を破棄して vi を終了します
  • set nu

行番号を表示
  • /または?

検索、検索したい内容を入力します/
  • n

以降 / または ? と併用し、検索内容が探したいキーワードでない場合は n または見つかるまで検索を続けるには、後方 (/ (? と組み合わせて使用​​) を使用) または前方 (? と組み合わせて使用​​) を使用します。
  • vi を初めて使用する場合は、注意すべき点がいくつかあります:

  • 1. vi でファイルを開いた後は「コマンドモード」になっているため、文字を入力するには「挿入モード」に切り替える必要があります。切り替え方法:「コマンドモード」で「i」をクリックすると「挿入モード」になり、文字入力が開始できます。

    2. 編集後、挿入モードからコマンドラインモードに切り替えてファイルを保存する必要があります。切り替え方法:「ESC」キーを押します。

    3. ファイルを保存して終了します: コマンド モードで「wq」と入力します。 (次の前にある wq を忘れないでください。)

    画面上で移動

    Vi には、全画面にわたってカーソルを移動するための 3 つのオプションがあり、ファイル自体もこれを実行します。スクロールではありません。それぞれ H、M、L コマンドです。

    Hコマンド

    このコマンドは、カーソルを画面の最初の行の先頭 (つまり、左上隅) に移動します。これは、ファイル全体の最初の行ではなく、現在の画面の最初の 1 行です。このコマンドを使用して、カーソルを画面の上部にすばやく移動します。 H コマンドの前に数値 n を追加すると、カーソルは n 行目の先頭に移動します。

    MMコマンド

    このコマンドは、カーソルを画面表示ファイルの中央行の先頭に移動します。つまり、現在の画面がいっぱいの場合は画面全体の中央の行に移動し、いっぱいでない場合はテキスト行の中央の行に移動します。このコマンドを使用すると、カーソルを画面上の任意の位置から画面表示ファイルの中央行の先頭に素早く移動できます。例えば、上記の画面表示の場合(カーソルが画面上のどこにあっても)、コマンドモードでコマンドMを入力すると、カーソルは追加行の文字aに移動します。

    コマンド dM を使用すると、カーソルの現在行から画面に表示されているファイルの中央行までのすべての内容が削除されることにも注意してください。

    Lコマンド

    ファイルの表示内容が1画面を超える場合、このコマンドはカーソルを画面の一番下の行の先頭に移動します。 ; ファイルの表示内容が 1 画面に満たない場合、このコマンドはカーソルをファイルの最終行の先頭に移動します。このコマンドを使用すると、カーソルを画面の下部またはファイルの最終行にすばやく正確に移動できることがわかります。 L コマンドの前に数字 n を追加すると、カーソルは画面下から n 行目の先頭に移動します。例えば、上記の画面表示の場合(カーソルが画面上のどこにあっても)、コマンドモードでコマンド「3L」を入力すると、カーソルはx行の文字xに移動します。

    コマンド dL を使用すると、カーソルの現在行から画面の最下行までのすべてのコンテンツが削除されることにも言及する価値があります。

    単語単位でカーソルを移動する

    まず、Vi における「単語」の概念を紹介します。 Vi では「Word」には 2 つの意味があります。 1 つは広義の単語で、2 つのスペースの間にあるものであれば何でも構いません。また、狭義の単語とは、英単語、句読点、アルファベット以外の文字(!、@、#、$、%、^、&、*、(、)、-など)を指します。 、、{、}、[、]、~、|、"、<、>、/ など) を 1 つの単語として扱うため、上記の行には {、int、k、; の 4 つの文字が含まれます。

    Vi で大文字のコマンドを使用することは、一般に単語を広義で扱うことを意味し、小文字のコマンドを使用することは、単語を狭義で扱うことを意味します。

    Vi で単語の意味を理解した後、次のことができます。ワードごとに導入 カーソルを移動するコマンド

    Vi には、カーソルをワードごとに移動するためのコマンド セットが合計 3 つ用意されています。

    # および W コマンド

    カーソルを次の単語の先頭に右に移動します;

    e

    および E コマンド

    if カーソルの開始位置が単語内にある場合 (つまり、単語の末尾ではない)、このコマンドはカーソルを単語の末尾に移動します。カーソルの開始位置が単語の終わりにある場合、このコマンドはカーソルを次の単語の終わりに移動します。

    b

    および B

    カーソルがが単語内にある (つまり、単語の先頭にない) 場合、このコマンドはカーソルを単語の先頭に移動します。 ; カーソルが現在の単語の先頭にある場合、このコマンドはカーソルを次の位置に移動します。

    文ごとにカーソルを移動

    Vi では、文はカンマ (,) で終わる一連の文字として定義されます。 、ピリオド (.)、疑問符 (?)、および感嘆符 (!) の後に、少なくとも 2 つの (両端を含む) スペースまたは改行文字が続きます。Vi には、カーソルを移動するための 2 つのコマンドが用意されています。文ごとに、次のようになります:

    1.

    (コマンド

    )

    カーソルを前の文の先頭に移動します。

    2. ) コマンド

    このコマンドは、カーソルを次の文の先頭に移動します。

    セグメントごとにカーソルを移動

    Vi では、セグメントは空白行で始まり空白行で終わるフラグメントとして定義されます。 Vi には、セグメントごとにカーソルを移動するための 2 つのコマンドが用意されています:

    1. { Command

    このコマンドは、カーソルを前方に移動します。前の段落の先頭;

    2. } コマンド

    このコマンドは、カーソルを次の段落の先頭に戻します。

    画面スクロール

    screen コマンドはカーソルを画面単位で移動し、ファイルのスクロールやページングによく使用されます。スクリーンコマンドはカーソル移動コマンドではないため、削除コマンドのテキスト修飾子として使用できないことに注意してください。

    画面スクロールコマンドは、コマンドモードとテキスト入力モードの両方で使用できます。

    1. スクロール コマンド

    スクロール コマンドは 2 つあります:

    · < Ctrl u > 半分スクロールします。画面を前方に (ファイルの先頭の方向に);

    · < Ctrl d > 画面の半分を後方に (ファイルの末尾の方向に) スクロールします。

    これら 2 つのコマンドの前に数字 n を追加すると、画面が n 行前後にスクロールします。この値はシステムに記憶されており、今後 < Ctrl u > および < Ctrl d > コマンドを使用してスクロールすると、対応する行数がスクロールされます。

    2. ページング コマンド

    2 つのページング コマンドもあります:

    · < Ctrl f > Scroll aファイルの終わりに向かって全画面 (つまり 1 ページ) ;

    · < Ctrl b > ファイルの先頭に向かって画面を全画面 (つまり 1 ページ) スクロールします。

    これら 2 つのコマンドの前に数字 n を追加して、画面を n ページ前後に移動することもできます。

    3. ステータス コマンド < Ctrl G >

    コマンドは、vi ステータス行に次のような vi ステータス情報を表示します。編集済み ファイル名、変更されているかどうか、現在の行番号、ファイル内の行数、およびファイル全体におけるカーソルより前の行の割合。

    4. 画面ゼロ調整コマンド

    Vi は、画面ゼロ調整に関連する 3 つのコマンドを提供します。形式は次のとおりです:

    · [行番号] z [行数]

    · [行番号] z [行数] .

    · [行番号] z [行数] __

    行番号と行番号を省略した場合、これら 3 つのコマンドはカーソルが置かれている現在の行を先頭行、中間行、最終行として使用します。行が再表示されます。行番号が指定されている場合は、行番号に対応する行が画面の最初、中間、および最後の行に現在の行として表示されます。行番号が指定されている場合は、その行が現在の行として表示されます。画面番号に表示される行を指定します。

    [例 13]

    8z16: ファイルの 8 行目を画面に表示する最初の行として、合計 16 行を表示します。

    15z .: ファイルの15行目を画面表示の中央行とし、表示行数は画面全体となります。

    15z 5_: ファイルの 15 行目を画面に表示する最後の行とし、表示行数は 5 行になります。

    テキスト挿入操作

    コマンド モードでは、ユーザーが入力した文字はすべて Vi によってコマンドとして解釈され、実行されます。ユーザーが入力した文字をテキスト コンテンツとして扱いたい場合は、まず、 Vi の作業モードをコマンド モードからテキスト入力モードに切り替える必要があります。切り替え方法は以下のコマンドを使用します。

    挿入コマンド

    Vi には、i と I の 2 つの挿入コマンドがあります。

    iコマンド

    テキストの挿入はカーソル位置の前から開始され、挿入プロセス中にキーを使用して誤った入力を削除できます。このとき、Vi は挿入状態になっており、画面下段に「--INSERT--」(挿入)という文字が表示されます。

    #Iコマンド

    このコマンドは、カーソルを現在の行の先頭に移動し、その前にテキストを挿入します。

    追加コマンド

    Vi には、a と A という 2 つの追加の挿入コマンドが用意されています。

    aコマンド

    このコマンドは、カーソルの現在の位置の後に新しいテキストを追加するために使用されます。新しく入力したテキストはカーソルの後に配置され、それに応じてカーソルの後ろにある元のテキストが後方に移動します。カーソルは行上のどこにでも置くことができます。

    Aコマンド

    このコマンドと a コマンドの違いは、A コマンドはカーソルを行末に移動し、新しいテキストを挿入します。 A コマンドを入力すると、カーソルは自動的に行末に移動します。

    a および A コマンドは、行末にテキストを挿入する唯一の方法です。

    Open (オープン) コマンド

    Insert コマンドでも append コマンドでも、挿入されたコンテンツは現在の行の特定の位置から始まります。特定の行の前後に新しい行を挿入したい場合は、open コマンドを使用する必要があります。

    Vi には、o と O という 2 つのオープン コマンドが用意されています。

    oコマンド

    このコマンドは、カーソルがある行の下に新しい行を開き、カーソルを行の先頭に置きます。テキストが入力されるまで待ちます。文字の削除を使用する場合、削除できるのは挿入モードの開始位置以降の文字のみであり、それより前の文字は機能しないことに注意してください。テキスト入力モードで一部の制御文字を入力することもできます。たとえば、Ctrl l を押すと改ページが挿入され、^L と表示されます。

    Oコマンド

    o コマンドとは逆に、O コマンドはカーソルがある行の上に行を挿入し、カーソルを配置します。その行の先頭で、テキストが入力されるのを待ちます。

    11.3.4テキストの変更

    コマンド モードでは、Vi が提供するさまざまな関連コマンドを使用して変更できます。テキスト テキスト内容の削除、コピー、置換、置換などの変更を加えます。

    テキストの削除

    テキストを編集する際、不要なテキストを削除することがよくあります。誤って入力されたテキストや不要なテキストをキーを使用して削除できますが、現時点では制限があります。削除後行の先頭までの行の内容を削除することはできません。

    コマンド モードでは、Vi には多くの削除コマンドが用意されています。これらのコマンドのほとんどは d で始まります。一般的に使用されるものは次のとおりです:

    1. 単一文字の削除

    xx: カーソル位置の文字を削除します。 x の前に数値 n を追加すると、カーソル位置から右 n 文字が削除されます。

    XX: カーソルの前の文字を削除します。 X の前に数字 n を付けると、カーソル前の文字から左 n 文字が削除されます。

    これら 2 つのコマンドは、少数の文字を削除する簡単な方法であることは明らかです。

    2. 複数の文字を削除

    dd: カーソルがある行全体を削除します。 dd の前に数値 n を追加すると、現在の行とそれに続く n-1 行を削除できます。

    D または d$: 2 つのコマンドは同じ機能を持ち、どちらもカーソルから行末までの内容を削除します。

    d0: カーソル前の文字から行頭までの内容を削除します。

    dw: 単語を削除します。カーソルが単語の途中にある場合は、カーソル位置から単語の末尾までを削除します。 dd コマンドと同様に、dw の前に数字 n を追加すると、指定した n 個の単語を削除できます。

    ユーザーが誤ってテキストを削除しても問題ありません。Vi には、誤った操作を復元するためのコマンドが用意されており、復元された内容はテキスト内の任意の場所に移動して配置できます。回復コマンドは ² np を使用します。n はレジスタ番号です。これは、Vi 内部に削除操作を保持するためのレジスタが 1、2、1/4、9 の 9 個あり、それぞれ過去に dd コマンドで削除された内容が格納されているためです。これらのレジスタはキューを形成します。たとえば、dd コマンドを使用して削除された最新のコンテンツはレジスタ 1 に配置されます。次に dd コマンドを使用してテキスト コンテンツを削除すると、Vi はレジスタ 1 の内容をレジスタ 2 に転送します。レジスター 1 は、最新の dd コマンドによって削除された内容になります。同様に、Vi は dd コマンドで削除された最後の 9 つのコンテンツを保存できますが、dd コマンドで削除された以前のコンテンツは破棄されます。

    最終行モードでは、ファイルの内容を削除することもできますが、行全体しか削除できず、指定した範囲(開始行番号、終了行番号)内のすべての行を一度に削除できます。 。 すべて削除。なお、この方法で削除した場合、Vi は削除した内容をレジスタに登録しないため、誤って削除した場合には、² np コマンドによる復元はできず、制限付きで使用できるのは u コマンドのみとなります。回復。

    最後に、文字入力モードで入力した文字を削除する方法です。ユーザーはキーの組み合わせを使用するだけで、カーソルは挿入を開始した位置に戻り、Vi はテキスト入力モードのままになります。

    前のコマンドをキャンセル (Undo)

    前のコマンドをキャンセル (Undo) は、回復コマンドとも呼ばれ、非常に便利なコマンドです。前のコマンド (previous command). ファイルに対する誤用または不適切な操作の影響。誤用または不適切な操作が実行される前の状態にファイルを戻します。

    前のコマンドをキャンセルするには 2 つの形式があります。コマンド モードで文字 u と U を入力します。これらの機能は、入力したコマンドをキャンセルし、元の状況に戻すことです。小文字の u と大文字の U は具体的に異なりますが、大文字の U コマンドの機能は、コマンドを挿入した後に U コマンドを使用した場合、誤ってコマンドを操作する前の状態に戻す機能であるという点です。 , 挿入したばかりのコンテンツは削除されます;

    コマンドを削除した後に U コマンドを使用すると、削除したばかりのコンテンツをカーソルに挿入するのと同じになります。ここでは、テキストを変更するすべてのコマンドが挿入コマンドとみなされます。つまり、U コマンドは前の操作のみをキャンセルできます。U コマンドを使用して前の操作を取り消す場合、もう一度 U キーを押しても、前の操作は取り消されませんが、U キーによって実行された操作が取り消されます。つまり、初めて U コマンドを使用する前の状態に戻り、結果は何も行われません。小文字の u コマンドの機能は、行が何回編集されたかに関係なく、現在の行を編集前の状態に復元することです。

    注: キャンセル コマンドには引き続き cancel コマンドを使用できます。このとき、「マイナスをプラスにする」効果が発生し、ファイルの状態は最初にキャンセルコマンドを実行する前の状態に戻り、あたかも何も操作が行われていないかのようになります。たとえば、上記の例では、コマンド U を再度使用すると、画面に表示されるコンテンツは挿入されたコンテンツのままになります。

    Repeat コマンド (Redo)

    Repeat コマンドも非常によく使用されるコマンドです。テキスト編集では、いくつかの操作を機械的に繰り返す必要があることがよくありますが、その場合には、repeat コマンドを使用する必要があります。これにより、ユーザーは以前に完了したばかりの複雑なコマンドを簡単に実行できます。

    繰り返しコマンドはコマンド モードでのみ機能します。このモードでは「.」キーを押すだけです。繰り返しコマンドを実行する場合、結果はカーソルの現在位置に依存します。

    テキスト コンテンツの変更

    テキスト コンテンツの変更とは、編集プロセス中にテキスト内の特定の文字と特定の行を変更できることを意味します。新しく入力されたテキストは、変更が必要な古いテキストを置き換えます。これは、delete コマンドを使用して変更が必要なコンテンツを削除し、insert コマンドを使用して新しいコンテンツを挿入するのと同じです。したがって、modify コマンドを使用した後、vi はテキスト入力モードに入ります。新しいコンテンツを入力した後は、必ずコマンド モードに戻ってください。そうしないと、Vi は常にテキスト入力モードであると認識し、そこで入力されたコンテンツはすべてコマンド モードになります。今回はすべて変更された新しいコンテンツとみなされます。

    Vi には、c、C、cc という 3 つの変更コマンドが用意されています。変更するテキストの範囲は、カーソル位置とカーソル移動コマンドの両方によって制限されます。これら 3 つの変更コマンドを以下に紹介します。

    cコマンド

    c の後には、カーソルの現在位置から始まるように変更内容の範囲を制限するカーソル移動コマンドが続きます。指定された位置へ。コマンド c で変更されるテキストの範囲は、カーソル位置とカーソル移動コマンドの両方によって制限されます。

    C、c$command

    C、c$command は、カーソルの現在位置から行末まで、または行末から変更できます。カーソルの現在位置から行末まで。

    コマンド C の前に数字 n が付加されている場合は、指定された行数の内容を変更できることを意味します。たとえば、3C コマンドは、カーソル位置の文字 (行全体ではないことに注意) から次の 2 行全体までの内容を削除し、その後に入力された内容に置き換えることを意味します。

    ccコマンド

    cc コマンドの機能は C と同じですが、変更範囲が C とは異なります。カーソルから始まる行を変更します。開始位置 (カーソルが行内のどの列にあるかは関係ありません) から行の末尾または指定した行の末尾までの範囲の内容です。カーソルが置かれている行の内容全体が、新しく入力された内容に置き換えられます。

    コマンド C と同様に、cc の前に数字 n を追加して、カーソルの現在行から合計 n 行の内容を変更することを示すこともできます。たとえば、5cc は、カーソルのある行とその下 4 行を削除してから、変更する内容を入力することを意味します。

    テキストの置換

    テキストの置換とは、元のテキストを新しく入力したテキストに置き換えることです。これはテキストの変更と同じで、最初に削除操作が実行され、次に挿入操作が実行されます。

    Vi が提供する置換コマンドには、置換コマンド、置換コマンド、単語置換コマンドがあります。

    1. Replace コマンド: r および R

    r: 現在のカーソルの文字を、その後に入力された文字に置き換えます。

    ##R: 現在のカーソル位置以降のいくつかの文字を、次に入力したテキストに置き換えます。< Esc > キーを押して置換を終了するまで、入力された各文字が元の文字に置き換えられます。新規に入力した文字数が元の対応文字数を超えた場合、余分な部分が追加されます。

    コマンド R の前に数字 (5R など) を追加すると、新しく入力したテキストが 5 回繰り返されますが、入力テキストに含まれる文字シーケンスと、そうでない文字のみが置き換えられることを意味します。現在の行で覆われています 内容は残りますが、位置が右に移動します。

    R を使用してテキスト コンテンツを置換する場合、新しく入力したテキストが複数行を占める可能性があることに注意してください。置換すると、カーソルが置かれている行内の対応する文字のみが上書きされます。

    新しく入力した 6 文字 (スペースを含むが、< Esc > は含まない) が、元の行の 6 文字を置き換えていることがわかります。

    2. 置換コマンド: s および S

    s (小文字): このコマンドは、現在のカーソルをその後に入力されるテキストに置き換えることを意味します。 。 キャラクター。

    カーソルのある文字を新しい文字に置き換えるだけの場合、s コマンドは r コマンドと同様の機能を持ちます。たとえば、sh と rh はどちらもカーソルのある文字を h に変更します。ただし、r コマンドは置換を完了するだけですが、s コマンドは置換を完了しながら作業モードをコマンド モードからテキスト入力モードに変更します。したがって、s コマンドの一般的な使用法は次のとおりです。 s の後に置換するテキストが続き、最後にテキスト入力モードを終了してコマンド モードに戻る必要があります。

    s の前に数字 n を追加できます。これは、s の後に入力されたテキストが、カーソルがある文字から始まる n-1 文字 (合計 n 文字) を置き換えるのに使用されることを意味します。 )。

    S (大文字): このコマンドは、カーソルの現在の行 (行全体) を、新しく入力したテキストに置き換えることを意味します (カーソルがどの列にあるかは関係ありません)。

    数値 n (3 など) が S の前に指定されている場合は、3 行 (カーソルの現在の行とその下の 2 行を含む) が S の後に入力されたテキストに置き換えられることを意味します。指示。

    3. 単語置換 cw

    特定の単語の内容を他のテキスト文字列に置き換えるだけの場合は、 cwコマンド。 cw が置き換えるのは狭義の単語です。このコマンドを入力すると、Vi はカーソル位置の単語を削除し、ユーザーは任意のテキスト内容を入力できるようになります。入力完了後、 キーを押すと、元のカーソル位置から対応する単語の末尾までが入力内容に置き換えられます。

    テキスト行のマージ

    Vi には、テキスト内の特定の行をマージするコマンドが用意されています。このコマンドは J (大文字) で表され、その機能はカーソルのある行とその下の行を 1 行に結合することです。

    J コマンドの前に数値 n (3 など) を指定すると、カーソルの現在の行とそれに続く 2 行 (合計 3 行) が 1 行にマージされることを意味します。

    テキスト行の移動

    Vi では、特定の範囲内でテキスト行を左右、またはある場所から別の場所に簡単に移動できます。

    テキスト行を左右に移動します。

    テキスト行を左右に移動するには、>、<、>>、<< の 4 つのコマンドがあります。

    (1)> このコマンドは、限られたテキスト行 (画面の最初の行) を右に (通常は 8 スペース分) 移動します。形式は次のとおりです: > カーソル移動コマンド。移動するテキスト行の範囲は、カーソルが置かれている行と、その後に入力されるカーソル移動コマンドによって制限されます。

    (2) < コマンドは、制限されたテキスト行を左に移動します。 > コマンドと移動方向が逆になる以外は同じように使用します。たとえば、

    (3)>> コマンドは、カーソルが置かれている行を 8 スペース右に移動します。 >> コマンドの前に数値 n (4 など) を指定すると、カーソルの現在行とその下の 3 行 (合計 4 行) が 8 スペース分右に移動されることを意味します。

    (4)<< コマンドは、カーソルが置かれている行を 8 スペース左に移動します。使用方法は >> コマンドと同じですが、移動方向が逆になります。

    テキスト行の別の行移動

    次の手順を使用して、テキスト行をある場所から別の場所に移動できます。

    移動するテキストの最初の行にカーソルを移動します;

    nddコマンドを押します。ここで、n は移動する行数です。このとき、Vi は移動するテキスト行をファイルから削除し、削除レジスタ 1 番に入れます;

    カーソルを移動先の行に移動します;

    Press² 1p Remove削除レジスタから移動されるテキスト行。

    この時点で、移動対象のテキスト行が移動先の位置に表示されます。

    上記の方法でテキスト行の行間移動は実現できますが、明らかに面倒です。 Vi では、最後の行モードでコマンド m (移動コマンド) を使用する別の簡単な方法も提供しています。使用方法は n m k で、n 番目の行を k 番目の行の下に移動することを意味します。

    ここで、行 5 を行 4 に移動したい場合は、最後の行モードで入力できます:

    :5 m 3

    コマンド m の前にも、次のように入力できます。行番号の範囲 (開始行番号と終了行番号) を指定します。これは、指定した範囲内のテキスト行を指定した位置に移動する必要があることを意味します。例:

    :2, 5 m 0

    は、ファイルの 2 行目から 5 行目の内容をファイル ヘッダーに移動することを意味します (0 行目より下、この 0 行はダミーです)ライン )。

    Vi の行番号

    Vi の多くのコマンドは、行番号や行番号などの値を使用します。編集するファイルが大きい場合、自分でカウントするのは非常に不便です。この目的のために、Vi はテキストに行番号を追加する機能を提供します。これらの行番号は画面の左側に表示され、行番号の後に対応する行の内容が表示されます。

    使用するコマンドは次のとおりです。 最後の行モードでコマンドを入力します。

    :セット番号

    ここで追加された行番号は、ユーザーにのみ表示されることに注意してください。 user. 、それらはファイルのコンテンツの一部ではありません。

    大きなファイルでは、ユーザーはカーソルが現在どの行にあるのか、またカーソルがファイル内のどこにあるのかを知る必要がある場合があります。コマンド モードでキーの組み合わせを使用できます。このとき、Vi は1 行に対応する情報が表示されます。このコマンドはいつでも使用できます。

    最終行モードでは、コマンド nu (単語番号の省略形) を入力して、カーソル下の現在行の行番号と行の内容を取得できます。

    カーソル移動操作

    全画面テキストエディタにおいて、カーソル移動操作は間違いなく最も頻繁に使用される操作です。ユーザーがこれらのコマンドを巧みに使用してカーソルを移動する場合にのみ、編集したい場所に素早く正確に到達することができます。

    Vi でのカーソル移動はコマンドモードとテキスト入力モードで行うことができますが、操作方法が異なります。

    テキスト入力モードでは、キーボードの 4 方向キーを直接使用してカーソルを移動できます。

    コマンド モードでは、カーソルを移動するさまざまな方法があります。 4 方向キーを使用してカーソルを移動するだけでなく、4 方向キーの代わりに h、j、k、l の 4 つのキーを使用してカーソルを移動することもでき、キーボード定義の違いによる競合を回避できます。使いこなせるようになると、文字キーボードから手を離さずにすべての操作を完了できるようになり、作業効率が向上します。さらに、 、 、および 4 つのキーまたはキーの組み合わせを使用してカーソルを移動することもできます。また、上記の 3 種類のキーは機能的には同等です。さらに、カーソルを移動するためのコマンドがいくつかあります。以下は、それらがどのように機能するかの概要です:

    • 、® (両方とも右キーと呼ばれます)

    右キーの機能は次のとおりです。カーソルを 1 つ右に移動します。右キーを押す前に数値 n を入力すると、カーソルは右に n 位置移動します。たとえば、5l はカーソルが右に 5 位置移動することを意味します。カーソルは現在の行の末尾を越えて移動できないことに注意してください。指定された n が現在のカーソル位置から行末までの文字数を超える場合、右矢印キーを使用すると、カーソルは行末までしか移動できません。右矢印キーを使用すると、カーソルは行末までしか移動できません。カーソルは下の 1 行以上の適切な位置に移動します。

    • h、, Cam (左キー)

    左キーを 1 回実行すると、カーソルが 1 つ左に移動します。右キーと同様に、左キーの前に数字 n を入力すると、カーソルが左に n 位置移動します。左矢印キーを使用すると、カーソルは行の先頭を超えて左に移動できませんが、左矢印キーを使用すると、カーソルは 1 行以上上の適切な位置に移動することに注意してください。

    • j,,  ̄ (下キー)

    下キーを 1 回実行して、カーソルを 1 つ下の位置 (つまり 1 行) に移動します。ただし、カーソルが置かれている列は変更されません。これらのコマンドの前に数字 n が付いている場合、カーソルは n 行下に移動します。

    下キーを使用してカーソルを下に移動することに加えて、Vi では、 キーと「 」キーを使用してカーソルを 1 行または n 行(この行を除く)下に移動することもできますが、このとき、カーソルは行の最初の文字にあります。例:

    3j カーソルは 3 行下に移動しますが、カーソルが置かれている列の位置は変わりません。

    3 または 3 カーソルは 3 行下に移動し、カーソルは行の先頭にあります。

    • k,, (上キー)

    #上キーを 1 回実行して、カーソルを 1 つ上の位置 (つまり、1 行) に移動します。ただし、カーソルが置かれている列は一定です。また、これらのコマンドの前に数字 n を追加すると、カーソルが n 行上に移動します。

    上に移動した後にカーソルを行の先頭に置きたい場合は、コマンド「-」を使用できます。

    • L (行の先頭に移動)

    L コマンドは、カーソルを現在の行の先頭に移動します。つまり、カーソルを現在の行の先頭に移動します。最初の非空白文字 (非タブまたは非スペース文字)。

    • $ (行の末尾に移動)

    このコマンドは、カーソルを現在の行の末尾に移動し、その行で停止します。最後の文字。 $ コマンドの前に数値 n を追加すると、カーソルは n-1 行下に移動し、行末に到達します。

    • [行番号] G (指定行へ移動)

    このコマンドは、指定行番号で指定された行にカーソルを移動します。 。 頭。このような動作を絶対位置決め動作といいます。

    カーソルは 6 行目の先頭に移動しました。

    #行番号を省略した場合、カーソルはファイルの最終行の先頭に移動します。つまり、ファイルの画面数に関係なく、最終行にジャンプします

    関連する推奨事項: 「

    Linux ビデオ チュートリアル >>

以上がLinux の vi コマンドの詳細な説明を整理して共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。