フォーラムの返信を作成しました。
- 作成者投稿
- Yutaka Emuraキーマスター
いつもお世話になっております。江村です。
試しましたがうまく動作しませんでした。
どのように動作しないのか、ご質問を明確化してください。先ほどのコードは例であり、ご自身で発展させる必要があります。
例えば、すべて置換を行いたいのであれば、
eeReplaceAll
を追加する必要があります。さらに、Onigmo を使用されたいのであれば、eeExFindRegexOnigmo
と明示された方がいいです。for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase | eeReplaceAll,eeExFindRegexOnigmo) ) { break; } }
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
連続置換は使えません。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
以下のように書けば可能です。
for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) { break; } }
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
ご要望は理解しました。これについては検討させてください。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
1.〔仕様〕ここまで踏み込むのは失礼とは思いますが、ソースコードの実装はシンプルにかつ最良のコード実装になるようにお願いいたします。
もちろんそのようにしています。
理由:バグの出方から気になって気になって仕方がないのと、この機能についてバグなしで安定して動作しないと致命的なため。
「バグの出方」とは何のことをおっしゃっているのか、わからないのですが、検索だけでなくすべての機能においてバグは起こってはいけません。EmEditorの安定性は非常に重要であり、機能の追加よりも安定性の向上が遥かに重要だと考えています。私たちはAzure DevOps上の「Git」リポジトリから3つのパイプラインを用意し、自動テストを実行しています。毎日数回ソースコードを変更し、コミットすると自動的にテストが実行されるようになっています。巨大なファイルを使用した大規模なテストは毎晩数時間かけて自動実行しています。また、最近のバージョンではクラッシュレポートを受け付ける機能も追加しました。これは非常に効果的であり、ユーザー様からクラッシュレポートが送信されると私の元にすぐに通知が届き、その日のうちに問題を見つけ修正することができます。もちろん、バグは避けるべきですが、テスト漏れやバグがリリースに残ることもあるかもしれません。完璧なソフトウェアは存在しません。しかし、バグが見つかっても迅速に対応することでユーザー様の信頼を得ていると思います。もしかすると、頻繁な更新と多くのバグ修正があるため、そのように感じられているかもしれませんが、バグを放置するよりも更新を提供する方がユーザー様のためになるのではないでしょうか。
2.〔仕様〕正規表現本来のregexオプションのs, mを明示的に使用できるようにしてほしい(デフォルトはm)。
[高度] ダイアログの [正規表現「.」が改行コードに一致することができる] オプションがこれ相当します。
3.~10. については検討します。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
さきほど公開した v23.1.901 で対応いたしました。
https://jp.emeditor.com/forums/topic/emeditor-v23-2-preview-23-1-901/
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
さきほど公開した v23.1.901 で対応いたしました。
– [高度] ダイアログ ボックスに [次を検索/前を検索で重ならない文字列のみ一致する] チェック ボックスを追加しました。
https://jp.emeditor.com/forums/topic/emeditor-v23-2-preview-23-1-901/
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
これは、EmEditor の問題ではなく、正規表現の質問になります。正規表現のサイトでご確認ください。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
先ほど、v23.1.1 を公開しました。お試しください。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
そのようになります。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
マクロの 2746 行目の
BatchReplace
の直後、Find
で範囲を選択するところがあります。ここでどの文字列も一致しないため、選択範囲は空になります。2826行目のBatchReplace
は、eeFindReplaceSelOnly
が指定されているため、選択範囲の置換になります。ところが、選択範囲が無いため、本来は何も置換できないことになりますが、選択範囲が無いのにもかかわらず置換しようとするため、前にも書いたようにめ、予期しない動作が発生しているわけです。この問題はまもなく公開する次のバージョンで改善します。空の選択範囲に対して置換を実行しようとしたとき、エラーとしてマクロを停止せずに、何もしないで制御を次に移すことにします。結論は、選択範囲が
document.selection.Collapse();
で解除されないのではなく、正しく解除されています。しかし、前にも書いたように、空の選択範囲に対して置換を実行しようとしたため、正しく動作していないわけです。私が少し前に書いた発言 #31473 の通りです。よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
次のバージョンですぐにツール チップを閉じるようにします。
ご意見ありがとうございます。今後もよろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
キャプチャー扱いにして使うのがいいと思います。
動作が無駄に重くなると思います。
とありますが、実際に試してください。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
私がご質問の意味が理解できていないので、こんなにたくさんコメントを書いていただいても無駄になります。まずは、上にも書いたように、何がどのように問題なのか、できるだけシンプルなサンプルとコードを示していただき、期待する動作と実際の動作の両方を示していただけますでしょうか?
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
EmEditor では、拡張子毎に異なる設定は、この [設定] を使い分けるというデザインになっています。その方法に慣れていただけると幸いです。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
(?<!va)Script
は、私の環境では、問題は再現しませんでした。
(?<=♂.*?)。
は、
.*?
の部分が固定長でないため、構文エラーになります。詳しくは、Boost.Regex または Onigmo のドキュメントをお読みください。よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
CSS HTML Validator の開発者に問い合わせたところ、CSS Nesting にはまだ対応していないという話です。これは、CSS HTML Validator v24.01 で優先度を高くして対応したいということでした。しかし、実際に CSS Nesting に対応しているブラウザは 80% ほどなので、プロダクションではまだ使用されない方がいいそうです。
https://caniuse.com/css-nesting
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
わかりにくくて申し訳ありません。.jsee のファイルだけ、自動バックアップを指定されたいのでしょうか? だとすると、[設定の定義] で新規作成するのではなく、まず、JavaScript for EmEditor の設定を選択します。そして、その設定のプロパティで、[バックアップ] ページを選択して設定してください。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
ご質問の件については、検討いたします。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
[ツール] メニューの [設定の関連付け] では、ソフトウェア自体の関連付け、および、設定の対象にするファイルとしての拡張子の両方を指定できます。
1. まず、[ツール] メニューの [設定の定義] で、[新規作成] ボタンをクリックして、設定を新規作成します。
2. 作成した設定に対して、プロパティを選択し、自動保存などの設定を行います。
3. [ツール] メニューの [設定の関連付け] で、[新規作成] ボタンをクリックして、新しい設定と指定する拡張子の関連付けを行います。
以上で、指定する拡張子の関連付けを行うことができます。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
最終行が、
document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);
だとすると、選択範囲があるかどうかは関係せず、文書全体に対して置換を行うことになります。
私の読解力が弱くご質問の意味がよくわからなくて申し訳ないのですが、何がどのように問題なのか、できるだけシンプルなサンプルとコードを示していただき、期待する動作と実際の動作の両方を示していただけますでしょうか?
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
状況、原因がわかりました。
document.selection.Collapse();
の後、選択範囲は解除されます。それは確認いたしました。問題は、その後、
document.selection.BatchReplace(batch_list,eeFindReplaceSelOnly | eeReplaceAll,eeExFindRegexOnigmo);
というように選択範囲のみの置換を行うということ自体、使い方が間違っていることです。選択範囲が無いのに、選択範囲のみの置換を行うことはできません。本来ですと、ここでエラーが発生してマクロの動作が停止するはずですが、エラーにならずにマクロが継続してしまったことが原因であり不具合でした。これについては次に公開するバージョンで、マクロを停止するよう修正いたします。
よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
動画をお送りいただき、ありがとうございます。問題の現象は、こちらでは再現できませんでした。グラフィック カードやマウスは何をお使いでしょうか?
EmEditor で、設定のプロパティやカスタマイズで、すべてのページを選択すると、それだけ多くの GUI ハンドルを消費します。その違いはありますが、それが原因で、ご指摘のような問題が発生することは、通常は考えにくいです。おそらく、何か他の設定が関係しているのだと思います。[カスタマイズ] ダイアログの [ウィンドウ] ページで、ダイアログ ボックスのフォントは変更されていないでしょうか? もし変更されていたら、[リセット] をクリックして既定に戻してください。
マウスツール(ロジクール)をお使いだそうですが、それをアンインストールしてお試しください。ウィルス対策ソフトも、一時的に無効にして、問題が改善しないかお試しください。
また、Windows の設定のマウス、またはコントロール パネルの [マウスのプロパティ] で、何か設定を変えていないでしょうか? 画面図は、以下のリンクを参考にしてください。
https://www.sony.com/articleimage/servlet/servlet.FileDownload?file=0155F000007WZ4mQAG
特に、[ポインターの軌跡を表示する] がチェックされていないですか? もしチェックされていたらこれを無効にしてお試しください。
さらに、デバイス マネージャーで、マウスのドライバ、およびグラフィック ドライバを最新に更新できないかお試しください。マウス ドライバを更新するには、次の手順に従ってください。
1. デバイスマネージャを開きます。[スタート]ボタンを右クリックし、[デバイスマネージャ]をクリックします。
2. デバイスマネージャウィンドウで、[マウスとその他のポインティングデバイス]を展開します。
3. リスト内のマウスデバイスを見つけて、右クリックし、[ドライバーソフトウェアの更新]をクリックします。
4. [ドライバーソフトウェアの更新]ウィンドウが表示されます。ここで、以下のいずれかの方法を選択します。
– [自動的に検索してインストールする]をクリックして、Windowsが最新のドライバをインターネットからダウンロードしインストールする。
– [コンピューター上のドライバーソフトウェアを参照してインストールする]をクリックし、ローカルに保存している最新のドライバを選択する。
5. 上記の手順でドライバの更新が完了しました。次に、グラフィックドライバを更新する方法について説明します。
1. デスクトップで右クリックし、表示されるメニューから[デバイスマネージャ]をクリックします。
2. デバイスマネージャウィンドウで、[ディスプレイアダプター]を展開します。ここにグラフィックカードが表示されます。
3. グラフィックカードを右クリックし、[ドライバーソフトウェアの更新]をクリックします。
4. [ドライバーソフトウェアの更新]ウィンドウが表示されます。ここで、以下のいずれかの方法を選択します。
– [自動的に検索してインストールする]をクリックして、Windowsが最新のドライバをインターネットからダウンロードしインストールする。
– [コンピューター上のドライバーソフトウェアを参照してインストールする]をクリックし、ローカルに保存している最新のドライバを選択する。
5. 上記の手順でグラフィックドライバの更新が完了しました。以上が、Windows 10でマウスドライバとグラフィックドライバを更新する方法です。ただし、ドライバの更新は慎重に行ってください。間違ったドライバをインストールすると、互換性の問題やパフォーマンスの低下が起きる可能性があります。必要なドライバはデバイスのメーカーウェブサイトから入手し、推奨される方法で更新してください。
以上を確認していただいた上で、まだ問題が発生する場合、もしよろしければ、大変お手数ですが、次のような手順を行っていただけると幸いです。
1. EmEditor で [ツール] メニューの [インポートとエクスポート] を選択し、[すべての設定をレジストリ ファイルにエクスポート] を選択してください (ただし、ポータブル版の場合は、[すべての設定を INI ファイルにエクスポート] を選択してください)。
2. [ツール] メニューの [すべてのコマンド] – [ツール] – [すべての設定をリセット] を選択します。もし、これで設定がリセットされない場合には、一度、EmEditor をアンインストールし、アンインストールの最中、設定を保存するかどうかの質問には「いいえ」を選択します。そして、再度インストールします。
3. これで問題が解決した場合には、エクスポートしたファイルのすべて (サブ フォルダ AppData を含む) を zip に圧縮して、私宛に送っていただければ幸いです。
4. [ツール] メニューの [インポートとエクスポート] を選択し、エクスポートしたファイルをインポートしていただければ、元の設定に戻ります。
どうぞよろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
遅くなり申し訳ありません。
EmEditor v23.1.901 以降では、\Q~\E にも対応いたします。よろしくお願いいたします。
Yutaka Emuraキーマスターいつもお世話になっております。江村です。
お送りいただいたマクロ ファイルの最終行は、
document.selection.BatchReplace(batch_list, eeReplaceAll,eeExFindRegexOnigmo);
となっていましたが、これだと文書全体に対して置換を行うため、期待した通りの動作ということになります。もし、選択範囲のみで置換を行いたい場合には、
document.selection.BatchReplace(batch_list,eeFindReplaceSelOnly | eeReplaceAll,eeExFindRegexOnigmo);
というように、
eeFindReplaceSelOnly
フラグを追加指定する必要があります。よろしくお願いいたします。
- 作成者投稿