English | 日本語
検索ダイアログ(ファイル名検索の find_files、内容検索の find_in_files、OS のインデックスを使う index_search。Tab で切り替え)には、その場で効く 4 つのオプションがあります。大文字・小文字を厳密に区別するか、単語全体だけを対象にするか、クエリを正規表現として扱うか、サブフォルダーも検索するかです。これらは今見ている検索をそのまま変えます。切り替えた瞬間に結果が再検索され、どれも 1 つのキーから操作できます。
検索ダイアログを開いた状態で options キーを押してください。キーはダイアログのフッターにも F1 にも表示されています。
ステータス行の右端、結果の件数の隣には、該当するオプションごとに 1 つずつチップが常に表示されます。チップはオプションがオンのときはアクセントカラーで塗りつぶされ、オフのときは地味な灰色のブロックになります。そのため、この検索が何をしているかがひと目でわかり、確かめるために何かを開く必要はありません。
3 results [ Aa ] [ Word ] [ .* ] [ Sub ]
off off on on
| チップ | オンのときの意味 |
|---|---|
Aa |
大文字・小文字を厳密に区別します |
Word |
単語全体だけが一致します。cat で concatenate は見つからなくなります |
.* |
クエリを正規表現として扱います |
Sub |
サブフォルダーも検索します |
チップをクリックすると切り替わります。 見えているブロック全体(余白も含めて塗りつぶされた部分すべて)がボタンなので、何も開かずに 1 つのオプションを変えるにはこれがいちばん手早い方法です。クリックすると検索が再実行されます。
ファイル名検索で表示されるのは Aa と Sub だけです。ファイル名は glob パターンで照合されるので、単語全体と正規表現は当てはまらず、そもそも表示されません。OS のインデックスでは 4 つとも表示されません。インデックス検索は独自のクエリ言語を使い、常にフォルダー以下のすべてを検索するためです。
検索の上に小さなボックスが開きます。ボックスには文字を入力しないので、どのオプションも名前の頭文字で切り替えられます。
Case sensitive off
Whole word off
Regular expression on
Search subfolders on
c / w / r / s — そのオプションをすぐに切り替えます↑ ↓ — 移動、Space — 選択している行を切り替えますEsc または Enter — 閉じます変更はその場で反映され、ボックスの後ろの検索が目の前で再実行されます。確定する操作はなく、閉じても何も元に戻りません。
既定ではオフなので、todo で TODO も見つかります。オンにすると、入力したとおりの大文字・小文字だけが一致します。ファイル名検索と内容検索の両方に適用されます。
既定ではオフです。オンにすると、クエリの両端が単語の境界になければなりません。cat で a cat sat は見つかりますが、concatenate は見つかりません。内容検索だけに適用されます。
既定ではオンです。内容検索はもともとこの動作でした。.、*、+、^、$、[…] などが特別な意味を持ち、無効なパターンを入力するとステータス行に「Invalid pattern」と表示されます。
オフにすると、入力した文字そのものだけを検索します。a.c は a.c に一致し、abc には一致しません。正規表現としては無効になるクエリ(C++()も、そのままの文字列として検索されます。内容検索だけに適用されます。
既定ではオンで、現在のディレクトリ以下のツリー全体を検索します。オフにするとこのディレクトリだけを検索します。ペインを絞り込んだ直後に「ここにあるこれらのファイル」を対象にしたいときに便利です。
これがオフでも、ファイル名検索ではサブディレクトリが名前で一致することはあります。中に入って検索しないだけです。
さらに 3 つのチップで、クエリの構文を使わずに、どのモードでも検索対象を絞り込めます。
3 results [ Aa ] [ .* ] [ Sub ] [ Images ] [ Date ] [ Size ]
| チップ | 値 |
|---|---|
Kind |
Any kind(すべての種類)、Folders、Documents、Images、Videos、Audio、Archives |
Date |
Any date(すべての日付)、Today(今日)、Past 7 days(過去 7 日)、Past 30 days(過去 30 日)、This year(今年)に更新 |
Size |
Any size(すべてのサイズ)、1 MB、100 MB、1 GB 以上(ファイルのみ) |
チップをクリックすると値を選べます。 その下にリストが開きます。パス入力欄の Tab 補完で出るのと同じ種類のリストです。↑ / ↓ で移動し、Enter かクリックで選び、Esc かチップをもう一度クリックすると閉じます。検索を絞り込んでいるチップはその値(Images)をアクセントカラーで表示し、絞り込んでいないチップは名前を灰色で表示します。オプションボックスではほかと同じように行として並びます。k、m、z で次の値に進み、← / → でどちらの方向にも進めます。
チップは入力した内容と組み合わせられます。*report* と Documents を組み合わせると、名前に「report」を含むドキュメントが見つかります。ファイル名検索と OS のインデックスでは、入力欄が空でもチップだけで検索できます。内容検索には探す言葉が必要です。
種類はファイルの拡張子で決まり、どのモードでも同じです。Documents は PDF、Office、OpenDocument、iWork、テキスト、Markdown、CSV、EPUB のファイルです。Archives には .zip、.tar.gz、.7z、.rar、.dmg、.iso が含まれます。
Search subfolders と同じ理由で、チップはダイアログを開くたびに Any に戻ります。
各モードは、検索に使ったクエリを保持しています。クエリ入力欄の右端にある ▾ をクリックするか Alt-↓ を押すと、入力欄の下にリストが表示されます。↑ / ↓ で移動し、Enter かクリックでクエリを入力欄に入れて検索し、Shift-Delete で強調表示しているものを削除し、Esc でリストを閉じます。文字を入力してもリストは閉じ、そのまま入力されます。クエリは、その結果の上で Enter を押したときに記憶されます。
大文字・小文字の区別、単語全体、正規表現は、設定したままセッションの終わりまで保たれるので、一度示した好みが引き続き適用されます。Search subfolders はダイアログを開き直すと常にオンに戻ります。 ある検索のために狭めた範囲が、次の検索を知らないうちに狭めてしまうべきではないからです。とりわけ、ディスクのどれだけを読むかを決めるのはこのオプションです。
ディスクには何も書き込まれないので、XeFM を起動し直すと既定値からやり直しになります。
options アクションに出荷時に割り当てられているキーは _config.py にあり、どちらも ~/.xefm/config.py で割り当てを変更できます。
KEY_BINDINGS = {
'search.options': ['Ctrl-P'],
}
各オプションにはそれぞれ専用のアクションもあり、あえて未割り当てにしてあります。よく変えるオプションに直接キーを割り当てたいときに使います。
KEY_BINDINGS = {
'search.toggle_case': ['Ctrl-T'], # match capitals exactly
'search.toggle_word': ['Ctrl-W'], # whole words only
'search.toggle_regex': ['Ctrl-R'], # read the query as a regex
'search.toggle_subdirs': ['Ctrl-Y'], # subfolders, or this directory only
}
キーは、クエリ入力欄が必要としないものでなければなりません。検索ダイアログはテキスト入力欄なので、印字可能な文字(Space を含む)はすべて入力として扱われ、アクションを起動することはできません。修飾キー付きのキーか、印字されないキーを使ってください。この規則に反する割り当てがあると、XeFM は起動時にログペインでその旨を伝えます。
doc/KEY_BINDINGS_FEATURE.md — キーバインドの完全なリファレンスdoc/MIGEMO_SEARCH_FEATURE.md — ローマ字入力で日本語の名前を見つけるdoc/dev/OPTIONS_SYSTEM.md — オプションの仕組みの作り