insertfixで第2引数に2を指定したときの挙No.08740
たけとり さん 18/08/20 21:17
 
 たびたびすみません。

 insertfixの第2引数に1を設定できるなら(insert文のように)2もあるに違いない…
という勘違いで、

insertfix "aaa", 2;

としたら、挿入後のカーソル位置が動く
(上記の例なら、aaaの後ろにカーソルが移動する)
ことに気づきました。

 そもそもマニュアルに書いてない使い方なのですが、一応ご報告まで。


 ところで、insertにしてもinsertfixにしても、インデントを考慮するだけでも

ファイルタイプ別の設定− 体裁−インデント
 自動インデント
 「全角空白もインデント」
 「C言語用のインデント」

動作環境− 編集−高度な編集1
 改行するとき空白だけの行だったら空白を削除する
 C言語インデントで、switchの場合はインデントしない


と比較的多岐にわたる設定項目に配慮しなければならないですが、
insertの「第2パラメータに 2 を指定して、文字列が"}"の場合、C言語用の自動ア
ンインデントが働きます。」
では物足りないため、
今は、目的に合うように、マクロ側でinsert(fix)前にファイルタイプ別の設定や動
作環境を変えたりしています。

 これを例えば、
insert "aaa", 4, 0x01 | 0x02;
みたいな、第3引数で設定した値によってそれらの挙動を指定できる…とうれしいです。
(例えば、0x01はインデントON、0x02は全角空白も〜がONと同じ挙動etc)

 手元では
"\n"を挿入する際に行頭のインデントを反映してほしい。{ の挿入でインデント位置
を変えてほしくない
…なんて処理をしているのですが、なかなか大変で…。

 ご一考いただけましたら、幸いです。

[ ]
RE:08740 insertfixで第2引数に2を指定しNo.08742
秀丸担当 さん 18/08/21 10:52
 

insertfixで2を指定できてしまいましたが、特に意味は無く、仕様としてはそういう
ものではないです。
意味がないので廃止するかもしれないですし、ヘルプに書くとこの動作を維持しなく
てはいけなくなるので、ヘルプに書くのはやめておこうと思います。

通常はinsert文は設定に依存しないところ、2を指定するのは、敢えてインデントの
設定に依存するような動作ということになります。
設定に依存しないマクロを作るとしたら、2は指定せずゴリゴリと書くしかないと思
います。
パラメータで詳しい指定ができたらいいと思います。今後検討したいと思います。

[ ]
RE:08742 insertfixで第2引数に2を指定しNo.08754
たけとり さん 18/08/21 21:52
 

>意味がないので廃止するかもしれないですし、ヘルプに書くとこの動作を維持しな
>くてはいけなくなるので、ヘルプに書くのはやめておこうと思います。

 承知しました。
 うっかり2とか指定しても、関数名通り、カーソルが動かないのがいいのかなとは
思っています。

>パラメータで詳しい指定ができたらいいと思います。今後検討したいと思います。

 是非よろしくお願いします。

[ ]