1 件の投稿を表示中 (合計 8 個)
  • 作成者
    投稿
  • #10400
    匿名
    休止中

    例えば、「日付を入れて、数行の空行を追加して、日付の直下にカーソルを移動する」というような、複数行のスクリプトを実行して、UNDO しようとすると、CTRL-Z を何度も押す必要があると思うのですが、これが一回の CTRL-Z で UNDO できるととても便利です。
    私が、知らないだけで、もうあるのかもしれませんが。
    いかがでしょう。

    #10401
    Yutaka Emura
    キーマスター

    psum 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    マクロだと、確かに複数回の「元に戻す」を行うことになります。スニペットだと、一回で元に戻ったりします。
    具体的に、どのようなことを行いたいか書いていただければ、もっといい方法が見つかると思いますので、教えていただけると幸いです。

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

    #10402
    匿名
    休止中

    >具体的に、どのようなことを行いたいか書いていただければ、もっといい方法が見つかると思いますので

    超具体的には、次のようなマクロで、日付を自動挿入するようにしているのですが、

    myNow = new Date();
    myYear = myNow.getYear()
    myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
    myMonth = myNow.getMonth () + 1;
    myDate = myNow.getDate ();
    myDay = myNow.getDay ();
    myHours = myNow.getHours ();
    myMinutes = myNow.getMinutes();
    mySeconds = myNow.getSeconds();
    myDateTime = ""; myDateTime += myYear4 + "/";
    if ((myMonth + "").length < 2) { myDateTime += "0"; } myDateTime += myMonth + "/";
    if ((myDate + "").length < 2) { myDateTime += "0"; } myDateTime += myDate;
    myaWeekDay = new Array("日","月","火","水","木","金","土");
    myDateTime += "(" + myaWeekDay[myDay] + ")";
    if ((myHours + "").length < 2) { myDateTime += "0"; } myDateTime += myHours + ":";
    if ((myMinutes + "").length < 2) { myDateTime += "0"; } myDateTime += myMinutes + ":";
    if ((mySeconds + "").length < 2) { myDateTime += "0"; } myDateTime += mySeconds + " ";
    document.selection.StartOfLine();
    document.selection.NewLine(1);
    document.write("——————————————————————————");
    document.selection.NewLine(1);
    document.write(myDateTime);
    document.selection.EndOfLine();
    document.selection.NewLine(10);
    document.selection.LineUp(0, 9);
    document.write("・");

    これを UNDO しようとすると CTRL-Z を 14 回押さなくてはなりません。
    これが一回の CTRL-Z で済むようなマクロの書き方とか、コマンドとかがあれば良いのではないかと思います。
    例えば、「一括 UNDO スタート」と「一括 UND エンド」のようなコマンドがあるとかいうことでしょうか。

    #10403
    Yutaka Emura
    キーマスター

    psum 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    確かに、マクロだと1回の「元に戻す」で戻らないですね。
    スニペットで、「スニペットの新規作成」を行い、以下のように、マクロを `# … ` で囲ってテキストにしておくと、1回の「元に戻す」で戻ります。この方法でよろしければお試しください。

    `# myNow = new Date();
    myYear = myNow.getYear()
    myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
    myMonth = myNow.getMonth () + 1;
    myDate = myNow.getDate ();
    myDay = myNow.getDay ();
    myHours = myNow.getHours ();
    myMinutes = myNow.getMinutes();
    mySeconds = myNow.getSeconds();
    myDateTime = ""; myDateTime += myYear4 + "/";
    if ((myMonth + "").length < 2) { myDateTime += "0"; } myDateTime += myMonth + "/";
    if ((myDate + "").length < 2) { myDateTime += "0"; } myDateTime += myDate;
    myaWeekDay = new Array("日","月","火","水","木","金","土");
    myDateTime += "(" + myaWeekDay[myDay] + ")";
    if ((myHours + "").length < 2) { myDateTime += "0"; } myDateTime += myHours + ":";
    if ((myMinutes + "").length < 2) { myDateTime += "0"; } myDateTime += myMinutes + ":";
    if ((mySeconds + "").length < 2) { myDateTime += "0"; } myDateTime += mySeconds + " ";
    document.selection.StartOfLine();
    document.selection.NewLine(1);
    document.write("——————————————————————————");
    document.selection.NewLine(1);
    document.write(myDateTime);
    document.selection.EndOfLine();
    document.selection.NewLine(10);
    document.selection.LineUp(0, 9);
    document.write("・");
    `

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

    #10404
    匿名
    休止中

    江村さま

    ご返答ありがとうございます。
    やってみました。
    これは、良いですね。
    少し、スニペットについて、勉強してみます。

    #10407
    匿名
    休止中

    江村さま

    psum です。

    スニペットにすると UNDO が CTRL-Z 一回で済むので、使ってみているのですが、スニペットボタンを押して、スニペットが窓の左に出ている間はうまくいくのですが、これを消してしまうと動作しないようです。
    この機能だけのために常にスニペット窓を出しておくというのは、ちょっと考えものなので、何か回避策はありませんでしょうか?
    やはり、マクロ自体に次のような感じでまとめる部分を指定できると便利かと思いました。必須ではないが、あれば便利という感じでしょうか。

    document.StartUndoBundle();
    :
    : この間に書かれたスクリプトは CTRL-Z 一回で UNDO される。
    :
    document.EndUndoBundle();

    #10411
    Yutaka Emura
    キーマスター

    psum 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    ご意見ありがとうございます。将来のバージョンで検討させてください。

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

    #10412
    匿名
    休止中

    江村さま

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

    psum

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