行移動したときに、カーソルが同じ列位置No.41234
グズラ さん 24/05/28 17:59
 
グズラです。
秀丸 Ver9.33 64bit を使用しております。

ファイルタイプ別設定のフリーカーソルがOFFのとき、カーソルキーで行を移動すると、
・移動先の改行位置<移動元の列位置 の場合は、カーソルは一旦改行位置になる
・移動先の改行位置≧移動元の列位置 の場合は、カーソルは元の列位置を保ったまま
という動作をしますが、まれに後者の動作をしないときがあります。

【再現手順】
@ファイルタイプ別の設定で以下の設定をしておく
・体裁-詳細-「フリーカーソル」をOFF
・デザイン-表示1-「対応する括弧を強調表示」をON

A以下のテキストを貼り付ける
----- ここから -----
if (foo == bar)
{
    a[(int)b] = c;
}
else
{
    d[(int)e] = f;
}
----- ここまで -----

Bカーソルを3行目の「b」に移動してDeleteキーを押下します。角括弧が強調表示さ
れてすぐに元に戻るので、↓キーを何度か押下して7行目の「e」に移動します。これ
はできると思います。

CUndoして(カーソルを「b」に移動して)こんどはDeleteキーを押下して角括弧の
強調表示が消えないうちに↓キーを何度か押下して7行目の「e」に移動します。そう
すると「e」には移動せず「d」に移動するはずです。

実は「対応する括弧を強調表示」をONにすることは関係なく、これをOFFにしてもDel
eteキー押下後にすぐに下キーを押下するか、しばらく待って下キーを押下するかに
よって動作が変わるようです。括弧を強調表示している時間がちょうどその時間にな
っているようです。

再現するとよいのですが。

[ ]
RE:41234 行移動したときに、カーソルが同No.41258
グズラ さん 24/05/31 10:16
 
この件ですが、Cを何度も繰り返すと「d」に行ったり行かなかったり(7行目の2文
字目に行ったり)します。
※カーソルの列位置の計算にタイムラグがあるような挙動です。

ちなみに以下のマクロだと再現しません。必ず「e」に移動します。
----- ここから -----
setcompatiblemode 0x20000;

insert "if (foo == bar)\n";
insert "{\n";
insert "    a[(int)b] = c;\n";
insert "}\n";
insert "else\n";
insert "{\n";
insert "    d[(int)e] = f;\n";
insert "}\n";

searchup "b";

delete;

down;
down;
down;
down;
----- ここまで -----

角括弧の強調表示が消えるまで(の時間)を待ってからカーソルを移動しないと列位
置を保たないのは仕様なのでしょうか?

[ ]
RE:41258 行移動したときに、カーソルが同No.41259
秀丸担当 さん 24/05/31 10:50
 
回答が遅れて申し訳ありません。
試してみたところ、最初のbを消す時点で、各括弧が強調されてすぐ消えるというの
がわかりませんでした。
何かその一定時間というのが自動起動マクロか何かが動いてカーソル位置移動いると
いう気がしましたが、下移動でeに移動するということは、そうでもないかもしれま
せん。
あるいはもしかしたらステータスバーの文字数など、時間差で動く何かの影響があっ
たりするのかと思いましたが、試してみても大丈夫そうでした。
強調されてすぐ消える理由がわかると助かります。

[ ]
RE:41259 行移動したときに、カーソルが同No.41260
グズラ さん 24/05/31 12:01
 
>試してみたところ、最初のbを消す時点で、各括弧が強調されてすぐ消えるというの
>がわかりませんでした。

えー!?強調表示が消えるのはそういうものだと思ってました。。。
確かに以前は編集して(「b」を削除したことにより括弧がカーソルと重なって)も
括弧は強調表示されたままだったような気がします。

自動起動マクロは無効にしております。強調されてすぐ消える理由も心当たりがあり
ません。
ということは、強調表示が消えるのが問題で、カーソルの列位置が保持されないのは
その副作用なのかもしれませんね。

[ ]
RE:41260 行移動したときに、カーソルが同No.41261
秀丸担当 さん 24/05/31 16:12
 
おそらく強調表示が消えるのが問題の引き金になっているのだと思います。
もし差支えなければ、[その他]→[設定内容の保存/復元...]で設定をファイルに保存
したものを"taki@maruo.co.jp"まで送っていただけると再現できるかもしれません。

[ ]
RE:41261 行移動したときに、カーソルが同No.41262
グズラ さん 24/05/31 17:17
 
設定内容を送信させていただきました。

再現するとよいのですが。

よろしくお願いします。

[ ]
RE:41262 行移動したときに、カーソルが同No.41263
秀丸担当 さん 24/05/31 17:34
 
送っていただいてありがとうございます。
幾つかのパターンを試して、再現できるパターンがありそうでした。
また調査して修正などします。

[ ]
RE:41263 行移動したときに、カーソルが同No.41264
秀丸担当 さん 24/05/31 17:39
 
とりあえず括弧の強調が消える原因としては、[その他]→[動作環境]→[ウィンドウ]
の、横スクロールバーの詳細で、[編集して上限が小さくなるときも自動調整する]が
ONで大き目のファイルのときにそうなっていそうでした。

[ ]
RE:41264 行移動したときに、カーソルが同No.41269
グズラ さん 24/06/03 09:39
 
グズラです。

>とりあえず括弧の強調が消える原因としては、[その他]→[動作環境]→[ウィンド
>ウ]の、横スクロールバーの詳細で、[編集して上限が小さくなるときも自動調整す
>る]がONで大き目のファイルのときにそうなっていそうでした。

これをOFFにして、最初に例示したサンプルで試したところ、括弧の強調も消えず、
カーソルの行移動も期待通りの動作であることをを確認しました。
当面はこれで凌ぐことにしますね。

[ ]
RE:41269 行移動したときに、カーソルが同No.41310
グズラ さん 24/07/09 08:57
 
本件、Ver.9.35で対応済みでしょうか?

[ ]
RE:41310 行移動したときに、カーソルが同No.41311
秀丸担当 さん 24/07/09 15:20
 
一応、問題とされていた、カーソル上下移動で桁位置の記憶を忘れる問題は、V9.35
β8で類似の問題と共に修正されていました。
問題と認識されていなかった、対応する括弧の強調が消える点については、いじって
いないです。

括弧の強調については決めかねています。
この設定は、上限の自動調整の遅くなることがある設定、に加えて、さらに編集で遅
くなることがある設定、とされています。
括弧の強調も保持する場合、さらにもう一段階遅くなる可能性があるので、問題と認
識されていなかったくらいであれば、触れないほうがいいかと思っています。
でも任意であるので、やっぱり注意書きと共に次でやってみようと思います。

[ ]
RE:41311 行移動したときに、カーソルが同No.41312
グズラ さん 24/07/11 09:04
 
>一応、問題とされていた、カーソル上下移動で桁位置の記憶を忘れる問題は、V9.35
>β8で類似の問題と共に修正されていました。

そうだったんですね。ありがとうございます。

>問題と認識されていなかった、対応する括弧の強調が消える点については、いじっ
>ていないです。
(snip)
>でも任意であるので、やっぱり注意書きと共に次でやってみようと思います。

よろしくお願いします。

[ ]