新Linux入門|viエディタの検索機能と設定コマンド活用法

viエディタは、単なるテキストエディタではありません。
 ファイル内の文字列を素早く検索したり、表示設定を自分好みにカスタマイズしたりできる、非常に強力なツールです。

今回は、vi の検索機能と設定コマンド(setコマンド)の活用法について詳しく見ていきましょう。

🕵️ 文字列を検索する:/ コマンドの基本

viでは、ファイル内の文字列を検索するには 「/」 を使います。
コマンドモードで /検索文字列 と入力すると、指定した語句を探してくれます。

コマンド説明
/検索文字列指定した文字列を下方向に検索
?検索文字列指定した文字列を上方向に検索
n次の検索結果に移動
Shift + n前の検索結果に戻る

📘 使用例

[suzuki@AlmaLinux ~]$ vi /etc/services
  1. Escキーでコマンドモードに切り替える
  2. /name と入力して Enter
  3. 「name」という文字列がある箇所にジャンプ

検索結果の例

(略)
rlp             39/udp          resource        # resource location
nameserver      42/tcp          name            # IEN 116
nameserver      42/udp          name            # IEN 116
nicname         43/tcp          whois
nicname         43/udp          whois
tacacs          49/tcp                          # Login Host Protocol (TACACS)
tacacs          49/udp                          # Login Host Protocol (TACACS)
re-mail-ck      50/tcp                          # Remote Mail Checking Protocol
re-mail-ck      50/udp                          # Remote Mail Checking Protocol
domain          53/tcp                          # name-domain server
domain          53/udp
(略)
コマンド説明
/検索文字列指定した文字列を検索
nの検索結果に移動
Shift + n前の検索結果に逆方向に移動

このように、name に一致する単語が順にハイライトされ、
n を押すと次の一致箇所、Shift + n で前の一致箇所に戻ることができます。

💡 Tip

  • / を使うと 前方検索
  • ? を使うと 後方検索
    方向を間違えた場合も、nShift + n でスムーズに移動できます。

🎨 setコマンドでviの動作をカスタマイズ

viでは、:set コマンド を使うことで表示や動作を細かく設定できます。
特に便利なのが「行番号の表示」や「インデント」「検索ハイライト」などの設定です。

🧾 行番号を表示する

 設定ファイルの編集時に、どの行を修正しているかを明確にしたいときは、行番号を表示すると便利です。

コマンド説明
:set number行番号を表示する。
:set nonumber行番号を非表示にする。

📘 使用例

:set number

すると、以下のように行番号付きで表示されます。

 1  # /etc/services:
 2  # Network services, Internet style
 3  # IANA services version: last updated 2013-04-10
 4  domain          53/tcp          # name-domain server
 5  domain          53/udp

もう一度非表示にしたい場合は、:set nonumber と入力します。

⚙️ setコマンドの代表的な設定一覧

以下は、よく使われる :set コマンドの例です。
これらを組み合わせることで、自分にとって最も使いやすい編集環境を作ることができます。

コマンド説明
:set number行番号を表示する。
:set nonumber行番号を非表示にする。
:set autoindent自動インデントを有効にする(コード整形に便利)
:set tabstop=4タブ幅を4文字に設定する。
:set ts=<文字数>タブ幅を任意の数値で設定する(例::set ts=8)
:set hlsearch検索語をハイライト表示する。
:set nohlsearchハイライトを無効にする。
:set list改行やタブなどの不可視文字を表示する。
:set nolist不可視文字を非表示にする。
:set background=darkダークテーマ向けの配色に切り替える。
:set background=lightライトテーマ向けの配色に切り替える。

💬 補足

  • ts(tabstop)はタブキー1回分の幅を設定します。
  • autoindent はソースコード編集時に自動でインデントを維持してくれるので、プログラミングでも重宝します。
  • hlsearch は検索語を見逃さないよう強調表示してくれる便利な機能です。

🔍 検索+設定を組み合わせて使う

検索と設定を組み合わせることで、作業効率を大幅に向上させることができます。

📘

[suzuki@AlmaLinux ~]$ vi /etc/services
  1. /ssh で "ssh" を検索
  2. :set hlsearch でハイライトを有効化
  3. 一致する箇所がすべて黄色で強調される
  4. 編集が終わったら :set nohlsearch でハイライト解除

 このように、setコマンドを上手に組み合わせれば、viをより「見やすく」「使いやすく」カスタマイズできます。

✅ まとめ

viエディタの検索機能と設定コマンドは、
慣れるとファイル編集のスピードと効率を劇的に向上させてくれる便利な機能です。

機能コマンド説明
文字列検索/文字列下方向に検索
検索移動n / Shift + n検索結果を順方向・逆方向に移動
行番号設定:set number / :set nonumber行番号を表示・非表示
ハイライト設定:set hlsearch / :set nohlsearch検索結果を強調表示・解除
インデント:set autoindentコード整形を自動化
タブ幅設定:set ts=4タブの表示幅を変更

💬 最後に
viはカスタマイズ次第でまったく別物の操作感になります。
自分の好みに合わせて設定を調整し、検索機能を組み合わせることで、
「速く・正確に・見やすく」編集できるプロの環境を作り上げましょう。