技術ノート Linux および macOS ターミナル 30 以上のキー バインドを学習して Vi マスターになりましょう

30 以上のキー バインドを学習して Vi マスターになりましょう

30 以上のキー バインドを学習して Vi マスターになりましょう

Vi は、ほとんどの Linux システムに組み込まれている強力なテキスト エディタです。多くの人が vi を信頼しており、そのキー バインディングを一度覚えてしまえば、他のどのエディタよりも速いことに気付きます。 Bash で vi キー バインディングを使用することもできます。

初心者向けに vi を始める方法について はすでに説明しました。しばらく vi を使用していない場合は、この投稿を参照して基本を再確認するとよいでしょう。

モード切り替え

簡単にまとめると、vi はモーダル エディターであり、挿入モードと標準コマンド モードがあります。挿入モードでは、vi は通常のテキスト エディターと同様に機能します。コマンド モードでは、これらのキー バインドを利用します。

  • i – 挿入モードに入ります。
  • エスケープ – 挿入モードを終了します。すでにコマンド モードになっている場合は、Escape キーを押しても何も行われないため、Escape キーを押して確実にコマンド モードにすることができます。
30 以上のキー バインドを学習して Vi マスターになりましょう

カーソルの移動

Vi は、 hjkl キーを使用してコマンド モードでカーソルを移動します。初期のコンピュータ システムには必ずしも矢印キーがあるとは限らず、代わりにこれらのキーが使用されていました。これらのキーボード ショートカットの利点の 1 つは、使用するためにホーム行から指を移動する必要がないことです。

  • h – カーソルを左に移動します。
  • j – カーソルを下に移動します。
  • k – カーソルを上に移動します。
  • l – カーソルを右に移動します。

検索コマンドを使用してカーソルをすばやく移動することもできます。

  • / – 「/」に続いて検索したいテキストを入力し、Enter キーを押すと、ファイル内のテキストの位置にカーソルがすぐに移動します。たとえば、ファイルに iguana という単語がある場合、「/iguana」と入力して Enter キーを押すと、カーソルがそこにすぐに移動します。
  • ? – / と似ていますが、逆方向に検索します。
  • f – f に続けて任意の文字を入力すると、カーソルが現在の行の次の文字に素早く移動します。たとえば、行に「Hello world」という行があり、カーソルが行の先頭にある場合、fo と入力して Hello の o に移動します。もう一度 fo と入力すると、ワールドの o に移動します。
  • F – f と似ていますが、後方に検索します。
  • % – 行上の最も近い ()、[]、または {} 文字の間をジャンプします。

ファイル内の場所にすばやく移動するには、次のコマンドを使用します。

  • H – カーソルをファイル内の最上位 (先頭) 行に移動します。
  • M – カーソルをファイル内の中央行に移動します。
  • L – カーソルをファイル内の最下位 (一番下) 行に移動します。
  • #G – 数値を入力してから G を入力すると、ファイル内のその行に移動します。たとえば、「4G」と入力して Enter キーを押すと、ファイルの 4 行目に移動します。

単語間の移動:

  • w – 単語を 1 つ進めます。
  • #w – 単語数を進めます。たとえば、2w は 2 ワード先に進みます。
  • b – 単語を 1 つ戻します。
  • #b – 単語数を戻します。たとえば、3b は 3 単語前に戻ります。
  • e – 現在の単語の末尾に移動します。
30 以上のキー バインドを学習して Vi マスターになりましょう

コピー&ペースト

Vi はコピーする行為を「ヤンク」と呼んでいます。

  • v – v を押してカーソルを移動し、テキストのセクションを選択します。
  • y – 選択したテキストをコピー (ヤンク) します。
  • p – カーソル位置に貼り付けます。
  • x – 選択したテキストを切り取ります。テキストが選択されていない場合、カーソルの下の文字を切り取ります。
  • r – r を入力し、別の文字を入力して、カーソル下の文字を置き換えます。
30 以上のキー バインドを学習して Vi マスターになりましょう

コマンドの結合

上記の y および v コマンドや d (削除) コマンドを含む一部のコマンドは、カーソル移動コマンドを受け入れます。

たとえば、テキストを削除するために d を押した場合、カーソル移動コマンドを入力するまでは何も起こりません。例えば:

  • dw – 次の単語を削除します。
  • db – 前の単語を削除します
  • de – 現在の単語の末尾まで削除します。
  • dL – ファイル内のカーソルの下にあるすべてのテキストを削除します。
  • d/unicorn – Enter キーを押した後、現在のファイル内のカーソルと単語「unicorn」の間のテキストをすべて削除します。
  • dd – 行全体を削除します。

ご覧のとおり、コマンドとカーソル移動コマンドを組み合わせると非常に強力です。

30 以上のキー バインドを学習して Vi マスターになりましょう

繰り返しと元に戻す

Vi の繰り返しコマンドは、複雑なコマンドを組み合わせて繰り返すことができるため、非常に強力です。

  • u – 元に戻す。
  • – 。最後の完全なコマンドを繰り返します。ここでは、insert コマンドもコマンドとして機能します。たとえば、「iunicorn」と入力して Esc キーを押します。その後、 を使用できるようになります。キーを押して、カーソルに「unicorn」という単語を挿入します。
30 以上のキー バインドを学習して Vi マスターになりましょう

ボーナス: Bash での Vi キー バインドの使用

vi キー バインディングをマスターしたら、システム上の他の場所でそれらを使用することもできます。問題ありません。vi スタイルのキー バインドを使用するように Bash シェルを設定できます。

Bash ターミナルで次のコマンドを実行して、現在のセッションでこれを試してください。

set -o vi

Bash は挿入モードで起動します。Esc キーを押してコマンド モードに入り、これらのキー バインドを使用します。

これが気に入った場合は、~/.bashrc ファイルにコマンドを追加すると、ログインするたびに自動的に実行されます。vi でファイルを開いて編集するには 、vi .bashrc コマンドを使用します。


これは vi のキー バインディングの完全なリストではありませんが、vi の翼を曲げて飛行することを学ぶのに役立つはずです。ハーバード大学の Web サイトにある キー バインディングのリストは より完全で、より多くの情報が含まれていますが、あまり整理されておらず、一度にすべてを理解するのは困難です。

「 30 以上のキー バインドを学習して Vi マスターになりましょう」に関するベスト動画選定!

viエディタの使い方 基本編 この動画の内容だけで編集はできるようになります。 viエディタはLinuxで最もよく使われるエディタで、必ずインストールされています。 Linux系のエンジニアは必須です
【Linuxコマンドの基本02】一行で書くプログラム ワンライナー (この動画で解説してあるコマンド:grep sort uniq awk tee ps)