1 件の投稿を表示中 (合計 8 個)
  • 作成者
    投稿
  • #22602
    ent
    参加者

    EmEditor v15.9.0 beta 1 64bit を使っています。

    置換を行った場合に
    [元に戻す、またはやり直すデータが利用可能ではありません。] というダイアログが表示されることがありますが、
    元に戻せないならば 置換操作を行いたくない、つまり「キャンセル」と思っても 現状ではすでに置換が行われており「OK」しか押せません。

    要望、質問が2点ほどあります

    1点目:操作の結果が 元に戻せないような状況の場合にその操作を実行していない状況に戻すことはできないでしょうか。

    2点目:このメッセージが最近よく出るようになりました。 頻度を下げるための設定はどこかにありますか?(単なるメッセージの非表示ではなくて、 元に戻せる処理の許容範囲を広げるような設定についてです)。

    なお、以下の置換操作をすると確実に発生します。

    14文字 が4000行 連続しているテキストデータに対して以下の正規表現で置換を実施

    検索する文字列
    (.*)\n

    置換する文字列
    \1|

    以上、ご確認よろしくお願いいたします。

    #22607
    Yutaka Emura
    キーマスター

    ent 様

    いつもお世話になっております。江村です。

    v15.8.3 にて、元に戻す情報が非常に大きい場合 (巨大 CSV ファイルの CSV の変換コマンドなど)、異常終了する可能性がある不具合を修正しましたが、その修正のため、このようなメッセージが表示されるようになりました。設定のプロパティの [基本] タブで、[元に戻す最大回数] に大きな数を入力していただければ、このメッセージは表示されなくなります。例えば、20,000個の置換文字列があったとすると、ここに20,001 以上が設定されていれば、このメッセージは表示されなくなります。

    「実行していない状況に戻すこと」については、調べさせていただきます。

    どうぞよろしくお願いします。

    #22611
    ent
    参加者

    [元に戻す最大回数] には10000が設定されていました。これが初期値ですね。
    ここの数値をとりあえず2倍の20000として、以下の置換をしたところ [元に戻す、またはやり直すデータが利用可能ではありません。] というメッセージは出てこなくなりました。

    ・14文字 が4000行 連続しているテキストデータに対して以下の正規表現で置換を実施
    ・検索する文字列
    (.*)\n
    ・置換する文字列
    \1|

    ただ、江村様のおっしゃる「例えば、20,000個の置換文字列があったとすると、ここに20,001 以上が設定されていれば、このメッセージは表示されなくなります。」のたとえというか、目安が全然理解できません。
    今回私が例示した上記の置換はいったい何個の置換文字列に相当するのでしょうか?計算の仕方が分かりません。

    別の言い方にすると、[元に戻す最大回数] を20000にして 私の例示した置換後、元に戻すことができています。
    CTRL+Zを一回操作するだけで最初の4000行の文字列に戻りました。 [元に戻す最大回数] で換算するとこの1回のCTRL+Zは何回分に相当するのでしょうか。

    EmEditorの内部的なことはユーザーには分からないのですから、外部から見て分かりやすい指標に換算していただけると嬉しいです。
    もしくは、どれだけのやり直し回数を消費しているのかを目に見える形で数値として表示することはできますか?そうなっていれば、回数設定の目安にできます。

    以上、よろしくお願いいたします。

    #22616
    Yutaka Emura
    キーマスター

    ent 様

    いつもお世話になっております。江村です。

    先ほど公開した v15.9.0 beta 3 で、このメッセージ ボックスが表示された後、[元に戻す] ボタンを選択して、元に戻すことができるようになりました。

    また、ステータス バーに元に戻すバッファのサイズが表示できるようになりました。

    ご意見ありがとうございました。

    #22619
    ent
    参加者

    江村様

    いくつかの機能追加ありがとうございます。
    「元に戻すバッファのサイズ」が見れるようになり、様子が前より分かるようになりました。
    一点些細なことですが、ステータスバーに元に戻すバッファのサイズを表示しているときに、置換操作などをして数値の桁数が変わった時にステータスバーの表示が追従せずに
    表示が見切れてしまいます。自動的に数値の幅を調節可能でしょうか。

    もう一点ですが
    「元に戻すデータのサイズが、元に戻すためのバッファのサイズを超えているため、元に戻すことができなくなります。本当に継続しますか?」
    の後で出てくる選択しですが
    [継続する(C)] [元に戻す] の   「元に戻す」は違和感があります。
    EmEditorの実装としては本当に元に戻しているのかもしれませんが、私は [継続する(C)] [継続しない] とか [継続する(C)] [キャンセル] などがしっくりきます。
    「元に戻す」だと、すでに何らかの処理が行われてしまって、それを巻き戻すイメージになります。
    それだと [継続する(C)](これから何らかの処理をする) というメッセージとつじつまが合わなくなります。

    さらにもう一点
    上記の「元に戻す」(イメージ的にはキャンセル)を実施したときに
    ステータスバー左下に 「すべての文章に (検索単語)は見つかりませんでした」と表示されますが、これも違和感があります。 何も行っていないことにするわけですから、何も表示が変わらないか、「操作はキャンセルされました」あたりが適当かと思います。

    もう一つ #22602 で触れた
    14文字 が4000行 連続しているテキストデータに対して以下の正規表現で置換を実施
    検索する文字列
    (.*)\n
    置換する文字列
    \1|
    の置換を実行してバッファーの数値の増加を見ましたが
    バッファー数値7の状態で置換実施したところ
    ・4000個置換されました
    ・バッファー数値が7から12007に増加しました。(バッファー上限は20001をセットしました)
    この直後に Ctrl+Zでやり直しをしたところ置換前のバッファー数に戻りました。

    再度同じ置換をし、バッファー数が 12007/20001 と表示されたとこで
    この後で、検索する文字列を ドット(正規表現)
    .
    置換する文字列を
    |
    としたところ
    「元に戻すデータのサイズが、元に戻すためのバッファのサイズを超えているため、元に戻すことができなくなります。本当に継続しますか?」
    に対して [継続する(C)] を選択しました。
    ・60000個置換されました
    ・バッファー数 72001/20001 と表示されました。→ ここがかなり違和感を覚えました。

    この状態で Ctrl+Zを繰り返し実施すると、バッファーが0に戻るまで実施できました。 0/20001 。
    元に戻せなくなると警告されて [継続する(C)] を選んだにも関わらず元に戻せることに違和感があります。 この辺りは動作改修されたのでしょうか。

    以上、ご確認いただけますか。

    #22625
    Yutaka Emura
    キーマスター

    ent 様

    いつもお世話になっております。江村です。

    実は、元に戻すバッファのサイズには、かなり大きな値 (1億程度) を指定しても、利用可能メモリが充分にあれば問題はありません。

    そこで、使い勝手を検討した結果、次のベータ版では、この元に戻すバッファのサイズの設定を廃止し、利用可能なメモリが非常に少なくなった場合にだけ、元に戻す情報が利用できなくなるよう改正します。

    どうぞよろしくお願いします。

    #22626
    ent
    参加者

    江村様

    回答ありがとうございます。やはりそうでしたか。

    元に戻すバッファの数値も見る必要が無くなりそうですね。
    元に戻す情報が利用できなくなる動作についてですが、直前の処理がやり直しできないような方法ではなくて 最初のほうから消していくような動きにすることは可能でしょうか。

    #22627
    Yutaka Emura
    キーマスター

    ent 様

    いつもお世話になっております。江村です。

    当然、元に戻す情報が利用できなくなる場合、最初のほうから消していくようになっています。一回の操作で、非常に大きな情報を扱う場合には、その操作を含めてすべての情報が消えるようになります。

    どうぞよろしくお願いします。

1 件の投稿を表示中 (合計 8 個)
  • このトピックに返信するにはログインしてください。