検索

ノーマルモードで / または ? を入力すると コマンドラインモードと同様にカーソルが画面の最下行付近に移動し、 テキスト内を検索するための文字列が入力可能になります。

尚、検索を取り消すにはコマンドモードと同様に ESC または CTRL+[ でキャンセルしてください。

コマンド 説明 備考
/{pattern}[/[W]] 現在のカーソル位置から先にある {pattern} で指定された文字列を検索します。
?{pattern}[/[W]] 現在のカーソル位置から前にある {pattern} で指定された文字列を検索します。(逆検索)
/ 前回の検索を再検索します。(現在のカーソル位置から先へ)
? 前回の検索を再検索します。(現在のカーソル位置から前へ)

また、検索を補助するための normal コマンドもあります。

normal コマンド 説明 備考
n 前回の検索を再検索します。(前回と同じ方向へ)
N 前回の検索を再検索します。(前回と逆方向へ)
* カーソル位置のテキストを検索します。(現在のカーソル位置から先へワード検索)
# カーソル位置のテキストを検索します。(現在のカーソル位置から前へワード検索)
g* カーソル位置のテキストを検索します。(現在のカーソル位置から先へ)
g# カーソル位置のテキストを検索します。(現在のカーソル位置から前へ)
g/ カーソル位置のテキストを検索対象とします。(カーソルは移動せず、ハイライトの対象にします) uvw固有
g? カーソル位置のテキストを検索対象とします。(カーソルは移動せず、ハイライトの対象にします) uvw固有

関連パラメータ

検索に関連するパラメータには以下のようなものがあります。

パラメータ 省略形 形式 説明 初期値 備考
hlsearch hls 二値 検索文字列をハイライト表示します。 nohlsearch 追加
incsearch is 二値 検索文字列を入力途中でもその場で検索します。(インクリメンタル検索) noincsearch 追加
smartcase scs 二値 検索文字列入力時に英大文字で ignorecase を無効化可能になります。 nosmartcase 追加
rangesearch rgs 二値 範囲検索を有効にします。(後述) norangesearch uvw固有

関連コマンド

パラメータ設定の簡略化のために以下のようなコマンドを用意しています。

コマンド 省略形 説明 備考
:nohlsearch :noh 検索ハイライトを無効にします。(:set nohls と同じ意味で入力を省力化するために追加しています) uvw固有
:hlsearch :hls 検索ハイライトを有効にします。(:set hls と同じで入力を省力化するために追加しています) uvw固有

一時強調表示

以下のコマンドを用いて一時的な強調表示を行うことができます。

コマンド 説明 備考
:match {color1} [bg {color2}] /{pattern}/ 一時的に {pattern} を強調表示します。 非互換
:match none 一時的な強調表示を解除する。 非互換

一時強調表示の例

フォアグランドカラーを指定した強調表示の例

:match cyan /\<ABC\>/

フォアグランドカラーとバックグラウンドカラーを指定した強調表示の例

:match black bg yellow /\<ABC\>/

syntax link で指定した色の別名を指定した強調表示の例

:match Constant /\<TRUE\>/

以下で一時的な強調表示を全て解除します。

:match none

AND/OR 検索

本家 vim では正規表現で and, or 検索が出来るようになっているようですが 本エディタでは jvim 由来の方法でテキスト内の文字列の and, or 検索を行うようになっています。

コマンド 説明 備考
/{pat1}/&&/{pat2}/ AND 検索(pat1 及び pat2 を含む行を検索) jvim由来
/{pat1}/||/{pat2}/ OR 検索(pat1 または pat2 を含む行を検索) jvim由来
/{pat1}/&&~/{pat2}/ XOR 検索(pat1 を含み、pat2 を含まない行を検索) jvim由来

範囲内検索

前述した rangesearch パラメータを有効にすると 行単位の範囲を指定してその間での検索を行えるようになります。

コマンド 説明 備考
:[range]/{pattern}/ [range] の範囲内で検索パターンの検索を行います。 uvw固有

範囲指定して検索する例

行番号で範囲を指定して検索する例

:100,200/\<ABC\>/

ファイル先頭から現在行までを指定して検索する例 (ピリオド(.)が現在行を表します)

:1,./\<ABC\>/

現在行からファイル末尾までを指定して検索する例 (ピリオド(.)が現在行を表します)

:.,$/\<ABC\>/

Visual モードで範囲選択して検索する例 (バックスラッシュ(`)がレジスタ参照を表します)

:'<,'>/\<ABC\>/

レジスタで行をマークしておいてその範囲で検索する例

:'b,'e/\<ABC\>/

パターンで検索した行の間を範囲として検索する例

:/begin/,/end//\<ABC\>/

戻る