文字削除後にカーソルの行移動をしたときNo.10149
しょう さん 20/04/04 13:48
 
いつも便利に使わせていただいており、ありがとうございます。

文字削除後にカーソルの行移動をしたときの、カーソル位置の維持について。

Deleteキー,カーソルキー のキー割り当ては
すべて 標準の動作 または (なし) です。

以下のテキストで、2行目の「b」の後ろ,「1」の前 にカーソルがあるときに
----------------

a b1
----------------
↑キー、↓キーを押すとカーソル位置は「1」の前になります。
これは自分の期待通りの動作で、普通だと思います。

これに対して、文字削除後にカーソルの行移動をしたときに
上記の期待と違う動きをする場合があります。

2行目の「b」の後ろ,「1」の前 にカーソルがあるときに、
Deleteキー(「1」を消す)、↑キー、↓キーを押すと
  - カーソル位置が「b」の後ろに行く (元の位置に戻る)
  - カーソル位置が「a」の前に行く (前行でのカーソル位置に影響される)
のように、
カーソル位置が維持されないことがあります。

########
すみませんが再現手順の確定は出来ていません。
いろいろ試してみたのですが、簡単に起きるときと、なかなか起きない時があります。
"「1」を消す" を再試行するために「1」を戻す操作に Undo を使っています。

非常に小さいテキストファイルを例に上記報告をしましたが、
もっとサイズの大きなテキストファイルでも発生しますし、
上の行への移動だけでなく、下の行への移動でも発生します。
現象としては「前行でのカーソル位置に影響される」が適切と感じています。

########
以前はこのような動作は起きていなかったと思い、
直近のバージョンの動作確認をしましたが、以下のすべてで発生します。
  v8.89, 64bit, 浮動小数点数版
  v8.91, 64bit, 浮動小数点数版
  v8.92β9, 64bit, 浮動小数点数版


# [動作環境など]
#   秀丸: v8.89, 64bit, 浮動小数点数版
#          v8.91, 64bit, 浮動小数点数版
#          v8.92β9, 64bit, 浮動小数点数版
#   OS: Windows 10 Pro, 64bit (10.0.18363.720)

[ ]
RE:10149 文字削除後にカーソルの行移動をNo.10150
秀丸担当 さん 20/04/06 10:17
 

カーソル上下キー操作では元の桁位置を保持するのが通常ですが、ある1つの再現パ
ターンがわかりました。
ファイルがUnicodeで上書き保存すると、そのときに桁位置がリセットされてしまい
ます。
[その他]→[動作環境]→[ファイル]→[自動保存]で、「ファイルを更新する」になっ
ていて、Unicodeのファイルだと、保存されるタイミングでそうなることがあります。
例えば、更新回数1回の遅延時間1秒で、Deleteキー、上矢印キーで1秒経ち、たま
たま保存が働くとそうなってしまうと思います。

最近わかった問題で、自動保存でUnicodeのファイルだと、検索ヒット時の範囲選択
の状態が、ただの範囲選択になって次の検索で範囲選択が広がるという問題がありま
した。
問題自体はずっと前からあったのですが、最近わかってV8.92β3で修正していました。
カーソル上下時の位置についても修正させていただきます。

[ ]
RE:10150 文字削除後にカーソルの行移動をNo.10151
しょう さん 20/04/06 20:26
 
返信ありがとうございます。
「元の桁位置を保持するのが通常」との見解で安心しました。

条件報告に不足があったようです。追補します。

基本的に文字コードは UTF-8 で使用しています。
本件発生時も UTF-8 でした。
さきほど編集していたファイルは ShiftJIS でしたが、
桁位置が保持されない現象が発生しました。

自動起動マクロは使用していません。
(メニュー) マクロ(M) - マクロ登録(E)... の
対象(L) → 自動起動 の
右ペイン "自動起動マクロを有効にする" は無効です。


> たまたま保存が働くと

なので、この状況そのままには該当しないと思います。
自分も職業プログラマーなので、なんとなくタイマー関係が
影響しているような気はします。

秀丸担当様のところでは現象再現しましたでしょうか。
お手数おかけしますが、よろしくお願いします。

[ ]
RE:10151 文字削除後にカーソルの行移動をNo.10152
秀丸担当 さん 20/04/07 10:15
 

自動保存ではなさそうということで、失礼しました。
こちらでは自動保存やUnicodeでないときは再現できていないです。
他の可能性を調べてみたところ、もう一つ、ウィンドウサイズを変更したときがあり
ました。
普通はサイズ変更しなければそういうことは起きないと思うのですが、それが原因か
どうかはなんとも言えないです。
解像度の変更とかシステム関連の何かの更新によって、サイズ変更に相当するような
イベントが発生している可能性もあるかもしれないですが、そんなに頻繁には無い気
がします。
何らかの別の理由でサイズ変更相当のことが起きているかもしれないので、この時も
リセットせずに保持できるように、次のβ版で修正してみます。

[ ]
RE:10152 文字削除後にカーソルの行移動をNo.10153
しょう さん 20/04/07 22:12
 
秀丸担当様
お世話になっております。

確定ではありませんが、発生の条件が分かったかもしれません。
(メニュー) 表示 - ルーラー を ON にしていますが、
文字を消したあと、ルーラーの桁表示マークが一瞬ブリンクすると思います。
このブリンクのタイミングが現象発生に絡んでいる気がします。

  Deleteキーで文字を消す
    ↓
  ブリンクする前に上矢印キーでカーソルを行移動
    ↓
  (桁表示マークがブリンク?)
    ↓
  下矢印でカーソルを行移動

Deleteキーと上矢印キーを非常に短い間隔で押下し、
一旦時間を空けて、下矢印キーを押すと現象発生する感じがします。
(一旦時間を空けて==桁表示マークがブリンクを待つ)

Deleteキーの押下後、一旦時間を空けて上矢印キーを押下した場合、
現象発生しない感じがします。

--------
設定が関係しているでしょうか。
必要でしたら設定値をお送りします。

よろしくお願いします。

[ ]
RE:10153 文字削除後にカーソルの行移動をNo.10155
秀丸担当 さん 20/04/08 09:01
 

再現情報ありがとうございます。
Deleteキーを押してから少し時間を置いてルーラーを描画するということは通常は無
いはずで、なぜだかわからないです。
もしかしたら秀丸リーダーを入れている場合、自動起動マクロではなく、マクロ登録
78〜80のものが実行されることがあります。
秀丸リーダーを入れていない場合、何らかの設定の組み合わせか、あるいは別の常駐
系ソフトが関係しているかもしれないです。
設定の組み合わせだとしたら、[その他]→[設定内容の保存/復元...]でファイルに保
存したものを"taki@maruo.co.jp"まで送っていただけると助かります。
何らかの常駐系ソフトだとしたら、入れているソフトやマクロ登録78〜80などがわか
ると手がかりになると思います。

ちなみにルーラーのちらつき自体は、[その他]→[動作環境]→[トラブル対策]の詳細
ボタンの「ルーラーを強制描画してゴミが出ないようにする」がONになっていると全
体を描画してちらついて見えることがあり、もしOFFにして描画乱れの問題が無けれ
ばOFFのほうがいいです。


[ ]
RE:10155 文字削除後にカーソルの行移動をNo.10159
しょう さん 20/04/09 23:56
 
設定をメールでお送りしました。
ご確認お願い致します。

桁表示マークがブリンクするタイミングの件、
ブリンクするPCと、しないPCがありました。
これには関係なく、この2つのPCで現象発生します。
桁表示マークについては勘違いでした。
忘れていただけると幸いです。

Deleteキーと上矢印キーを非常に短い間隔で押下し、
一旦時間を空けて、下矢印キーを押すと現象発生します。
新規作成, 未保存のファイルで発生します。

常駐ソフトは、キー関係は KeyFreeze という
キーボード掃除時に全キー無効にするツールを入れています。
終了させても現象発生しました。

以上、よろしくお願いします。

[ ]
RE:10159 文字削除後にカーソルの行移動をNo.10160
秀丸担当 さん 20/04/10 09:26
 

ファイルを受け取りました。
ありがとうございます。
設定によってこちらでも再現させることができ、助かりました。

[動作環境]→[ウィンドウ]の横スクロールバーの詳細の「編集して上限が小さくなる
ときも自動調整する」がONのときの問題でした。
このとき削除後に時間差で調べていて、リセットされていました。
画面がちらつくというのも、全体をリフレッシュするような手間のかかるをしていて
改善したほうがよさそうですが、とりあえずカーソル上下について修正させていただ
きます。
V8.92β11で修正します。

[ ]