前のカーソル位置に正しく移動しない場合No.31819
hawk-eye さん 12/11/30 14:59
 
Windows XP Pro SP3
秀丸エディタ Version 8.21 使用

再現方法も分からず、いつもなるわけではないのですが、
「検索」メニューにある「前のカーソル位置」を選択した場合、
全然関係ない行に飛ぶ事があります。

例えば、次の操作以外も何かしたかもしれませんが、
5747行ある既存のテキストファイルを開くと、
カーソルが4010行目辺りにあるのですが、
この辺りの数行の文章を書き足したり削除したりした後、
スクロールバーを一気にずらしてファイルの先頭に行き、
「検索」メニューにある「前のカーソル位置」を選択すると、
4110行目に飛んでしまいました。

秀丸の設定は、
「アウトライン解析の枠」が表示ONで、その中には百数十の項目が表示されており、
「折り返し文字数」は80カラムで、一論理行が何度も折り返されている行がかなりあ
ります。

この情報で分かりますでしょうか?

よろしくお願い致します。

以上。

[ ]
RE:31819 前のカーソル位置に正しく移動しNo.31820
秀丸担当 さん 12/11/30 15:52
 

バグ情報ありがとうございます。

いろいろ試してみたところでは、手順次第ではそうなりうることもあるようです。
例えば、「指定行...」コマンドで、1000行目と2000行目に移動し、前のカーソ
ル位置を連続で押すとこの2つを交互に移動する状態にします。
そして、1000行目でいろいろ編集します。

次に2つのケースを考えます。

ケース1として、Ctrl+Homeでファイルの先頭に移動します。(「ファイルの先
頭」コマンド)
そして、「前のカーソル位置」を実行すると、期待通り1000行目にジャンプしま
す。

ケース2として、1000行目を編集した後、スクロールバーのつまみをつまんでフ
ァイルの先頭に移動します。
そして、「前のカーソル位置」を実行すると、1000行目に飛びたいところが、
2000行目に移動します。
スクロールバーによる移動では「前のカーソル位置」は記憶されないためです。

もしこういう操作だとしたら、仕様ということになってしまします。

ちなみに編集していた場所に移動する場合、[検索(S)]→[最後に編集した場所
(L)」を実行すると便利です。

[ ]
RE:31820 前のカーソル位置に正しく移動しNo.31822
hawk-eye さん 12/12/01 22:34
 
自分の操作を思い出しながらいろいろ試してみたら、
これかもしれない、というのが見つかりました。

どうやら、テキスト編集の途中で、
何かを参照しようとして、
スクロールバーでファイルの後ろの方に移動し、
用が済んで編集箇所に戻ろうとして、
アウトライン解析の枠内で、目的の編集箇所を含むところをクリックした事で、
その時のカーソル位置が「前のカーソル位置」として記憶されてしまったようです。

ヘルプで「前のカーソル位置」の説明を見ると、
カーソル位置を覚える対象として、
アウトライン解析の枠内の内容をクリックして移動した時は書いてないようです。

アウトライン解析の枠内の内容をクリックして移動した時にカーソル位置を記憶する
のが誤りなのか、
または、ヘルプに書いてないのが誤りなのか、
どちらが正しいのでしょうか?

[ ]
RE:31822 前のカーソル位置に正しく移動しNo.31823
秀丸担当 さん 12/12/03 10:09
 

詳しい再現方法ありがとうございます。
アウトライン解析の枠のツリー表示でそうなることが確認できました。
調べてみたところ、アウトライン解析の枠からフォーカスが失われたとき、「前
のカーソル位置」として覚えるようにしていました。
覚える位置は、アウトライン解析の枠にフォーカスが移る直前の位置になってい
ました。

操作としては、アウトライン解析にフォーカスを移してから矢印キー上下や、マ
ウスでのクリックを何回か操作しても、何度も記憶されることはなく、フォーカ
スが失われたとき(つまり編集エリアにフォーカスが移ったとき)それを確定し
た移動として解釈して、フォーカスが移る前の位置を記憶していました。
V6.03のときにそういう修正がされていて、一応意図的にしている挙動になって
います。
ヘルプに書いていなかったということで失礼しました。
ヘルプにも追記させていただきます。

[ ]