Svitch-0.8.3公開(fuzzyfinderモード追加)
ダウンロードはいつもどおりこちらから
前のバージョンからお使いの方
次のファイルを上書きしてください
- svitch.exe
- CommandPlugin.dll
新機能
ヒントを表示しているときに"/"を入力すると、タイトルやフルパスからインクリメンタル検索ができるようになりました(ただし半角英数記号に限る)。しかし、ただ部分一致検索してもつまらないので、fuzzyfinder.vimという便利なvimプラグインのまねをしてあいまい検索できるようにしてみました。候補の絞り方は結構近いと思います。
ウィンドウを絞り込んだらEnter、スペースで確定してください。候補が一つになったら自動的に開けばいいじゃんと思うかもしれませんが、ユーザがどのタイミングで一つに絞られるか分からず、選択したウィンドウに変な入力をしてしまう可能性もあるので、確定は各自で。
入力した文字列が表示されないのはユーザフレンドリーではないと思いますが、このソフトを使っているユーザは自分が入力した文字くらい把握してるよね!ということでユーザに甘えた作りになってます。
おまけ
新機能に関連して、ヒント表示している際に(ヒント入力モード、インクリメンタル検索モードに関わらず)Shift+Enter、Ctrl+Enterでそのウィンドウに対してヒントコマンドを実行できるようにしました。
インクリメンタル検索で絞り込んでから、Shift+Enterを押してそのウィンドウを最大化というようなことができます。
ぼやき
本当はMigemoを入れて日本語検索を含むファジー検索をやろうとして、機能を全部実装したんだけど、いざC/Migemoを動かしてみたら、"(){}+"などのメタ文字のエスケープがよくわかんないことになってるので急遽取り除いたorz
どういうことなの…。
ぼやき2
インクリメンタル検索は例えば次のような文字列に対して
c:\windows\notepad.exe
こんな文字列でヒットします
- windows
- cpad
- cwne
もちろんあいまい検索だと複数のウィンドウが候補にひっかかるのですが、ヒットした文字の分割数が多いほどスコアが低くなるようになっています。先ほどの例ではwindowsでヒットした場合のスコアが一番高くなります。
- c:\[windows]\notepad.exe → 分割数1
- [c]:\windows\note[pad].exe → 分割数2
- [c]:\[w]i[n]dows\not[e]pad.exe → 分割数4
ただし、このあいまい検索って常に左から右なんですよね*1。あいまい検索というからには、notewinのように右から先にヒットする場合も見つけられた方がいいなと思ってたりします。