filter("ToSpace")の結果No.05731
santoku さん 10/05/18 17:32
 
$s = "\t\t";
insert filter("", "ToSpace", "", $s);

$sの値を色々変えながら("\t"〜" \t\t\t")、上記マクロを実行します。
結果は、「タブの文字数」の倍数になるときもあれば、ならないときもあるなど一定
しません。
変数で指定するか、文字列リテラルで指定するかによっても結果が違う場合がありま
す。

選択範囲に tospace する結果と同じになる保証はないのでしょうか?

[ ]
RE:05731 filter("ToSpace")の結果No.05734
秀丸担当 さん 10/05/18 17:50
 

>$s = "\t\t";
>insert filter("", "ToSpace", "", $s);

ご報告ありがとうございます。
調べてみたところ、ToSpaceは秀丸エディタの状態に依存していて、タブの文字
数と、範囲選択の開始位置から計算するようになっていました。
範囲選択が無い場合は、直前に範囲選択していたときの位置になると思われ、実
際には意味の無い不定な値から算出されることになってしまうと思います。
対策として、filter関数の第三パラメータに渡す内容に何か意味を持たせるよう
にしたほうがよさそうです。その方向で検討させていただきます。

現状のまま使うとしたら、行頭から範囲選択している状態であれば期待通りに動
くかもしれません。

[ ]