みなさん、ベータ検証のご協力ありがとうございます。
Ver 2.8.0 以降は細かいバグ修正を行いつつ、裏で Migemo の研究をしていましたが、ようやく形になりましたので公開してみます。
Migemo というのはローマ字のまま日本語をインクリメンタルサーチするためのライブラリで、これを使うことで今まで不便だった日本語におけるインクリメンタルサーチが大幅に改善されます。
Migemo を使ったインクリメンタルサーチは上のスクリーンショットのようにローマ字や英語を入力するだけで日本語として検索することが可能です。
メガドライブミニW
セガゲームス
幻のメガドライブ版テトリスも収録!
Amazon で探す
楽天市場で探す
目次
Migemo の使い方
Mery で Migemo を使うためには Migemo のライブラリが必要です。
Migemo を導入する
C/Migemo を https://www.kaoriya.net/software/cmigemo/ (香り屋さん) からダウンロードしてアーカイブを展開し、migemo.dll と dict フォルダーを Mery.exe と同じフォルダーに配置してください。
Mery が起動している場合は Mery の再起動を、タスクトレイに常駐している場合はトレイアイコンを右クリックで終了してから起動しなおしてください。
Mery で使用できる C/Migemo のバージョンは 1.3 で、ユニコードに対応しています。
Migemo を使用する
検索ダイアログを開いて [検索する文字列] の右隣にある [>] ボタンをクリックすると [Migemo を使用する] という項目が増えていますのでこれをオンにします。
Migemo は通常の検索においても使用できますが、とりあえず [インクリメンタルサーチ] にチェックを入れてみましょう。
あとは [検索する文字列] の部分にローマ字で文字を入力すると自動的に日本語の文字列が検索されます。
例えば「kantan」とローマ字で入力すると日本語の「簡単」などの文字列がヒットします。
検索方法の詳しい解説は http://0xcc.net/migemo/ に書かれています。なお、現在のところ Mery は Migemo の [行をまたぐ検索] は対応していません。
ところで Migemo の仕組みですが、ローマ字で入力された文字列を Migemo に渡してやると、辞書ファイルをもとに日本語の文字列を含んだ正規表現に変換した文字列が返ってきますので、Mery はそれを使って正規表現で検索をしているわけです。
このような仕組み上、[Migemo を使用する] オプションは [正規表現を使用する] オプションと同時には使用できないのでご注意ください。
更新内容
本バージョンではいくつかの不具合修正や機能改善が含まれています。現在お使いのバージョンで問題がある場合はバージョンアップで改善されるかもしれません。
2019/08/31 (Ver 2.8.6)
-
折り返しのある行におけるブックマーク機能の挙動を改善
-
マクロの OutputBar.Visible プロパティを True にしたときにアウトプットバーにフォーカスを移動しないようにした
-
マクロの OutputBar.Visible でアウトプットバーの表示・非表示を切り替えた後にエディター側のアウトプットバー切り替えのショートカットキーの 1 度目が効かない問題の対策
-
最大化から最小化した後の復元時にチラつきが発生する問題の対策
前回の対策では緩和されたものの不完全だったため、今回、改めて対策を施しました。
-
オーバースクロールのデフォルト値を [なし] に戻した
ベータ版では実験でデフォルト [半ページ] にしていましたが、正式版に向けての微調整です。
- その他、細かい修正
2019/08/14 (Ver 2.8.5)
-
[フォントの設定] と [オプション] の [DirectWrite] の項目の表示サンプルに文字色を背景色を反映するようにした
-
最大化した状態で最小化から復元するときに一部の環境で黒いチラつきが発生することがあった問題の対策
-
[ファイルから検索] で [検索するフォルダー] を "|" で複数指定する機能で "|" のあとにフォルダーを指定しなかった場合の挙動を修正
-
マクロの FindInFiles と ReplaceInFiles で meFindReplaceOnlyWord フラグが動作していなかったのを修正
- その他、細かい修正
2019/08/04 (Ver 2.8.4)
-
[検索] [置換] ダイアログでインクリメンタルサーチがオンの状態で [大文字小文字を区別する] [正規表現を使用する] [単語のみ検索する] [Migemoを使用する] のチェックを切り替えたときに自動で検索を実行するようにした
-
Migemo の辞書ファイルのパスに非 ASCII 文字が含まれているときに辞書ファイルの読み込みに失敗する問題の対策
(辞書ファイルのパスをショートファイル名に変換して渡すようにしてみた)
-
[開く] ダイアログが表示されている場合などエディターウィンドウが無効の状態でファイルを開いたときに正常に動作しなくなることがある問題の対策
(ウィンドウが無効のときは別ウィンドウで開くようにした)
- その他、細かい修正
2019/07/31 (Ver 2.8.3)
- Migemo に対応 (別途 C/Migemo 1.3 の migemo.dll が必要)
- アウトラインプラグインでスレッド処理中に本体側を終了するとエラーが発生することがあったのを修正
- [次の文字列を検索] [前の文字列を検索] で [正規表現を使用する] のチェック状態を保持するようにした
- その他、細かい修正
ダウンロード
レジストリを一切使用しない ZIP 版、レジストリを使用しますが導入が簡単なインストーラー版、設定ファイルを外部に作成しないポータブル版を用意しています。
ZIP 版
アーカイブを解凍するだけですぐに使える ZIP 版です。
Mery Ver 2.8.6 (32 ビット版) ZIP- 3,202,967 バイト 2019/08/31
- SHA256: 56b1f8b8e799b9c1ab13c8d5d57bb16e82faa66865d7e032cf81be148a3ab2b7
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,704,246 バイト 2019/08/31
- SHA256: 0ea24a9b9d11a96a5ce90b94d3f5e462cbe576a1124f3a1693c8904c0604f24f
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
インストーラー版
解凍などの作業が必要なく簡単に使えるインストーラー版です。
Mery Ver 2.8.6 (32 ビット版) インストーラー- 2,605,865 バイト 2019/08/31
- SHA256: 541b90879d912785951cbfd7a78045f196316b1b89f9ebc5773b5cd7b0c0897b
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,057,558 バイト 2019/08/31
- SHA256: ec539ee057a536d966553a84b5dfc0cdd0cd413e077de16ad59c6e63f0da4d22
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
ポータブル版
インストールは不要。通常の ZIP 版と異なり設定ファイルを外部に作成しないので USB メモリに保存して持ち歩けますし、PC 環境を汚すこともありません。
Mery Ver 2.8.6 (32 ビット版) ポータブル- 3,203,121 バイト 2019/08/31
- SHA256: f4d7fe69671f0e44eaf19fd11d6683143d8465477397151a421f4ec7dc3dffe2
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,704,400 バイト 2019/08/31
- SHA256: 658bdf64335fc7c586be62342154b6267932f5469ccad43546a8194780846fe6
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
おわりに
Migemo はインクリメンタルサーチで効果を発揮しますが、通常の検索においても便利なシーンがありますから、使用範囲をインクリメンタルサーチに限定しない方向でなるべくシンプルな仕様を考えました。
-
Migemo のライブラリを同梱しないのか?
C/Migemo の DLL 自体は MIT ライセンスまたは独自ライセンスのデュアルライセンスなので再配布可能ですが、辞書ファイルのライセンスが GPL のようなので同梱できませんでした。
-
置換ダイアログで Migemo を使用できないのか?
技術的には置換ダイアログでも可能ですが、例えば置換のときに Migemo で「name」を置換すると「name」だけでなく「名」や「なめ」なども置換対象になりますから安全性を考慮して検索ダイアログのみとしました。
-
検索窓のような機能は作らないのか?
ツールバーの中に「検索バー」のようなものを用意して、そこから Migemo でインクリメンタルサーチできると効率的だと思います。開発支援にご協力いただいた方への謝意としてプラグインの特典をご用意しております。(準備中)
-
マクロやプラグインから Migemo を使用できるか?
Find メソッドのフラグとして meFindMigemo を追加しました。Migemo が導入されていない環境では通常の検索となります。
もちろんプラグインからも使用できますので、検索ダイアログを使わずステータスバーを利用して Emacs っぽくインクリメンタルサーチするような機能も割と簡単に作れると思います。
-
Migemo ライブラリおよび辞書へのパスを変更できないか?
複数のアプリケーションで Migemo ライブラリを共有する場合など Migemo のパスを変更できたほうが便利なこともありますが、DLL インジェクションなどセキュリティ上の問題が発生しそうなのでそういった機能は搭載していません。
こんな感じで悩み事が色々とありまして仕様変更を何度も繰り返しましたが、最終的にはシンプルな形に落ち着きました。
Migemo を使ったインクリメンタルサーチ。予想以上に快適なので、導入はちょっと面倒かもしれませんがぜひ一度お試しくださいね。
そういえば先日、Amazon Music Unlimited に登録してみたのですがこれは捗りますね。
さすが 6500 万曲以上が聴き放題というだけあってマニアックな曲も結構見つかりますし、その辺には売られていないブートレグ (海賊盤) のようなアルバムもたくさん配信されていますのでかなり楽しめます。
Amazon Music Unlimited が 30 日利用できる、無料体験登録はこちら。