[不具合]"タブの代わりに空白を挿入"の動作

  1. はじめまして。
    使い勝手の良いテキストエディタを探していたところ、
    Meryにたどり着き、それ以来ずっと使っています。

    さて、使用していて1つだけ気になったことがあったので、報告します。
    "タブの代わりに空白を挿入"を指定した場合、タブと同じ間隔だけ空白が挿入されず、
    "タブの桁数"で指定した桁が必ず挿入されてしまいます。
    (分かりづらくてスイマセン・・・)

    以上が気になった点です。
    仕様でしたら仕方がないのですが、"タブの代わりに空白を挿入"に則っていない気がしたので。。。

    それでは失礼します。

     |  taka  |  返信
  2. はじめまして、こんばんは。
    お使いいただきまして、ありがとうございます!

    > さて、使用していて1つだけ気になったことがあったので、報告します。
    > "タブの代わりに空白を挿入"を指定した場合、タブと同じ間隔だけ空白が挿入されず、
    > "タブの桁数"で指定した桁が必ず挿入されてしまいます。
    > (分かりづらくてスイマセン・・・)

    オプションの「タブの桁数」で設定した数だけ空白を入れる仕様になっております。
    Meryはプロポーショナルフォント(横幅が均等ではないフォント)に対応しておりますので、
    プロポーショナルフォントを使用した場合の空白の幅は平均値に基づいているため、タブ幅と
    一致しなくなってしまいます。固定ピッチフォント(MSゴシックなど)を使用すれば解消すると思います。

    ご不便をおかけしますがご了承くださいませ。

     |  Kuro  |  返信
  3. ●タブの幅を 8 文字にして、以下のマクロ実行
    var nums = "01234567890123456789";
    var size = nums.length;
    for( var i = 0; i < 10; i++ ){
        document.Writeln( nums.substr(0,i) + "\t" + nums.substr(i, size-i) );
    }

    ●結果( 実際は空白の場所がタブ1つ )。ブラウザ標準 Pゴシックだと崩れる
            01234567890123456789
    0       1234567890123456789
    01      234567890123456789
    012     34567890123456789
    0123    4567890123456789
    01234   567890123456789
    012345  67890123456789
    0123456 7890123456789
    01234567        890123456789
    012345678       90123456789

    ● タブ->空白変換
    これらを選択して、「選択範囲の変換」->「タブを空白に変換」
    先頭の行のタブは、8 文字の空白に変換されるが、他は、タブのまま変換されない。
    taka さんの報告は、「タブの代わりに空白を挿入」の設定だと、
    「文字列の途中に、TAB キーでタブを挿入すると、必ず 8 文字の空白が挿入される。」
    ということなんだろうけど。Mery のカラムは、半角・全角の区別をしないし、計算するのが面倒。

     |  kinzoku  |  返信
  4. >●結果( 実際は空白の場所がタブ1つ )。ブラウザ標準 Pゴシックだと崩れる
    そういうフォントの問題じゃなかった。w
    &nbsp; とか <pre> を入れないと。
    でも、スペースは保存されているから、<br> を改行に置換するだけで、本来のテキストに戻せる。

     |  kinzoku  |  返信
  5. > &nbsp; とか <pre> を入れないと。

    すみませんw
    手抜きしすぎました、、、&nbsp;に置換するように直しておきました。

    ちなみに「タブ->空白変換」はインデントの変換なので、途中のタブは変換されない仕様です。

    > 文字列の途中に、TAB キーでタブを挿入すると、必ず 8 文字の空白が挿入される。

    コーディング中のインデントの空白の数がバラバラだとイヤですからね、、、

     |  Kuro  |  返信