ページ一番下の文字の下に自動的に改行だけの空の空間数列(作業スペース的なもの)ができるようにしたい

  1. 自分はいつもファイルの一番下の文字の下に二、三十行、改行だけの空白のスペースを作って使っているのだが
    その都度下のスペースが足りなくなる度に改行をしてスペースを作る作業が面倒

    既にこの問題を解消する方法はないのだろうか?
    ないならそういうの作ってほしい

    こんな感じの機能

    一番下にある最後の文字の下の空白の改行スペースがx行より少なくなったら
    自動的に最後の文字の後にy行の空白を作る
    (xとyはそれぞれ設定可能)

     |  てs  |  返信
  2. こんばんは。

    > 一番下にある最後の文字の下の空白の改行スペースがx行より少なくなったら自動的に最後の文字の後にy行の空白を作る

    なるほど、ちょっと変わった使い方ですね。

    個人向けのカスタマイズ依頼はサポート対象外ですが、そのような機能はマクロを使えば実現できます。

    簡単なサンプルをご紹介しますね。

    お使いの Mery のバージョンがわからなかったので、Ver 3.7.0 で動作確認しています。

    "InsertFinalNewLine.js"

    // 末尾の改行が x 行より少なくなったら y 行の改行を追加する
    var x = 10;
    var y = 20;
    
    var doc = document;
    // 末尾の改行が x 行より少ないかをチェック
    if ((doc.Text.match(/\n+$/g) || [''])[0].length < x) {
        var sel = doc.selection;
        // スクロール位置とカーソル位置を記憶
        var scrollPos = { x: scrollX, y: scrollY };
        var cursorPos = { anchor: sel.GetAnchorPos(), active: sel.GetActivePos() };
        redraw = false;
        // 末尾に y 行の改行を追加 (+ 1 はお好みで)
        doc.Text = doc.Text + Array(y + 1).join('\n');
        // スクロール位置とカーソル位置を復元
        sel.SetActivePos(cursorPos.anchor);
        sel.SetActivePos(cursorPos.active, true);
        scrollX = scrollPos.x;
        scrollY = scrollPos.y;
        redraw = true;
    }
    

    このようなマクロを、任意のタイミングで実行するか、たとえば [テキストが変更された時] などのイベントに割り当てることで、ご希望の動作を実現できるかと思います。

    基本的にマクロの開発依頼もサポート対象外ですが、マクロの開発についてのご質問やアドバイスにはできる限りお手伝いさせていただきます。

    また、マクロは比較的簡単に書ける JavaScript を使用しますし、世界中で広く使われている言語ですので、覚えることは無駄にはなりません。

    このサンプルをもとに、調整やカスタマイズなど、お好みに合わせて楽しんでいただければと思います。

     |  Kuro  |  返信
  3. ありがとうございます。これから試してみます

     |  てs  |  返信
スポンサーリンク