ノーマルモードで /
または ?
を入力すると
コマンドラインモードと同様にカーソルが画面の最下行付近に移動し、
テキスト内を検索するための文字列が入力可能になります。
尚、検索を取り消すにはコマンドモードと同様に ESC または CTRL+[ でキャンセルしてください。
コマンド | 説明 | 備考 |
---|---|---|
/{pattern}[/[W]] | 現在のカーソル位置から先にある {pattern} で指定された文字列を検索します。 | |
?{pattern}[/[W]] | 現在のカーソル位置から前にある {pattern} で指定された文字列を検索します。(逆検索) | |
/ | 前回の検索を再検索します。(現在のカーソル位置から先へ) | |
? | 前回の検索を再検索します。(現在のカーソル位置から前へ) |
また、検索を補助するための normal コマンドもあります。
normal コマンド | 説明 | 備考 |
---|---|---|
n | 前回の検索を再検索します。(前回と同じ方向へ) | |
N | 前回の検索を再検索します。(前回と逆方向へ) | |
* | カーソル位置のテキストを検索します。(現在のカーソル位置から先へワード検索) | |
# | カーソル位置のテキストを検索します。(現在のカーソル位置から前へワード検索) | |
g* | カーソル位置のテキストを検索します。(現在のカーソル位置から先へ) | |
g# | カーソル位置のテキストを検索します。(現在のカーソル位置から前へ) | |
g/ | カーソル位置のテキストを検索対象とします。(カーソルは移動せず、ハイライトの対象にします) | uvw固有 |
g? | カーソル位置のテキストを検索対象とします。(カーソルは移動せず、ハイライトの対象にします) | uvw固有 |
/{pattern}
で最初の検索を行い、 n
や N
で次や前の文字列を検索するような使い方をします。*
でカーソル位置のテキストの文字列を拾い、
同様に n
や N
で次や前の文字列を検索していくことになるでしょう。n
コマンドは
ファイル末尾まで達するとファイル先頭に戻って再検索を行います。
(N
はその逆になります)検索に関連するパラメータには以下のようなものがあります。
パラメータ | 省略形 | 形式 | 説明 | 初期値 | 備考 |
---|---|---|---|---|---|
hlsearch | hls | 二値 | 検索文字列をハイライト表示します。 | nohlsearch | 追加 |
incsearch | is | 二値 | 検索文字列を入力途中でもその場で検索します。(インクリメンタル検索) | noincsearch | 追加 |
smartcase | scs | 二値 | 検索文字列入力時に英大文字で ignorecase を無効化可能になります。 | nosmartcase | 追加 |
rangesearch | rgs | 二値 | 範囲検索を有効にします。(後述) | norangesearch | uvw固有 |
パラメータ設定の簡略化のために以下のようなコマンドを用意しています。
コマンド | 省略形 | 説明 | 備考 |
---|---|---|---|
:nohlsearch | :noh | 検索ハイライトを無効にします。(:set nohls と同じ意味で入力を省力化するために追加しています) | uvw固有 |
:hlsearch | :hls | 検索ハイライトを有効にします。(:set hls と同じで入力を省力化するために追加しています) | uvw固有 |
/
を入力後に ESC で検索をキャンセルしてください。
(要は検索する振りをすると一旦検索ハイライトを消すことができます)以下のコマンドを用いて一時的な強調表示を行うことができます。
コマンド | 説明 | 備考 |
---|---|---|
:match {color1} [bg {color2}] /{pattern}/ | 一時的に {pattern} を強調表示します。 | 非互換 |
:match none | 一時的な強調表示を解除する。 | 非互換 |
フォアグランドカラーを指定した強調表示の例
:match cyan /\<ABC\>/
フォアグランドカラーとバックグラウンドカラーを指定した強調表示の例
:match black bg yellow /\<ABC\>/
syntax link で指定した色の別名を指定した強調表示の例
:match Constant /\<TRUE\>/
以下で一時的な強調表示を全て解除します。
:match none
本家 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固有 |
:/{pattern}
と入力した場合は
「範囲を決定するための検索」をやっていることになります。行番号で範囲を指定して検索する例
:100,200/\<ABC\>/
ファイル先頭から現在行までを指定して検索する例 (ピリオド(.)が現在行を表します)
:1,./\<ABC\>/
現在行からファイル末尾までを指定して検索する例 (ピリオド(.)が現在行を表します)
:.,$/\<ABC\>/
Visual モードで範囲選択して検索する例 (バックスラッシュ(`)がレジスタ参照を表します)
:'<,'>/\<ABC\>/
レジスタで行をマークしておいてその範囲で検索する例
:'b,'e/\<ABC\>/
パターンで検索した行の間を範囲として検索する例
:/begin/,/end//\<ABC\>/