AutoHotKeyでEBWin4検索 パート3

帽子屋さんこと高橋聡さんがブログで「# 複数単語(連語)の検索方法 – 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

 

WildLight

前回の記事を書いたとき、単語を選択した場合と連語を選択した場合で、辞書引きのモードを切り替えられたらいいなぁと思い、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 になっています)

元の投稿を表示

広告

投稿者: Terry Saito

某社翻訳部門の中の人です。 詳細は、以下のURLよりどうぞ。 https://terrysaito.com/about/

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中