【要望】ホワイトスペースのトリミング

  1. TeraPadからの乗り換えを検討しています。

    が、本体に行頭・行末の非表示文字(タブやスペース)を削除する機能がないので、躊躇しています。

    TeraPad本体もこの機能は無いのですが、要望したら有志の方が作ってくださいました(TpTrimSp)。

    何方か作っていただける方、よろしくお願いします。

     |  日曜写真  |  返信
  2. こんにちは。

    単純に、正規表現置換で ^[ \t ]+|[ \t ]+$ とするのはいかがでしょう。
    マクロにするなら、
    document.selection.Text = document.selection.Text.replace( /^[ \t ]+|[ \t ]+$/gm, "" );
    でしょうか。
    空行を残したくなければ、前半を^[\s ]+ にすればいいと思います。

    それでは。

     |  手石  |  返信
  3. こんばんは、日曜写真さん、手石さん、書き込みありがとうございます。

    ● 日曜写真さん

    TeraPad さんはシンプルで馴染みやすくて素晴らしいテキストエディタですね。
    私も昔、お世話になりました。

    さて、行のタブや空白の削除ですが、手石さんがおっしゃるとおりマクロですと対応可能です。私もとりあえず作ってみていたのですが、手石さんとほぼ同じでした。

    一応使い方含めて載せておきますね。

    trim.js
    ------------------ ここから ------------------
    with (document.selection) {
        if (Text == "")
            SelectAll();
        Text = Text.replace(/^[\t\u0020\u3000]+|[\t\u0020\u3000]+$/gm, "");
    }
    ------------------ ここまで ------------------

    上の、ここからここまでってところの中身を trim.js という名前のファイルに保存して、Mery の上部メニュー「マクロ」→「選択」で、先ほど保存した trim.js を選択すれば、Mery に機能が追加されます。

    実際に使う場合は変換したい文章を選択した状態で「マクロ」→「trim.js」を選択すると使用可能です。何も選択しない状態で実行すると全体を変換します。

     |  Kuro  |  返信
  4. すでに解決策が示されていますが,何度も利用することを考えてポップアップを表示して実行するマクロを作成しました.
    登録が手間かもしれませんが,1 度試してみてはいかがでしょうか.
    http://www.haijin-boys.com/wiki/テキスト変換

    また,「TpTrimSp」っぽい「MeryTrimSp」も作成してみました.
    「.Net Framework 4.0」が必要になり,また Windows 起動後の初回実行が遅いですが,GUI は同じにしているので使いやすいかもしれません.
    もし使われるようでしたら,zip の中の readme.txt をお読みになってからご使用ください.
    http://merysmacro.seesaa.net/article/315371922.html

     |  ks  |  返信
  5. ● ks さん

    MeryTrimSp 、スゲェェェ!
    どういう原理なのか分かりませんが、ダイアログから返す値をマクロで拾ったりとかできるんですね。ちょっと感動しました。しかも Mery 側でマクロを登録せずとも自動で登録してくれるなんてもう奇跡レベルです。

    私の環境では起動も全然遅くなかったですよ。

    これはスゴスギます!

     |  Kuro  |  返信
  6. ●Kuro さん

    > MeryTrimSp 、スゲェェェ!
    この反応が欲しくて作りました(w

    > どういう原理なのか分かりませんが、
    同梱している ExtCmdOpt.js が謎の技術(w で,これを起動時マクロに指定するとそのときのコマンドラインを解析して,コマンドラインオプション拡張のようなことをします.
    今回は /mfd という「引数で渡した文字列をマクロとして実行する」という拡張を使って,Mery.exe /mfd:"Document.Text = ... " のように変換用のコードを直接指定しています.
    なので Mery を起動できれば,.NET でも C でも HSP でも同じようなツールは作れるようになっています.(子ウィンドウ化など細かい調整はしていますが)
    未使用ですが,/mfs という「引数対応,登録不要の /mf っぽい拡張」も入っています.

    # 以前のアップデートマクロと言い,セキュリティソフトも真っ赤なマクロです...
    # 全ては起動時マクロ対応,1 プロセス化の Mery 2 のおかげです

    > 私の環境では起動も全然遅くなかったですよ。
    恐らく他に .Net Framework 4.0 のソフトが起動していたのではないかと思います.
    私の環境でも 2~3 秒程度起動に時間がかかるので.

    今後もマクロで遊ばせていただきますので,遊べるネタの提供もとい開発応援しています.

     |  ks  |  返信
スポンサーリンク