制御文字の入力はできますか?

  1. ^Lなどの制御文字を簡単に入力する方法はないでしょうか?

    既に入っているテキストで可視化されているのはありがたいのですが、
    入力の方はどうでしょうか。

    よろしくお願いします。

     |  ほるた  |  返信
  2. こんばんは、Mery をご愛用くださりありがとうございます!
    しかしながら現在のところ特殊文字入力の機能はありません。

    標準機能として設けても良い気もしますし、プラグインでの対応も可能だとは思いますので何らかの対策 (とくに入力画面とか・・・) を検討してみたいと思います。

     |  Kuro  |  返信
  3. そうですか・・・ 対応してないんですね・・・

    その機能のあるテキストエディタを探しているところなのです。
    (ちなみに現状は、sedで置換してます)
    制御文字が可視化されているのを見たときはこれだ!と思ったのですが。

    軽量軽快で、使いやすそうなので、
    その機能の対応だけしていただければ常用させていただきたいと考えています。

    標準でもマクロでも何でも結構ですので
    よろしくお願いします。

     |  ほるた  |  返信
  4. マクロでよければ用意してみたのでお試し下さい.
    2 つ用意したので,お好みで.

    ◆1
    メニューを表示して挿入(メニュー定義はサンプルです.編集してお使い下さい)

    var ary = [
    //[ 文字コード, "メニュー文字列" ],
      [ 0x00, "NULL(&N)" ],
      [ 0x01, "SOH(&S)" ],
    ];
    var pop = CreatePopupMenu();
    for (var i=0; i<ary.length && ary[i]; i++) {
      pop.Add(ary[i][1], ary[i][0]+1, 0);
    }
    var select = pop.Track(0);
    if (select > 0) {
      Document.Selection.Text = String.fromCharCode(select-1);
    }

    ◆2
    文字コード(Unicode)を変換して挿入.
    カーソル直前にある "u" で始まる16進1~4桁を文字コードとして変換する
    例:u0041 ⇒ A, uC ⇒ ^L

    var sel = Document.Selection;
    var x = sel.GetActivePointX(mePosLogical);
    var y = sel.GetActivePointY(mePosLogical);
    var t = (Document.GetLine(y, 0).substring(0, x).match(/u[\dabcdef]+$/i) || [""])[0];
    if (t && t.length <= 5) {
      sel.SetActivePoint(mePosLogical, x-t.length, y);
      sel.SetAnchorPoint(mePosLogical, x, y);
      sel.Text = String.fromCharCode(parseInt(t.substring(1), 16));
    }

    ちなみにプラグインで実装するとなると,秀○のように下にボタン一覧などどうでしょうかね.
    いまいちピンとくる UI は思いつかないですね.

     |  ks  |  返信
  5. ksさんのパターン1のマクロが拙作のVz風マクロにふくまれていたりします。
    http://cdn35.atwikiimg.com/little_lamb/pub/for_mery2/InsertControls.js
    よろしければお使いください。

    #Mery 本体の Editors プロパティ追加に伴う マクロの修正を更新しなくては

     |  papagoat  |  返信
  6. ご返事が遅くなりまして、大変申し訳ありません。

    papagoatさんのマクロでバッチリでした。
    これでメモ帳をリプレースできそうです。

    他の機能もいろいろ試して行こうと思います。
    ありがとうございました。

     |  ほるた  |  返信
スポンサーリンク