帽子屋さんこと高橋聡さんがブログで「# 複数単語(連語)の検索方法 – EBWin4」という記事を公開されました。この記事の中で、熟語検索をするなら単語間スペースなしの条件検索が良いと書かれています。
ということで以前公開した AutoHotKey スクリプトを、これに対応するように作り変えてみました。
以前紹介したスクリプトは、単語の検索と連語の検索でEBWin4の検索モードを切り替えるように作ってありました。その「連語の検索」で条件検索が行われるように変更しました。具体的には、EBWin4を呼び出すときのスイッチをkに変えたことと、検索文字列の中の半角スペースをすべて削除するようにスクリプト追加しました。1単語だけ指定のときは前方検索、連続した2単語以上を指定したときは条件検索になります。
; ━━━━━━━━━━━━━━━━━━━━━━━━━━━ ; ● Control + Shift + E でEBWin4検索 ; EBWin4 Ver. 4.4.4 以降で動作します ; http://ebstudio.info/manual/EBWin4/EBWin4.html ; ―――――――――――――――――――――――――――――――――― ^+e:: Backup := ClipboardAll clipboard = Send ^c ClipWait, 1 keyword = %clipboard% Clipboard := Backup Backup = keyword := trim(keyword) if strlen(keyword) = 0 { msgbox, 検索する文字列を範囲指定してから実行してください。 return } ; EBWin4 のコマンド引数; /M= p[refix]|s[suffix]|e[xact]|c[rossword]|k[eyword]|f[ull text]|a[uto] ; p:前方一致, s:後方一致, e:完全一致, c:クロス条件検索, k:条件検索, f:全文検索, a:自動検索 if Instr(keyword, " ") { StringReplace, keyword, keyword, %A_Space%, , All RUN C:\Program Files (x86)\EBWin4\EBWin4.exe /M=k /S="%keyword%" } else { RUN C:\Program Files (x86)\EBWin4\EBWin4.exe /M=p /S="%keyword%" } return
前回の記事を書いたとき、単語を選択した場合と連語を選択した場合で、辞書引きのモードを切り替えられたらいいなぁと思い、EBWin4のマニュアルで調べたのですが、コマンド引数で検索モードを切り替えることができないことが分かりました。
そこで、EBwinのサポート掲示板に「お願い」書き込んだところ、作者のhishidaさんが、もの凄い速さで対応してくださり、Ver. 4.4.4 として公開されました。hishidaさんにはこの場を借りて、厚くお礼申し上げます。(EBWin4: http://ebstudio.info/manual/EBWin4/EBWin4.html )
検索モードをコマンド引数で切り替えられるようになりましたので、さっそく、先のスクリプトを修正いたしました。このスクリプトでは英語(1バイト言語)において、単語の検索と連語の検索で検索モードを切り替えています。私は1単語だけ指定のときは前方検索、連続した2単語以上を指定したときは全文検索する場合が多いので、そういう設定で作ってあります。
; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ; ● Control + Shift + E でEBWin4検索 ; EBWin4 Ver. 4.4.4 以降で動作します ; http://ebstudio.info/manual/EBWin4/EBWin4.html ; ―――――――――――――――――――――――――――――――――― ^+e:: Backup := ClipboardAll clipboard = Send ^c ClipWait, 1 keyword = %clipboard% Clipboard := Backup Backup = keyword := trim(keyword) if strlen(keyword) = 0 { msgbox, 検索する文字列を範囲指定してから実行してください。 return } ; EBWin4 のコマンド引数 ; /M= p[refix]|s[suffix]|e[xact]|c[rossword]|k[eyword]|f[ull text]|a[uto] ; p:前方一致, s:後方一致, e:完全一致, c:クロス条件検索, k:条件検索, f:全文検索, a:自動検索 if Instr(keyword, " ") { RUN C:Program Files (x86)EBWin4EBWin4.exe /M=f /S="%keyword%" } else { RUN C:Program Files (x86)EBWin4EBWin4.exe /M=p /S="%keyword%" } return
- このスクリプトは EBWin4 の Ver. 4.4.4 以降で動作します。
- 検索モードは、自分の好みに変更してお使いください。
- ショートカットキーも、自分の好みに変更してお使いください。(上記スクリプトでは Ctrl + Shift + e になっています)