テキストエディター「Mery」をアップデートしました。今回の新機能は「あいまい検索」と「折り返しインデント」です。
まずは、あいまい検索。テキスト内で特定のキーワードやフレーズを、完全一致だけでなく、あいまいな検索でも見つけられる機能です。情報を見逃す心配を軽減し、効率的な編集をお手伝いいたします。
それから、折り返しインデントのサポートも追加されました。コードのブロックなど、右端で折り返されたときのインデントを自動で整えることができるので、より快適な編集作業が可能になりました。
新機能のお試し、ぜひ楽しんでいただければ幸いです。
【New】Echo Show 5 (エコーショー5) 第3世代 - スマートディスプレイ with Alexa、2メガピクセルカメラ付き、クラウドブルー
Amazon
より高速で、より高音質になった Echo Show 5 が登場!絶対オススメです。
Amazon で探す
楽天市場で探す
あいまい検索に対応
Microsoft Word でおなじみ、ひらがなとカタカナなどを区別せずに検索できる「あいまい検索」に対応しました。
Word だとデフォルトであいまい検索がオンになっているため不評を招くこともありますが、誤字やスペルミスを無視してほぼ一致する文字列を検索できる、簡単で便利な機能なんです。
あいまい検索の使用
- [検索] メニューから [検索] をクリックして [検索] ダイアログ ボックスを表示します。
- [あいまい検索] を選択します。
- 検索する語句を [検索する文字列] に入力して [検索] ボタンをクリックします。
あいまい検索の設定
- [検索] ダイアログ ボックスの [あいまい検索] の右にある [...] ボタンをクリックすると、[あいまい検索のオプション] ダイアログ ボックスが表示されます。
- このダイアログ ボックスであいまい検索の条件を設定して、[OK] ボタンをクリックします。
濁点、半濁点を無視する
濁点、半濁点を無視して検索します。か
とが
、は
とば
とぱ
などの違いは無視されます。たとえば、アボカド
とアボガド
は一致します。
全角、半角を区別しない
全角、半角を区別せずに検索します。A
とA
、ア
とア
などは区別されません。たとえば、ドリアン
とドリアン
は一致します。
ひらがな、カタカナを区別しない
ひらがな、カタカナを区別せずに検索します。あ
とア
、か
とカ
などは区別されません。たとえば、ばなな
とバナナ
は一致します。[全角、半角を区別しない] と組み合わせると、あ
とア
、か
とカ
なども一致します。
仮名の大小を区別しない
仮名の大小を区別せずに検索します。あ
とぁ
や、や
とゃ
などは区別されません。たとえば、シークヮーサー
とシークワーサー
は一致します。[全角、半角を区別しない]、[ひらがな、カタカナを区別しない] と組み合わせると、あ
とァ
、や
とャ
なども一致します。
異体字セレクタを無視する
異体字セレクタを無視して検索します。たとえば、
と
の違いは無視されます。
絵文字シーケンスを無視する
絵文字シーケンスを無視して検索します。たとえば、
と
の違いは無視されます。
空白文字を無視する
空白文字を無視して検索します。たとえば、パイナップル
とパ イ ナ ッ プ ル
の違いは無視されます。具体的には、以下の空白文字が無視されます。
- U+0009 (CHARACTER TABULATION)
- U+000B (LINE TABULATION)
- U+000C (FORM FEED)
- U+0020 (SPACE)
- U+00A0 (NO-BREAK SPACE)
- U+1680 (OGHAM SPACE MARK)
- U+2000 .. U+200A (EN QUAD .. HAIR SPACE)
- U+202F (NARROW NO-BREAK SPACE)
- U+205F (MEDIUM MATHEMATICAL SPACE)
- U+3000 (IDEOGRAPHIC SPACE)
- U+FEFF (ZERO WIDTH NO-BREAK SPACE)
改行文字を無視する
改行文字を無視して検索します。たとえば、
パイナップルと
パ イナ ップル
の違いは無視されます。
類似する文字列に一致する
雰囲気の似ている文字列を検索します。たとえば、ふんいき
とふいんき
は一致します。[類似度] と [最大編集距離] を設定することであいまいレベルを調整できます。
類似度
文字列がどれだけ類似しているかを指定します。たとえば、75% (3/4) を指定すると 4 文字に 1 文字、誤字があっても一致します。
最大編集距離
[類似度] で指定した誤字の数の最大値を設定します。検索する文字列が長い場合は、ここで指定した値に制限されます。
[類似度]、[最大編集距離] などの言葉がやや難しいかもしれません。
これらの項目はレーベンシュタイン距離に基づいていますが、詳細については、この記事の最後に説明しますのでご興味のある方は [あいまい検索の詳細] を参照してください。
折り返しインデントに対応
従来は、タブまたは半角空白でインデントした行が折り返されている場合、折り返された 2 行目以降は左端から表示されていました。
[表示] メニューの [インデント] から [折り返しインデント] を有効にすると、折り返された 2 行目以降もインデントして表示されるようになります。
もちろん、2 行目以降にタブや半角空白が挿入されているわけではなく、インデントしているように見えるだけなのでご安心ください。
また、箇条書きなどで行頭に*
や-
などの記号を付ける場合は、[ツール] メニューの [オプション] から [基本] カテゴリの [追加のインデント文字] に*-
を指定します。
すると、[追加のインデント文字] に指定した文字もインデントとして扱われるようになり、折り返されたときのインデント幅が調整されます。
このように、[折り返しインデント] を使うことで、インデントした箇条書きや、インデントしたコードのブロックが折り返されたときの可読性が向上します。
インデント ガイドに対応
Visual Studio Code や Sublime Text などのモダンなコードエディターでは当然のようにデフォルトで表示される、なんかそれっぽい縦線です。
実はこれ、[インデント ガイド] という機能で、コードブロックや制御構造の可読性を向上させるためのガイドラインなんですね。
[表示] メニューの [記号] から [インデント ガイド] を有効にすると、タブや半角空白でインデントした場所に縦線が表示されます。
Python のようにインデントが重要な言語ではもちろんのこと、その他の言語でも、たとえば、if 文や for 文の開始と終了がわかりやすくなったりもします。
ぜひ、[インデント ガイド] をご活用いただき、他の開発者にも自慢できる、スッキリとしたコードを書いてみてくださいね。
変更ログ
本バージョンではいくつかの不具合修正や機能改善が含まれています。現在お使いのバージョンで問題がある場合はバージョンアップで改善されるかもしれません。
3.5.9 (2023-08-11)
-
[検索] で [インクリメンタル サーチ] と [選択した範囲のみ] がオンのとき、選択範囲を維持するようにした
-
プラグインで Editor_CustomBarOpen を呼び出したとき、EVENT_DPI_CHANGED を遅延送信するようにした
Per Monitor v2 の特定の条件下で、アウトライン プラグインのフォント サイズが正しく設定されない問題の対策です。
Ver 3.3.2 以降で、メイン ディスプレイとサブ ディスプレイのスケールが異なり、かつ Mery.exe をサブ ディスプレイで起動し、かつ Mery を起動したときのウィンドウがサブ ディスプレイに表示される場合、カスタム バーの開始時にプラグインに送信されるはずの DPI 変更のメッセージが正しく送信されていなかったようです。
-
プラグインの Editor_Info に MI_GET_FONT_HEIGHT を追加
プラグインから本体の正しいフォント サイズを取得できるようになりました。
-
本体のフォント サイズが .5 のとき、アウトライン プラグインのフォント サイズを同期できるようにした
上記の機能追加に伴い、フォント サイズが 10.5 などに設定されているとき、アウトライン プラグインで正しいフォント サイズを同期できるようになりました。
-
[スペル チェック] でアポストロフィ (')、ハイフン (-)、ピリオド (.) を単語の一部として扱うようにした
-
[スペル チェック] ですべて大文字の単語は無視するようにした
すべて大文字の単語を無視するアプリは、Word (オプションあり)、OpenOffice、Chrome、秀丸エディタさんなど。すべて大文字の単語を無視しないアプリは、LibreOffice、Firefox、EmEditor さんなど。
なお、Mery.ini の
[Spelling]
セクションにIgnoreUpperCase=0
を追記することで、従来の仕様に戻すこともできます。 -
[スペル チェック] で [辞書に追加] を実行したとき、すぐに Mery.dic を更新するようにした
従来、Mery を終了したときに Mery.dic を更新していましたが、アプリがクラッシュした場合に備えてすぐに更新するようにしました。
また、Mery を終了したときに Mery.dic を更新しないので、Mery を使って Mery.dic を編集できるようになりました。注意事項として、[辞書に追加] を実行すると Mery.dic は上書きされてしまいます。
あと、Mery を使って Mery.dic を編集した場合、[スペル チェック] のオン/オフを切り替えるか、[辞書] から [en_US] などの辞書をもう一度選択すると、Mery.dic が適用されます。
-
[スペル チェック] のユーザー辞書で、既存の単語をモデルにできるようにした
基本的にスペル チェック辞書は、辞書 (.dic) ファイルと接辞 (.aff) ファイルで構成されています。雑に言うと、辞書 (.dic) ファイルは単語のリスト、接辞 (.aff) ファイルはその単語の活用形の定義といったところでしょうか。
ユーザー辞書 (Mery.dic) は、接辞 (.aff) ファイルとは結びついていないので、単語の登録のみとなっており、活用形は利用できませんでした。
今回の機能追加によって、Mery.dic で次のように記述できるようになりました。
foo Foo/Simpson
foo
とFoo
の単語はスペル チェック辞書に登録されますが、Foo
は en_US.dic に登録されているSimpson
の接辞を適用して、Foo's
なども認識されるようになります。もちろん、辞書 (.dic) ファイルと接辞 (.aff) ファイルを直接編集して単語を登録することもできますが、これらのファイルの仕様はなかなか複雑なので、気軽には手を出せません。
そこで、簡単なユーザー辞書を使いつつ、その単語に似たような単語を辞書 (.dic) ファイルからモデルとして拾ってきて接辞 (活用形) として認識させる、といった感じです。
- [トレイ アイコンを表示] がオンの状態ですべてのウィンドウを閉じたとき、スペル チェックの無視リストをクリアするようにした
-
ツール バー プラグインがインストールされている状態で、かつ特定の条件下で Windows をシャットダウンしたとき、「無効なポインタ操作」が Mery.log に出力されていたのを修正
Ver 3.4.0 ~ 3.5.8 で、ツール バーを利用したプラグインを導入しているときに、特定の条件下で発生するようでした。プラグイン側での対応は必要ありません。
- [改行を削除] と [行の結合] で、空の行を無視するようにした
- eula.rtf を更新
- その他、細かい修正
3.5.8 (2023-07-24)
-
複数行を選択して 1 列目にカーソルがあるとき、その行を [逆インデント] しないようにした
- [選択範囲の変換] の [インデント] と [逆インデント] を選択範囲がないときも使用できるようにした
- [選択範囲の変換] の [文字コードの切り替え] が [書き換え禁止] のときも有効になっていたのを修正
- [選択範囲の変換] の [Base64 エンコード] が [書き換え禁止] のときも動作していたのを修正
3.5.7 (2023-07-23)
- 折り返しインデントの行頭で下にカーソルを移動したときのカーソル位置がおかしかったのを修正
-
折り返しインデントされた行で上下にカーソルを移動したときにカーソル位置がずれる問題を修正
-
[インデント ガイド] を文字よりもあとに描画するようにした
-
複数行を選択しているときに [逆インデント] が動作しないことがあったのを修正
Ver 3.5.6 で「何も選択していないとき、Shift + Tab キーで [逆インデント] できるようにした」ことによる副作用でした。
-
[水平罫線]、[折り返し線]、[インデント ガイド] の [文字色] に [透明] を指定したとき、[通常] の [文字色] を適用するようにした
- その他、細かい修正
3.5.6 (2023-07-22)
-
[折り返しインデント] に対応
-
[インデント ガイド] に対応
[折り返しインデント] に対応した副産物として、インデント幅の値を有効活用してみました。
-
タブの幅を半角空白の幅を基準に計算するようにした
従来、タブの幅はフォントの平均幅を使用していましたが、プロポーショナル フォントで [インデント ガイド] を表示したときにずれることがあるので仕様変更しました。
メモ帳の場合、Windows 10 まではフォントの平均幅が使用されていましたが、Windows 11 からは半角空白の幅に変更されているようです。また、Visual Studio Code や Sublime Text も同様に半角空白の幅を採用しているようです。
なお、Mery.ini の
[General]
セクションにUseLegacyTabWidth=1
を追記することで、従来の仕様に戻すこともできます。 -
[オプション] の [折り返し線を表示] と [カーソルのある行に水平罫線を表示] を [記号] カテゴリに移動
[折り返しインデント] のオプションを追加したため、スペースの都合でこれらの項目はカテゴリを変更しました。
- それに伴い、[表示] メニューの [記号] に [折り返し線] と [水平罫線] を追加
- [印刷] で [禁則処理を行う] が常に有効になっていたのを修正
- 何も選択していないとき、Shift + Tab キーで [逆インデント] できるようにした
- [すべて検索] を高速化
- マルチ カーソルで [選択範囲の変換] の動作速度を改善
-
マルチ カーソルで編集に時間がかかる場合、中断できるようにした
-
[表示] メニューに [インデント] を追加
[折り返しインデント] を素早く切り替えられるようにするためです。
-
[オプション] の [キーボード] で Alt キーとの組み合わせがボタンのアクセラレータ キーに横取りされていた問題の対策
-
その他、細かい修正
1 行が長いとき、[すべて置換] で [キャンセル] が効かないことがあった問題の対策や、カーソルの数が増えると描画速度が遅くなっていた問題の対策など。
3.5.5 (2023-07-02)
-
Ver 3.5.4 でリストビューにポップアップ メニューを表示するようにした副作用で、項目を編集中のショートカット キーが上書きされてしまったのを修正
項目を編集中にもかかわらず、リストビューのポップアップ メニューのショートカット キーが優先されてました。
-
マーカー バーのポップアップ メニューから [マーカーの設定] を開いたときに該当項目を選択するようにした
マクロ バー、プラグイン バー、外部ツール バーも同じように対応しておきました。
-
マーカー バーのポップアップ メニューに [グループを有効]、[グループを無効] を追加
マーカーの [タイトル] の先頭に
|
を入力すると [グループの始まり] になります。マーカー バーで項目を右クリックすると、[グループを有効]、[グループを無効] を選択できます。 -
[マーカー バーにテキストを表示] がオフのときはヒントに [タイトル] を表示するようにした
-
空のファイルで [読み直し] の [自動選択] を実行したときにステータス バーのエンコーディング表示が [自動選択] になっていたのを修正
-
[改行の挿入]、[行の分割] で 1 行目が改行のみだったときに改行が消えていたのを修正
20 年越しのバグを見つけました。
- メニューの項目を選択した状態からの右クリックで [キーボード ショートカットの割り当て] をできるようにした
-
[ファイル] メニューの最近のファイルの一覧で項目を選択した状態からの右クリックで [開く]、[ピン留めする]、[ピン留めを外す]、[削除]、[このフォルダーから開く]、[エクスプローラーで開く]、[パスのコピー] をできるようにした
今回の新機能、メニューの上にさらにポップアップ メニューを表示できるようになりました。
これができてしまうと [フォント] の履歴や [検索] の履歴などもピン留めしたいといったご要望が予想されますが、[フォント] の履歴は仕組みが違うので対応は難しそうですし、[検索] の履歴はドロップダウン リストなので、今回の方法ではメニューを表示できませんでした。
-
タブの右クリックで [このフォルダーから開く]、[エクスプローラーで開く]、[パスのコピー] をできるようにした
ついでに、タブのポップアップ メニューにも機能を追加しておきました。
- [マクロ バー]、[プラグイン バー]、[外部ツール バー] のボタンのポップアップ メニューをシンプルにした
-
シェブロン メニューの項目を選択した状態からの右クリックでポップアップ メニューを表示できるようにした
たとえば、マーカー バーで項目がバーからはみ出したとき、[>>] ボタンで表示したメニューの項目も右クリックで操作できるようになりました。
-
[検索する文字列] のドロップダウン リストを表示した状態でAlt+Deleteキーを押したときに選択した項目のみ削除するようにした
フォーラム メリー要望 文字列検索のマドが大きすぎて使いづらいです
従来はドロップダウン リストの内容をすべて削除していましたが、選択した項目のみ削除する仕様にしました。すべて削除は、Alt+Deleteキーを押しっぱなしです。
-
[Ctrl + ホイールでフォント サイズを変更] を無効にする隠しオプションを追加
Mery.ini の
[General]
セクションにWheelFont=0
を追記すると、[Ctrl + ホイールでフォント サイズを変更] が無効になります。とりあえず隠しオプションで実装してみましたが、今後、ご要望が多ければ標準のオプションにするかもしれません。 -
Windows 11 のダークモードで特定のリストビューに残像が出る問題の対策
Windows 11 のみ発生する現象で、動作に支障はありませんが、気になったので対策してみました。
-
eula.rtf を更新
- その他、細かい修正
3.5.4 (2023-06-14)
-
マーカーに [タイトル] を指定できる機能を追加
Mery.ini の仕様変更がともないます。マーカーの設定は、初回バージョンアップの場合 (Ver 3.5.4 未満から 3.5.4 へ) は引き継ぎますが、バージョンダウンの場合 (Ver 3.5.4 から 3.5.4 未満へ) は引き継ぎません。
また、Ver 3.5.4 未満で使用していた
[Marker]
セクションは残しているので、バージョンダウンすると Ver 3.5.4 未満のマーカーの設定を復元できます。 -
マーカーの [インポート]、[エクスポート] に対応
マーカーのリストビューを右クリックしてポップアップ メニューから選択できます。
- マーカー バーに複数行のテキストをドラッグアンドドロップできるようにした
- ダークモードでマーカー バーのボタンをドラッグしたときの挿入マークを白っぽくした
- Windows 11 のダークモードでリストビューがチラつくことがあった問題の対策
- リストビューでポップアップ メニューを表示するようにした
- リストビューのステートイメージを連続でクリックしたときの挙動を改善
-
[表示] メニューの [ツール バー] に [マーカー バーにテキストを表示] を追加
マーカーに [タイトル] を指定できるようになりましたが、Windows のツールバーの仕様上、リスト表示 (ビットマップの右側にテキストを含むツールバー) は、テキストを空にしてもボタンの幅が横長になってしまいます。
[マーカー バーにテキストを表示] をオフにすると、リスト表示が解除され、シンプルなボタン表示となります。なお、特定のボタンのみ、リスト表示といったことはできません。
- [マクロ バーのラベルを表示] を [マクロ バーにテキストを表示] に変更
- 32 ビット版の Windows で [外部ツール] の [Microsoft Edge] のパスを自動設定できるようにした
- ダークモードで [Zen モード] を解除したときにタブのスクロールボタンの表示が崩れる問題の対策
-
ダークモードで [全画面表示]、[Zen モード] のときにマクロの Redraw プロパティを使用するとチラつくことがあった問題の対策
-
[選択した範囲のみ] オプションが [すべて検索して選択] にも適用されていたのを修正
- エディターウィンドウをクリックしてアクティブにしたときに一瞬だけ直前のカーソルが見えていたのを修正
-
Ctrl + Alt + ドラッグでルーラーより上部にドロップしたときにマルチカーソルの展開が動作しなかったのを修正
-
[Google で検索]、[Wikipedia で検索] のリンク先を https に修正
- Windows 7 で [マーカー バー] のシェブロンが表示されないことがあった問題の対策
-
その他、細かい修正
3.5.3 (2023-05-25)
-
[すべて検索して選択] の動作が遅くなっていた問題を修正
-
その他、細かい修正
フォーラム ファイルオープン時、タブが見切れた状態になってしまう
アップダウン コントロールが表示されていないときはタブのキャプションの変更をチェックしないことでスムーズに動作するようにしました。
3.5.2 (2023-05-11)
-
[タイプライター スクロール] の [固定スクロール] で↑キーを押したときの動作を修正
-
[検索]、[置換] ダイアログのレイアウトを変更
[検索] と [置換] ダイアログのサイズをちょっと小さくしてみました。なお、ダイアログのサイズは前回、Mery を終了したときのサイズが保存、復元されてしまいます。横幅の最小値は前回より小さくできるようになっているので、必要に応じてダイアログの右端をドラッグして縮めてください。
3.5.1 (2023-05-06)
-
[検索]、[置換]、[ファイルから検索]、[ファイルから置換] ダイアログのレイアウトを変更
[検索] と [置換]、[ファイルから検索] と [ファイルから置換] ダイアログを切り替えたときに項目の位置がある程度固定されていたほうが視認性が向上しそう。あと、Ver 3.5.0 では [置換] ダイアログが縦長でダサかったので。
-
[検索] ダイアログの [すべて検索] で [選択範囲のみ] を検索できるようにした
[検索] ダイアログの [すべて検索] で選択範囲の中から指定した文字列を選択状態にできるようになりました。選択範囲はマルチカーソルにも対応しています。
-
マクロの
document.selection.Find()
、document.selection.Replace()
のフラグにmeFindReplaceSelOnly
を追加。それに伴い、meReplaceSelOnly
は廃止予定[検索] に [選択した範囲のみ] を追加したので定数の名前を変更しました。下位互換性のため
meReplaceSelOnly
も使用できるようにしていますが、マクロで操作を記録した場合、[選択した範囲のみ] はmeFindReplaceSelOnly
で記録されるのでご注意ください。 -
[ファイルから置換] ダイアログから [ファイルから検索] ダイアログに戻れるようにした
[<< 検索] ボタンで [ファイルから検索] ダイアログに戻れるようになりました。
- 右側のペインを閉じたときにスクロールバーの跡が残ることがあった問題を修正
-
ウィンドウを分離した状態でタブを閉じたときにタイトル バーが更新されないことがあった問題を修正
- Ver 3.5.0 から [検索] ダイアログの [検索する文字列] のドロップダウンで Enter キーが利かなくなっていたのを修正
- その他、細かい修正
3.5.0 (2023-04-29)
- あいまい検索に対応
-
Ver 3.3.5 から [選択した範囲のみ] の置換で選択範囲の終端が行末とみなされなくなっていたのを修正
Ver 3.3.5 の鬼雲がフリーズする問題の対策が原因でした。
-
[最近のファイル表示数] を減らしたときに Mery を終了するまでは履歴を保持するようにした
- マクロの ReadSettings、WriteSettings でキーボードの設定を読み書きしていたのを廃止
-
マクロの ReadSettings で引数に INI ファイルを指定できるようにしてみた
editor.ReadSettings("Mery2.ini");
のように指定した INI ファイルから設定を読み込むことができます。制限事項として、ウィンドウの位置やファイルの履歴、キーボードの設定など、一部の項目はサポートしていません。 -
[置換後の文字列] に改行が含まれていたときに変更行の位置がずれていたのを修正
-
[オプション] の [履歴] カテゴリに [最近の検索の表示数] を追加
ディスプレイの解像度が低い場合、検索ダイアログのドロップダウンの項目数が多いと、ドロップダウンが上方向に表示されてしまう問題の対策です。
-
[ファイル] メニューの履歴が 8 個を超えた場合、サブメニューで表示するようにした
[最近のファイル表示数] が多いと [ファイル] メニューが見づらくなってしまうので対策してみました。
- [検索] ダイアログの [検索する文字列] でCtrl+Enterを押したときにビープ音が出ていたのを修正
- [検索] ダイアログの [文末まで検索したら文頭に移動する] をメモ帳にあわせて [折り返しあり] に変更
- [置換] ダイアログ に [折り返しあり] を追加
-
マーカー バーのポップアップメニューに [折り返しあり] を追加
- その他、細かい修正
ダウンロード
導入が簡単なインストーラー版、設定ファイルを外部に作成しないポータブル版、レジストリを一切使用しない ZIP 版を用意しています。
インストーラー版
解凍などの作業が必要なく簡単に使えるインストーラー版です。
Mery Ver 3.5.9 (64 ビット版) インストーラー- 3,514,401 バイト 2023/08/11
- SHA256: dc2c00d5cc325d58aba03cc01788fee50321ee014bb94aebb61191f95c587834
- 対応 OS: Windows 11, 10, 8, 7, Vista (64 ビット)
- 3,106,660 バイト 2023/08/11
- SHA256: 1652e4f3407e54df220cf60ab0e05299d96dd558684cb15379b502c5e41e05d6
- 対応 OS: Windows 11, 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
ポータブル版
インストールは不要。通常の ZIP 版と異なり設定ファイルを外部に作成しないので USB メモリに保存して持ち歩けますし、PC 環境を汚すこともありません。
Mery Ver 3.5.9 (64 ビット版) ポータブル- 4,431,436 バイト 2023/08/11
- SHA256: 440952b825fabedab79f3daa2098820b7c252723db6cb324db788e50e71005e6
- 対応 OS: Windows 11, 10, 8, 7, Vista (64 ビット)
- 3,734,137 バイト 2023/08/11
- SHA256: 1fd595084e88aea2fafa4ed480d1121b2eadc56b8f3cdd942db8796a859ff3b4
- 対応 OS: Windows 11, 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
ZIP 版
アーカイブを解凍するだけですぐに使える ZIP 版です。
Mery Ver 3.5.9 (64 ビット版) ZIP- 4,431,282 バイト 2023/08/11
- SHA256: 074b867f8a6bf302bf56152d499114b81b3e81cde2a1dc52d29b262b446d8cf0
- 対応 OS: Windows 11, 10, 8, 7, Vista (64 ビット)
- 3,733,983 バイト 2023/08/11
- SHA256: d356d660d56a44bd2cc9979c81f2f24a0ba2094f0728e3136094bbd1dc1935ef
- 対応 OS: Windows 11, 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
おわりに
1 月末から開発していた「あいまい検索」ですが、レーベンシュタイン距離の計算が遅く、実用に耐える速度を確保できなかったため実装に 3 か月近くもかかってしまいました。
それでも、ファイルが大きい場合や [最大編集距離] の設定値が大きい場合は速度が遅くなってしまいますが…。
とはいえ、無料のテキストエディターであいまい検索をサポートしているものは少ないと思います。
表記ゆれや誤変換を吸収して検索できるので、小説の執筆やブログ記事のチェックなどにご活用ください。
【New】Echo Pop (エコーポップ) - コンパクトスマートスピーカー with Alexa|ラベンダー
Amazon
Alexa 搭載スマートスピーカーが新登場。コンパクトなのでキッチンや寝室にどうぞ。お手頃価格なので 2 台目の Echo デバイスとしてもアリですね。
広告
Mery の最新版を公開している当サイトや、マクロやプラグイン、構文ファイルやテーマなどをご投稿いただいて、みなさんで共有できるウィキシステム「MeryWiki 」は、現在 ColorfulBox というレンタルサーバーで運営しています。
あいまい検索の詳細
あいまい検索で [類似する文字列に一致する] を有効にした場合、誤字やスペルミスを無視して類似した文字列を検索できます。
2 つの文字列がどれくらい似ているかを求める方法として、Mery では、レーベンシュタイン距離というアルゴリズムを使用しています。
レーベンシュタイン距離とは
レーベンシュタイン距離というのは、簡単に言うと 2 つの異なる文字列を同じ文字列にするのに必要な、文字の挿入、削除、置換の回数のことで、編集距離とも呼ばれます。
たとえば、
エル・プサイ・コンガリィ
と
エル・プサイ・コングルゥ
なら、ガ
をグ
に置換、リ
をル
に置換、ィ
をゥ
に置換の 3 回の操作が必要なので編集距離は 3 です。
リーディング・シュークリーム
と
リーディング・シュタイナー
なら、ー
をタ
に置換、ク
をイ
に置換、リ
をナ
に置換、ム
を削除の 4 回の操作が必要なので編集距離は 4 です。
[類似度] 、[最大編集距離] とは
レーベンシュタイン距離 (以下、編集距離) という言葉の説明が終わったところで、[あいまい検索のオプション] ダイアログ ボックスの [類似度] と [最大編集距離] を見ていきましょう。
類似度とは
2 つの文字列がどのくらい異なっているかは編集距離で表せるということが分かりましたが、それなら項目は [最大編集距離] だけで良いのでは?と思われるかもしれません。
[類似度] がなかった場合を考えてみます。
たとえば、
キンキンに冷えたノンカロリーのドクペ
と
キンキンに冷えたノンカロリーのコーラ
は編集距離が 3 で、似ている文字列と言えそうです。
それでは、
ドクペ
と
コーラ
はどうでしょう?
こちらも編集距離は 3 ですが、似ている文字列とは言えません。
そこで、類似度として1 - 編集距離 ÷ 文字数
を使用します。
キンキンに冷えたノンカロリーのドクペ
とキンキンに冷えたノンカロリーのコーラ
なら、1 - 3 ÷ 18 = 0.83333...
で類似度は 83%、似ている文字列と判断できます。
ドクペ
とコーラ
なら、1 - 3 ÷ 3 = 0
で類似度は 0、似ていない文字列と判断できます。
最大編集距離とは
それなら [類似度] だけで良いのでは?と思われるかもしれません。
[最大編集距離] がなかった場合を考えてみます。
[類似度] を 2/3 (66%) に設定してドクペ
の 3 文字で検索する場合、許容される編集距離は 1 までとなります。
そうすると、検索する文字列が 6 文字なら編集距離は 2 まで、9 文字なら編集距離は 3 まで、99 文字なら編集距離は 33 までと、どんどん増えていってしまいます。
レーベンシュタイン距離は許容する編集距離が大きくなると低速になる傾向があるため、[最大編集距離] で上限を設ける必要があるというわけです。
ダメラウ・レーベンシュタイン距離とは
ところで、Mery では制限ダメラウ・レーベンシュタイン距離というものを使用しています。
ダメラウ・レーベンシュタイン距離では、文字の挿入、削除、置換に加えて、転置、つまり、隣り合う文字の入れ替えを 1 回の操作として数えます。
たとえば、
ふいんき
と
ふんいき
は、レーベンシュタイン距離を使用すると、い
をん
に置換、ん
をい
に置換の 2 回の操作が必要なので編集距離は 2、類似度は 50% となり、似ているとも似ていないとも言えません。
そこで、ダメラウ・レーベンシュタイン距離を使用すると、いん
の転置 (隣り合う文字の入れ替え) で済むので編集距離は 1、類似度は 75% となり、似ている文字列と判断できるわけです。
制限ダメラウ・レーベンシュタイン距離とは
ダメラウ・レーベンシュタイン距離には、制限ダメラウ・レーベンシュタイン距離と (非制限) ダメラウ・レーベンシュタイン距離というものがあります。
制限ダメラウ・レーベンシュタイン距離では、文字列を 2 回以上編集する操作は許容されません。
たとえば、ぽぬ
をぬるぽ
にする場合、ぽぬ
からぽ
を削除してぬ
となり、る
を挿入してぬる
となり、ぽ
を挿入してぬるぽ
となるので、編集距離は 3 です。
しかしながら、(非制限) ダメラウ・レーベンシュタイン距離では、文字列を 2 回以上編集する操作を許容します。
ぽぬ
を転置してぬぽ
となり、る
を挿入してぬるぽ
となるので、編集距離は 2 です。
Mery では速度を優先して、制限ダメラウ・レーベンシュタイン距離を使用しています。
仕様上の制限
あいまい検索に関する仕様、および制限を記載しておきます。
- [あいまい検索] は [正規表現を使用する] と同時に有効にすることはできません。
- [大文字と小文字を区別する] は [検索] ダイアログ ボックスの設定が適用されます。
- 文字を無視する検索では、無視する文字のみの検索はできません。たとえば、[濁点、半濁点を無視する] を有効にすると
゛
のみを検索することはできなくなります。 - 編集距離は全角、半角、サロゲートペアにかかわらず 1 文字として数えます。
- 改行文字をまたいだ検索文字列の強調表示は 1 行目のみとなります。
おわりに
1 月末から開発していた「あいまい検索」ですが、レーベンシュタイン距離の計算が遅く、実用に耐える速度を確保できなかったため実装に 3 か月近くもかかってしまいました。
それでも、ファイルが大きい場合や [最大編集距離] の設定値が大きい場合は速度が遅くなってしまいますが…。
とはいえ、無料のテキストエディターであいまい検索をサポートしているものは少ないと思います。
表記ゆれや誤変換を吸収して検索できるので、小説の執筆やブログ記事のチェックなどにご活用ください。
時をかける少女 [Blu-ray]
角川エンタテインメント
って、おまえ、タイムリープしてね?
Amazon で探す
楽天市場で探す
広告
Mery の最新版を公開している当サイトや、マクロやプラグイン、構文ファイルやテーマなどをご投稿いただいて、みなさんで共有できるウィキ システム「MeryWiki 」は、現在 ColorfulBox というレンタル サーバーで運営しています。