第8回 vi 入門|検索コマンド(/・n・N)の基本と高速移動のコツ|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第8回 vi 入門|検索コマンド(/・n・N)の基本と高速移動のコツ|UNIX Cafe

vi 入門 | 第8回

目次

探したい場所へすっと届く「vi 検索コマンド」の基本

長い文章や設定ファイルを開いていると、目的の場所を目で探すだけでも意外と時間がかかります。そんなとき、vi では検索を使うことで、必要な場所へすばやく移動できます。

今回のゴールは、/ n N を使って、探したい場所へ迷わずたどり着けるようになることです。どれもシンプルな操作ですが、組み合わせると移動の速さが一気に変わります。

動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで vi の操作を確認できます。


📝 この記事で学べること

  • /word でファイル内を前方向に検索する方法
  • n で次の候補へ、N で前の候補へ移動する方法
  • 検索後のハイライトを消す方法(:noh
  • ?word で後方向に検索する方法
  • 検索が便利になる場面と実際の操作例

検索は言葉を手がかりに移動する操作

vi の検索は、文字列を見つけるだけでなく、その場所へカーソルを移動する操作でもあります。設定ファイルで特定の項目を探したり、長い文章の中から目印になる語を見つけたりするときに、検索コマンドを知っているだけで移動の手間がぐっと減ります。

検索コマンドは h j k l などの移動キーとは異なり、文字列を指定してジャンプするのが特徴です。ファイルが長くなるほど、その便利さが分かりやすくなります。

/word で前方向に検索する

コマンドモードで /(スラッシュ)を押すと、画面下部に入力欄が開きます。そこに探したい文字列を入力して Enter を押すと、カーソルがその場所へジャンプします。

/word(検索したい文字列)+ Enter

たとえば、次のようなファイルの中から「banana」を探したい場合、/banana と入力して Enter を押します。

apple
orange
banana
grape
banana
melon

カーソルが最初の「banana」の行へ移動します。一致した文字列はハイライト(強調表示)されるので、どこに見つかったかが一目で分かります。


💡 検索はファイルの先頭から末尾へ向かって探します

ファイルの末尾まで検索して見つからない場合、先頭へ折り返して続けて探します。一周して最初の一致箇所に戻ると search hit BOTTOM, continuing at TOP と表示されます。


n で次の候補へ、N で前の候補へ移動する

同じ文字列がファイルの中に複数ある場合、nN を使って候補間を移動できます。

n : 次の一致箇所へ進む(検索方向と同じ向き)
N : 前の一致箇所へ戻る(検索方向と逆向き)

先ほどの例で /banana を検索すると、最初の「banana」(3行目)にカーソルが移動します。そこから n を押すと、次の「banana」(5行目)へジャンプします。N を押すと、ひとつ前の「banana」(3行目)へ戻ります。

nN を使いこなすと、同じ語が繰り返し登場するファイルでも、目的の箇所へ素早く移動できるようになります。


💡 ?word で後方向に検索できます

/ がカーソルより後ろ(ファイルの末尾方向)へ向かって検索するのに対し、?(クエスチョンマーク)はカーソルより前(ファイルの先頭方向)へ向かって検索します。?banana と入力すると、カーソルの上にある「banana」を探せます。このとき n は前の候補へ、N は次の候補へと方向が逆になります。


検索後のハイライトを消す::noh

検索を実行すると、一致した文字列がハイライト表示されたままになります。確認が終わって見づらく感じたときは、:noh を使うと消せます。

:noh : 検索ハイライトを消す(no highlight の略)

:noh を実行してもファイルの内容は変わりません。画面上のハイライトが消えるだけなので、安心して使えます。次に / で新しい検索をすると、ハイライトが再び表示されます。

長いファイルほど検索が効いてくる

検索コマンドが特に役立つ場面をまとめると、次のとおりです。

  • 長い文章の中から特定の語を探したいとき
  • 設定ファイルの特定の項目へ移動したいとき
  • ログファイルの中からエラーメッセージを探したいとき
  • 同じ変数名がある行を順番に確認したいとき

短いファイルでは移動キーだけで十分なことも多いですが、100行を超えるような設定ファイルやログでは、検索なしでの編集は時間がかかります。

実際に試してみよう

次の流れを、ターミナルで実際に試してみましょう。

  1. vi practice.txt でファイルを開き、「apple orange banana grape banana melon」を各行に入力して Esc を押す
  2. /banana と入力して Enter を押す(最初の「banana」へジャンプする)
  3. n を押して次の「banana」へ移動する
  4. N を押してひとつ前の「banana」へ戻る
  5. :noh と入力してハイライトを消す
  6. :wq で保存して終了する
/banana   # 「banana」を前方向へ検索
n         # 次の「banana」へ
N         # 前の「banana」へ戻る
:noh      # ハイライトを消す
:wq       # 保存して終了

この流れを一度体験するだけで、/ n N の組み合わせが自然に使えるようになります。

まとめ|遠い場所へ行くなら検索が自然


✔ この記事のまとめ

  • /word でコマンドモードから前方向へ検索できる。Enter で最初の一致箇所へジャンプする
  • n で次の候補へ、N で前の候補へ移動できる
  • ?word を使うと後方向(ファイルの先頭方向)へ検索できる
  • 検索後のハイライトは :noh で消せる。ファイルの内容は変わらない
  • 長いファイルほど、検索コマンドの便利さが実感しやすくなる

検索コマンドは、覚えた瞬間から移動の速さが変わります。まずは /wordn の2つだけ試してみましょう。「あの行はどこだったか」と目で探す時間が、ぐっと短くなるはずです。

次回予告

次は、「vi 置換コマンド」の使い方を見ていきます。探したい場所へ届くようになると、その場で文字列をまとめて直したくなります。検索と置換を組み合わせると、編集の流れがさらにスムーズになります。

あわせて読みたい

移動の基本をもう一度確認したい方は、「vi 移動コマンド」の基本もあわせてどうぞ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次