フォーラムの返信を作成しました。
- 作成者投稿
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
画面図を見せていただくか、メールで送っていただけますでしょうか?
また、問題を再現できるできるだけシンプルなマクロを、掲載するかお送りください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
マクロが終了した後、再描画されないでしょうか (元に戻らないでしょうか)?
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
[ツール] メニューの中に [現在の設定のプロパティ] コマンドがあります。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
動作を速くするために、意図的に、タブなどの描画を遅らせています。ビデオカードの種類には関係ありません。何か弊害がありますでしょうか?
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
現在の設定のプロパティでの [ファイル] ページの右下に [リセット] ボタンがあります。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
サンプルは、以下の通りになります。
#language = "v8" function BR(fr) { let batch_list = editor.filters; for (let i = 0; i < fr.length; ++i) { batch_list.AddReplace(fr[i][0], fr[i][1], fr[i][2], fr[i][3]); } document.selection.BatchReplace(batch_list, eeReplaceAll, eeExFindRegexOnigmo); } let fr1 = [ ["西", "にし", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["a", "r", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["b", "s", eeFindReplaceRegExp | eeFindReplaceCase, 0], ]; BR(fr1); let fr2 = [ ["北", "きた", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["c", "t", eeFindReplaceRegExp | eeFindReplaceCase, 0], ]; BR(fr2);
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
以前も書きましたが、こちらで問題を再現するために必要なコードとデータを漏れなく書いてお送りください。詳しくは、こちらをお読みください。
https://ja.stackoverflow.com/help/minimal-reproducible-example
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
snow さんも書かれている通り、これは EmEditor が対応するべき機能ではないと存じております。
コードを関数にまとめる方法でも対応できます。もしサンプルが必要であれば、お知らせください。よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
もちろんマクロでも動作します。こちらではテストしています。不具合だと確信されている場合には、問題が再現できるシンプルなマクロ サンプルを提供してください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
マクロの動作を速くするために、意図的に、タブなどの描画を遅らせています。特に問題はありません。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
この内容が表示される理由は、そのダイアログに書かれている通り、現在のエンコードで保存できない文字が含まれているためです。
特に、Shift-JIS など、エンコードの指定がなければ、現在の設定のプロパティでの [ファイル] ページで [リセット] ボタンをクリックして、リセットすれば、既定で UTF-8 が選択されるようになり、このようなダイアログは表示されなくなります。同様に、[新規作成時] ボタンをクリックして、[リセット] ボタンをクリックして、リセットしてください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
更新が利用可能な状態だと、[更新チェッカー] ウィンドウに、[今すぐインストール] というボタンが表示されます。[今すぐインストール] をクリックすれば、すぐに終了、インストール、再起動になります。
また、プッシュ型を好まれるということでしたら、更新が利用可能になると同時に、通知バルーン チップが EmEditor ウィンドウの右下に表示されて、そこで、[今すぐインストール] のリンクをクリックすることが可能です。
以上のいずれかの方法と意味が異なるのでしょうか?
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
不具合ではありません。
batch_list = editor.filters;
を実行すると、
batch_list
の中身はクリアされます。よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
試しましたがうまく動作しませんでした。
どのように動作しないのか、ご質問を明確化してください。先ほどのコードは例であり、ご自身で発展させる必要があります。
例えば、すべて置換を行いたいのであれば、
eeReplaceAll
を追加する必要があります。さらに、Onigmo を使用されたいのであれば、eeExFindRegexOnigmo
と明示された方がいいです。for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase | eeReplaceAll,eeExFindRegexOnigmo) ) { break; } }
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
連続置換は使えません。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
以下のように書けば可能です。
for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) { break; } }
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
ご要望は理解しました。これについては検討させてください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
1.〔仕様〕ここまで踏み込むのは失礼とは思いますが、ソースコードの実装はシンプルにかつ最良のコード実装になるようにお願いいたします。
もちろんそのようにしています。
理由:バグの出方から気になって気になって仕方がないのと、この機能についてバグなしで安定して動作しないと致命的なため。
「バグの出方」とは何のことをおっしゃっているのか、わからないのですが、検索だけでなくすべての機能においてバグは起こってはいけません。EmEditorの安定性は非常に重要であり、機能の追加よりも安定性の向上が遥かに重要だと考えています。私たちはAzure DevOps上の「Git」リポジトリから3つのパイプラインを用意し、自動テストを実行しています。毎日数回ソースコードを変更し、コミットすると自動的にテストが実行されるようになっています。巨大なファイルを使用した大規模なテストは毎晩数時間かけて自動実行しています。また、最近のバージョンではクラッシュレポートを受け付ける機能も追加しました。これは非常に効果的であり、ユーザー様からクラッシュレポートが送信されると私の元にすぐに通知が届き、その日のうちに問題を見つけ修正することができます。もちろん、バグは避けるべきですが、テスト漏れやバグがリリースに残ることもあるかもしれません。完璧なソフトウェアは存在しません。しかし、バグが見つかっても迅速に対応することでユーザー様の信頼を得ていると思います。もしかすると、頻繁な更新と多くのバグ修正があるため、そのように感じられているかもしれませんが、バグを放置するよりも更新を提供する方がユーザー様のためになるのではないでしょうか。
2.〔仕様〕正規表現本来のregexオプションのs, mを明示的に使用できるようにしてほしい(デフォルトはm)。
[高度] ダイアログの [正規表現「.」が改行コードに一致することができる] オプションがこれ相当します。
3.~10. については検討します。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
さきほど公開した v23.1.901 で対応いたしました。
https://jp.emeditor.com/forums/topic/emeditor-v23-2-preview-23-1-901/
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
さきほど公開した v23.1.901 で対応いたしました。
– [高度] ダイアログ ボックスに [次を検索/前を検索で重ならない文字列のみ一致する] チェック ボックスを追加しました。
https://jp.emeditor.com/forums/topic/emeditor-v23-2-preview-23-1-901/
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
これは、EmEditor の問題ではなく、正規表現の質問になります。正規表現のサイトでご確認ください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
先ほど、v23.1.1 を公開しました。お試しください。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
そのようになります。
よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
マクロの 2746 行目の
BatchReplace
の直後、Find
で範囲を選択するところがあります。ここでどの文字列も一致しないため、選択範囲は空になります。2826行目のBatchReplace
は、eeFindReplaceSelOnly
が指定されているため、選択範囲の置換になります。ところが、選択範囲が無いため、本来は何も置換できないことになりますが、選択範囲が無いのにもかかわらず置換しようとするため、前にも書いたようにめ、予期しない動作が発生しているわけです。この問題はまもなく公開する次のバージョンで改善します。空の選択範囲に対して置換を実行しようとしたとき、エラーとしてマクロを停止せずに、何もしないで制御を次に移すことにします。結論は、選択範囲が
document.selection.Collapse();
で解除されないのではなく、正しく解除されています。しかし、前にも書いたように、空の選択範囲に対して置換を実行しようとしたため、正しく動作していないわけです。私が少し前に書いた発言 #31473 の通りです。よろしくお願いいたします。
Yutaka Emura
Keymasterいつもお世話になっております。江村です。
次のバージョンですぐにツール チップを閉じるようにします。
ご意見ありがとうございます。今後もよろしくお願いいたします。
- 作成者投稿