検索・置換ダイアログの利便性向上と履歴管理の仕様改善のご提案
-
win11 x64, Mery 3.8.6 (portable) を愛用させていただいております。
いつも開発ありがとうございます。
普段から非常に多機能で強力な正規表現エンジンに助けられておりますが、今回、検索・置換機能について、操作性と保守性の観点からいくつか改善の要望をまとめさせていただきました。
1. 検索・置換ダイアログへの「履歴クリアボタン」の追加
現状、履歴の削除はオプション画面から行う仕様ですが、検索・置換ダイアログ内にも「履歴クリア」ボタンがあると、作業中に画面を切り替えずその場で履歴を整理でき、効率的だと感じます。・検索ダイアログ:「検索履歴をクリア」ボタン
・置換ダイアログ:「検索履歴をクリア」および「置換履歴をクリア」ボタン2. 履歴の個別編集・管理機能の追加
一括クリアだけでなく、不要な履歴だけを選んで削除したり、特定の履歴を編集して再利用したりできる「履歴リスト(編集可能)」があると、より高度な作業にも対応しやすくなると考えます。3. 履歴管理の別ファイル化のご提案(技術的提案)**
ポータブル版を利用しているため現在、設定は `Mery.ini` に集約されているのだと思われますが、検索・置換履歴のような流動的なデータまでINIに含めるとファイルが非常に肥大化してしまいます。
(レジストリ管理であると推測できるインストーラー版であっても、いずれにせよ履歴データの別ファイル化は保守性の観点から「マスト」な設計ではないかと感じております。)現在、INI全体の行数が非常に多く(私の環境では1700行を超えており)、ポータブル運用や保守の観点から以下の懸念を感じております。
・安全性の懸念:一般ユーザーが履歴を消すためにINIファイルを直接編集するのは誤操作のリスクが大きく、設定破損を招きかねません。
・管理効率:設定項目と流動的な履歴データが混在していることで、書き込み回数の分散(最適化)の余地があると考えます。`Mery.his` が各ファイルの編集状態を保持しているのと同様に、検索・置換履歴も外部ファイルへ分離いただければ、INIの肥大化を防ぎ、ユーザー側での柔軟な管理やバックアップも容易になるのではないでしょうか。
4. 補足:正規表現と「単語単位」の併用について
現在は「正規表現」使用時に「単語単位」が選択不可となりますが、例えば「改行」や「タブ」といった制御文字のみを対象にするような、比較的シンプルな置換を行うケースも多くあります。現状の高機能な正規表現エンジンとは別に、「単語単位」のチェックボックスと併用できるような簡易的な検索モード(あるいは、境界判定を含む検索)が選択できるようになると、より幅広い作業で効率的に検索・置換が行えるようになると感じております。
既存の「高機能な正規表現」を損なうことなく、日常的な編集作業において、より直感的に絞り込み検索が行えるような柔軟なUIを期待しております。
技術的に難しい点も多々あるかと存じますが、Meryをより堅牢で使いやすいツールにするための将来的な検討材料としていただければ幸いです。
長文となりましたが、何卒ご検討をお願いいたします。
| alchemisty | 返信 -
Mery をお試しいただきありがとうございます。
また、検索・置換機能について丁寧なご提案をいただきありがとうございます。
順に回答させていただきます。
> 1. 検索・置換ダイアログへの「履歴クリアボタン」の追加
> 2. 履歴の個別編集・管理機能の追加検索・置換ダイアログでは、[検索する文字列] / [置換後の文字列] のコンボボックス右端の「▼」をクリックして履歴リストを表示した状態で、任意の項目を選択 (マウスカーソルを項目の上に移動し、クリックはせず) したうえで Alt + Del を押すと、その項目だけを削除できます。
また、Alt + Del を押し続けることで、まとめて削除することもできます。
履歴を編集しながら使いたいというご要望については、現時点ではそれほど多くはいただいていませんが、同じような機能を持つエディターもあるので、発想としてはよく分かります。
ただ、今の Mery では「履歴は軽く使えて、必要ならその場でサッと消せる」くらいの位置付けにしていて、専用の編集機能までは用意していません。
> 3. 履歴管理の別ファイル化のご提案(技術的提案)**
設定と履歴を分ける設計は、構造としては分かりやすくなるメリットはあると思います。
ただ、Mery ではポータブル利用も含めて「設定と履歴をまとめてシンプルに扱う」という方針にしています。
また、インストーラー版でも設定保存にレジストリは使っていません。(インストール情報など一部を除きます)
> ・安全性の懸念:一般ユーザーが履歴を消すためにINIファイルを直接編集するのは誤操作のリスクが大きく、設定破損を招きかねません。
この点についてはまさにそのとおりで、履歴を直接 INI で編集するような使い方は想定しておらず、すべて画面操作で完結する前提です。
> ・管理効率:設定項目と流動的な履歴データが混在していることで、書き込み回数の分散(最適化)の余地があると考えます。
履歴の書き込みはリアルタイムではなく、主に終了時にまとめて保存しています。そのため書き込み頻度はそこまで問題になりにくいかなと考えています。
また、その性質上、途中で電源が落ちた場合などは直前の履歴が保存されないこともあります。
>
Mery.hisが各ファイルの編集状態を保持しているのと同様に、検索・置換履歴も外部ファイルへ分離いただければ、INIの肥大化を防ぎ、ユーザー側での柔軟な管理やバックアップも容易になるのではないでしょうか。検索・置換履歴については保存件数に上限を設けているので、無限に増えていくような構造にはなっていません。
またバックアップについても、Mery.ini を保存していただければ設定と履歴の両方を復元できます。
Mery.his はカーソル位置やブックマークのように、ファイル数に応じて増えていく性質のものなので、別ファイルにしています。
> 4. 補足:正規表現と「単語単位」の併用について
Mery で使用している正規表現エンジン (鬼車 / 鬼雲) には「単語単位」というオプションはありませんが、代わりに
\b(単語境界) を用いることで同等の指定が可能です。例:
\bword\bまた、「正規表現」と「単語単位」を同時に使う設計については、条件が複雑になってしまうため、今のところは排他的な扱いにしています。
> 「改行」や「タブ」といった制御文字のみを対象にするような、比較的シンプルな置換を行うケースも多くあります。
このあたりのニーズも理解しています。
正規表現を使わずに、改行やタブなどのエスケープシーケンスだけを扱えるような、少し軽い検索モードのようなものについては、以前から検討はしています。
ただ、検索・置換全体の仕様に関わるところなので、すぐに対応できるものではないのが正直なところです。
> 技術的に難しい点も多々あるかと存じますが、Meryをより堅牢で使いやすいツールにするための将来的な検討材料としていただければ幸いです。
ご意見ありがとうございます。
Mery は趣味で開発しているもので、技術的に面白そうならやってみる、というゆるいスタンスでやっています。ただ、使いやすさについては単純に機能を増やせばいいという話でもなく、いつも悩みどころです。
それから堅牢性については、正直なところ弱い部分もあります。個人開発のフリーソフトということで、
- デジタル署名なし
- サポートなし
- マニュアルも積極的には更新していない
といった事情もあります。
そのため、まずは Mery を試していただいている段階という前提で、参考までに似た用途のエディターも挙げておきます。
検索・置換履歴をしっかり管理できるエディターとしては、サクラエディタさん。
正規表現と「単語単位」を併用できるエディターとしては、秀丸エディタさん、EmEditor さん、サクラエディタさん。
正規表現なしで改行やタブを扱える (エスケープシーケンス系の機能) エディターとしては、EmEditor さんなどがありますので、用途に応じて検討してみてください。
| Kuro | 返信 -
いくつか使えそうな機能を思い出したので、補足させていただきますね。
> 2. 履歴の個別編集・管理機能の追加
履歴の編集についてですが、直接そのための機能というわけではありませんが、履歴リストを表示した状態で Alt + Del を押すことで、項目を削除できることは前回お伝えしました。
それに加えて、Alt + C で履歴全体を改行区切りの文字列リストとしてクリップボードへコピーし、Alt + V で貼り付けることもできます。(置き換えではなく、重複を除外して追加されます)
この機能を使えば、テキストエディターなどで履歴を編集してから戻す、といった使い方も可能かと思います。
> 現在は「正規表現」使用時に「単語単位」が選択不可となりますが、例えば「改行」や「タブ」といった制御文字のみを対象にするような、比較的シンプルな置換を行うケースも多くあります。
正規表現を使わずに「改行」や「タブ」を含める方法ですが、検索ダイアログの [検索する文字列] の右端にある「>」ボタンから [複数行] を有効にできます。
すると、[検索する文字列] や [置換後の文字列] が複数行エディットになります。
Enter キーや Tab キーにはそれぞれ別の機能が割り当てられているため直接入力はできませんが、Ctrl + Enter で改行、Ctrl + Tab でタブを入力できます。
ただ、実際に試していて気付いたのですが、改行を含む履歴の場合、今回ご紹介した Alt + C / Alt + V による履歴の保存・復元では物理的な改行として扱われてしまいます。
この点については問題がありそうなので、改善方法を検討してみたいと思います。
| Kuro | 返信