「検索して黄色くハイライトされた色を消す方法が分からない」
Linuxを触り始めたばかりの方が、vi(vim)エディタで必ず直面する悩みです。
この記事では、Linuxの標準エディタであるvi(vim)で文字列を検索・置換する実践的なコマンドを解説します。基本的な検索から、次の候補への移動、ハイライトの消し方まで、現場のエンジニアが息をするように使っている必須の操作手順をまとめました。
1. viエディタでの基本的な検索コマンド(/ と ?)
viエディタで検索を行うには、必ず「コマンドモード(文字入力ができない状態)」になっている必要があります。もし文字入力中(挿入モード)であれば、一度Esc キーを押してください。下方向(ファイルの終わりに向かって)検索する
現在のカーソル位置から下に向かって検索するには、/(スラッシュ) を入力してから検索したい文字列を打ち込み、Enter を押します。/error
上方向(ファイルの先頭に向かって)検索する
逆に、現在のカーソル位置から上に向かって検索したい場合は、?(ハテナ) を使います。ログファイルの末尾から過去に遡ってエラーを探す際などによく使います。?warning
【この記事でわかること】
・/パターン/ で文字列を検索し、n/N キーで次・前の一致箇所へ移動できる
・:s/旧文字列/新文字列/g でカーソル行の全置換、:%s で全行一括置換が行える
・:noh コマンドでハイライトを消去できる(hlsearch オプションが有効な場合)
・g/ で行全体を対象にした grep 的な検索も vi 単体で実行できる
・/パターン/ で文字列を検索し、n/N キーで次・前の一致箇所へ移動できる
・:s/旧文字列/新文字列/g でカーソル行の全置換、:%s で全行一括置換が行える
・:noh コマンドでハイライトを消去できる(hlsearch オプションが有効な場合)
・g/ で行全体を対象にした grep 的な検索も vi 単体で実行できる
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 /
詳細はこちら
2. 次の候補・前の候補へ移動する(n と N)
検索して1つ目の文字列が見つかった後、「そこじゃない、次のエラーを見たい」という場合は、いちいち/error と打ち直す必要はありません。・
n キー(小文字): 検索したのと同じ方向に向かって、次の候補へ移動します。・
N キー(大文字): 検索したのとは逆方向に向かって、前の候補へ戻ります。/ で下方向に検索した場合、n を押すたびに画面が下へ下へと進んでいきます。3. 検索のハイライト(色)を消す方法
検索が終わった後も、見つかった文字列がずっと黄色などでハイライト(強調表示)され続けて、画面が見づらくてイライラした経験はないでしょうか?Enter を押します。:nohlsearch または :noh
:noh と打つのが一般的ですので、ぜひ手癖にしておきましょう。4. 大文字・小文字を区別せずに検索する
viエディタのデフォルト設定では、「Error」と「error」は別の文字として厳密に区別されます。大文字小文字を無視して検索したい場合は、検索文字列の後ろに\c を付けます。/error\c
:set ignorecase コマンドを実行してから検索する方法もあります。(元に戻すときは :set noignorecase です)5. 現場で役立つ:文字列の一括置換
検索だけでなく、「ファイル内の特定の文字列を一気に別の文字列に書き換えたい(置換したい)」という場面も多々あります。ファイル全体の文字列を一括置換するには、以下のコマンドを使います。
:%s/置換前の文字列/置換後の文字列/g
:%s/http/https/g
1件ずつ確認しながら置換する(c オプション)
一括置換は便利ですが、意図しない場所まで書き換えてしまうリスクがあります。末尾にc(confirm)を付けると、1件ごとに「置換しますか?」と確認しながら実行できます。:%s/http/https/gc
y(置換する)/ n(スキップ)/ q(中止)などのキー入力を求められます。本番環境の設定ファイルを編集する際は、このオプションを付ける習慣をつけましょう。特定の行範囲だけ置換する
ファイル全体ではなく、特定の行範囲だけを置換したい場合は、% の代わりに行番号を指定します。# 10行目から20行目の範囲だけ置換する :10,20s/http/https/g
検索文字列が見つからない場合のエラー(E486: Pattern not found)
E486: Pattern not found: error
本記事のまとめ(検索コマンド早見表)
| やりたいこと | コマンド(キー操作) |
|---|---|
| 下に向かって検索 | /検索文字列 |
| 上に向かって検索 | ?検索文字列 |
| 次の候補へ進む | n (小文字) |
| 前の候補へ戻る | N (大文字) |
| ハイライト(色)を消す | :noh |
| 大文字/小文字を無視して検索する | /検索文字列\c |
| ファイル全体の一括置換 | :%s/置換前/置換後/g |
| 1件ずつ確認しながら置換する | :%s/置換前/置換後/gc |
| 行範囲を指定して置換する | :開始行,終了行s/置換前/置換後/g |
viコマンドの検索・置換を実務で使いこなせていますか?
検索・置換・ハイライト消去の操作を素早くこなせると、設定ファイルの修正やログ解析の速度が一気に上がります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
暗記不要・1時間後にはサーバーが動く
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
Linux無料マニュアル(図解60P)
名前とメールで30秒登録
- 次のページへ:vi/vimのコマンドモードとインサートモードを切り替える方法|ESC・i・a・o操作と保存・終了まで
- 前のページへ:tar.gz形式のファイルを解凍、展開するには
- この記事の属するカテゴリ:Linuxtipsへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます