コマンドライン検索 (slf)
SwiftList には、小さなコマンドラインコンパニオンツール slf も同梱されています。これは fzf スタイルのあいまい検索ツールで、独自に検索用の仕組みを持つのではなく、App 自体がすでに維持しているインデックスをそのまま検索します。ターミナルで生活していて、検索ウィンドウだけでなくそこでも SwiftList の検索 (あいまい検索、ピンインエイリアス、ネットワークドライブなど全部) を使いたい人向けの機能です。
slf は SwiftList App がすでに実行中であることを前提としています。自分で何かを再スキャンするのではなく、ローカルのユーザーごとのパイプ経由で App とやり取りします。App が実行されていない場合、slf はハングすることなく、stderr にエラーを出してすぐに失敗します。
セットアップ
slf.exe は App と一緒にインストールされます。インストーラーのタスク選択ページで Add the slf command-line search tool to PATH にチェックを入れると、どのターミナルからでも slf として実行できるようになります。これにより SwiftList のインストールフォルダーがシステムの PATH に追加されます。インストール後に新しいターミナルウィンドウを開いてください。インストール時にすでに開いていたターミナルには変更が反映されません。
このオプションを選択しなかった場合でも、SwiftList のインストール先から直接実行することは可能です。
基本的な使い方
slfを実行すると、対話式のピッカーが開きます。入力すると、App 自身の検索と全く同じようにあいまい検索でフィルタリングされます。中国語ファイル名に対するピンインエイリアスのマッチングも含まれます (検索構文 を参照)。
| キー | 動作 |
|---|---|
| 入力 | 検索結果を絞り込む |
| ↑ / ↓ | ハイライトを移動 |
| Page Up / Page Down | 1 ページ分ジャンプ |
| ← / → | クエリ内でテキストカーソルを移動 |
| Tab | ハイライトされている検索結果の選択状態をトグル (選択済みの行には * が表示されます) |
| Enter | 選択したパス (何も選択されていなければハイライト中の 1 件のみ) を出力して終了 |
| Esc / Ctrl+C | 何も出力せずに終了 |
クエリを事前入力する
slf reportおよび
echo report | slfはどちらも、report であらかじめ絞り込まれた状態で開きます。いずれの方法でも、クエリボックスに事前入力してそれを入力した場合と同じ検索を開始するだけです。結果を自動的に選択したり自動的に出力したりすることは一切ないため、自分で移動して Enter または Tab を押す必要があります。
複数の検索結果を選択する
Tab キーはハイライト中の行の選択/解除を切り替えます。選択済みの行はクエリを変更しても保持されるため、あるファイルを検索して選択し、別のものを検索してそれも選択する、といったことができます。ステータスラインには現在選択されている件数が表示されます。何か選択されている状態で Enter を押すと、現在ハイライトされているものに関わらず、選択済みのすべてのパスが 1 行ずつ出力されます。
検索結果を他のコマンドで使う
slf の対話式ピッカーはコンソールに直接描画され、通常の入出力ストリームを一切経由しません。stdout に出力される唯一のものは、Enter を押したときに出力される最終的な選択パス (1 行につき 1 件) だけです。これにより、他のコマンドの結果を取得するための通常のシェルのテクニックと組み合わせて使うことができます。
PowerShell:
code (slf)
$path = slf; code $pathcmd.exe (組み込みのコマンド置換がないため for /f を使用):
for /f "delims=" %i in ('slf') do code "%i"制限事項
- プレビューパネルはありません — App 自身のアクションメニューとプレビューがすでにその役割を担っているため、意図的に対象外としています。
- SwiftList App が実行されている必要があります。
slf自体は何もインデックス化しません。