画面右端で最終編集位置の記憶がずれるNo.19934
Buckeye さん 05/09/06 06:23
 
秀丸エディタ5.02の不具合と思われるものがありました。画面右端で最終編集位
置の記憶がずれるようなのです。

再現方法

1. エディタ画面右側いっぱいまで入力されている状態にする。句読点はぶらさ
   がっていてもぶらさがっていなくても同じように不具合が発生する。
2. どこか別のところに文字を入力する(記憶される最終編集位置を、いったん、
   別のところにいる)
3. 画面右側いっぱいまで入力されているところにカーソルを持ってゆき、文字
   (ひとつでも複数でも)を入力してから、入力した文字をバックスペースあ
   るいはDelキーで削除する(これで、画面右端の改行文字部分が最終編集位置
   として記憶されるはず。Ver.4.xxまではそうだった)
4. 別のところにカーソルを持って行ってから最終編集位置に戻るコマンド
   (golastupdated)を使うと……画面右端にある改行文字の次の行頭に飛んで
   しまいます。

入力していって画面右端まで行っただけなら、最終編集位置の記憶はきちんと右
端改行のところが記憶されています。また、上記のように「入力して削除」でも、
画面右端以外では、正しく記憶されるようです。

環境は秀丸エディタ5.02、Win2k、IE6.0です。

Best regards,
Buckeye

[ ]
RE:19934 画面右端で最終編集位置の記憶がNo.19935
Buckeye さん 05/09/06 07:11
 
追加です。もうちょい実験してみました。

前投稿の再現手順、3で入力して削除する文字が「、」や「。」なら、正しく、
画面右端になります。一方、「、」や「。」をふたつ入れてひとつ削除すると、
次行の頭どころか、もっとおかしな位置(次行の3文字目)になります。ふつう
の文字なら、複数入力して削除しても次行の頭です。

総合すると、どうも、画面右端に文字を入力したとき、表示が次行に折り返され
るまで入力してから削除すると、最終編集位置の記憶がずれるようです。

秀丸担当さんが#19929で「改行を入れた場合、次の行の先頭にLが来ます」と書
かれていますが、この関係の処理で不具合が起きているのではないでしょうか。

Best regards,
Buckeye

[ ]
RE:19935 画面右端で最終編集位置の記憶がNo.19937
秀丸担当 さん 05/09/06 13:34
 

いろいろ試してみて、確認することができました。
改行文字のぶら下げがあるときでおかしくなっていました。
他にも入力の仕方でずれていたことがあるようです。
ずれないように修正させていただきます。

[ ]
RE:19937 画面右端で最終編集位置の記憶がNo.19938
Buckeye さん 05/09/06 13:51
 
秀丸担当さん、

よろしくお願いしますm(_ _)m

個人的には、一番よく使うマクロに影響が出るのでかなり困った症状だったりし
ます。かといって、他にいろいろと便利になっているものをバージョンダウンす
る気にもならないし。直るのを楽しみにしています。

Best regards,
Buckeye

[ ]
RE:19937 画面右端で最終編集位置の記憶がNo.19939
Buckeye さん 05/09/07 09:44
 
秀丸担当さん、

最終編集位置よりも前で置換が行われると、最終編集位置が感覚的な意味でずれ
てしまいます。最終編集位置としてはあくまで行位置と列位置を記憶しているだ
けで、置換によるずれを補正していないからのようです。

ごくたまに、補正してくれたら便利だろうなぁと思うことがあります。この補正
は難しいのでしょうか。

たぶん、置換によるずれを補正すると、ケースによっては処理速度などに問題が
でるから目をつぶっているというようなことで、いわゆる仕様なんだろうとは思
いますが……

Best regards,
Buckeye

[ ]
RE:19939 画面右端で最終編集位置の記憶がNo.19940
秀丸担当 さん 05/09/07 10:44
 

>最終編集位置よりも前で置換が行われると、最終編集位置が感覚的な意味でずれ
>てしまいます。最終編集位置としてはあくまで行位置と列位置を記憶しているだ
>けで、置換によるずれを補正していないからのようです。

これは、どういったことでしょうか。
具体的な例で説明していただけるとわかるかもしれません。
置換した場合、置換した文字列の最後の部分にカーソルが来て、同時に最後に編
集した所も同じ場所になるはずです。

[ ]
RE:19940 画面右端で最終編集位置の記憶がNo.19941
Buckeye さん 05/09/07 18:59
 
秀丸担当さん、

わちゃ、すみません。コレ、自作のマクロ側の問題でしたm(_ _)m

翻訳の仕事をしているのですが、作業中に全体を置換しつつ、用語集を作成する
マクロがあって、その中で、置換しても最終編集位置が変わらないように処理し
ているのです。そちら側の問題でした。

Best regards,
Buckeye

[ ]
RE:19941 画面右端で最終編集位置の記憶がNo.19942
秀丸担当 さん 05/09/07 19:01
 

>翻訳の仕事をしているのですが、作業中に全体を置換しつつ、用語集を作成する
>マクロがあって、その中で、置換しても最終編集位置が変わらないように処理し
>ているのです。そちら側の問題でした。

そうでしたか。
それならばよかったです。

[ ]
RE:19937 画面右端へのカーソル移動No.19946
Buckeye さん 05/09/09 06:41
 
同じく画面右端付近でのカーソル位置に関し、あれっと思うことがありました。

    今度は秀丸エディタの動作で間違いありません(^^;)

改行なしで次行に続いている部分で、Endキーを使って右端にカーソルを飛ばし
たとき、どこにカーソルが来るか、です。

・基本的に、当該行の最後の文字の左側(直前)にカーソルが来るようです(こ
  れが現在の仕様でしょうか)。
・英文ワードラップをオンにして、行の最後の単語が次の行に動いた状態(右側
  が少しへこんで見える状態)で、Endキーを使って右端にカーソルを飛ばすと、
  最後の文字の右側にカーソルが来ます(つまり、マウスで右端をクリックした
  ときのカーソル位置と同じところ)。

↑この2つの動き、矛盾だと感じます。

個人的には……Endキーでカーソルを飛ばしたら、最後の文字の右側に来るほう
がナチュラルな気がします。理由は、

・マウスで右端をクリックすると最後の文字の右側(後ろ側)にカーソルが来る。
・行の途中で改行があるときも、最後の文字の右側にカーソルが来る。
    改行文字は、ふつう、「文字」だとは認識しないでしょう。改行文字を表示
    しない設定にしていたら、認識しようがありませんし。
・Ctrl+Endもファイル末尾(最後の文字の後ろ)に飛ぶ。
    こちらは改行文字も含めた最後の文字の後ろになりますが、これはもちろん
    そうすべきものでしょうし、違和感を感じることもありません。

のようにいくつかありますが、特に2番目、次に1番目が気になります。Endキー
で右側に飛ばす操作は、2番目のようなときに私はよくやるのですが、同じつも
りで操作したとき、そこが折り返された行だと、一文字、手前側にカーソルが来
てしまうわけです(つまり、最後に改行が入っているかどうかを確認して違う
キー操作をしなければならない)。また、1番目は、「行の右端に次の文字を入
力したい」と思ってマウスで右端をクリックするわけです。同じパターンでマウ
スをにぎっていないときはEndキーに手が行くのですが、このふたつの操作では
違う位置にカーソルが飛んでしまうわけです(こっちは慣れで解決できそう)。

とにかく、最初に書いたふたつの動きは多くのユーザーにとって矛盾だと感じら
れるはずだと思うので、どういう形にせよ、直していただいたほうがいいのかな
と思います。どう直すかの最終判断は、開発の方々にお任せします。どういう形
でも、最終的には仕様としてユーザーが慣れるしかないものだとは思いますから。

Best regards,
Buckeye

[ ]
RE:19946 画面右端へのカーソル移動No.19949
秀丸担当 さん 05/09/09 09:30
 

>改行なしで次行に続いている部分で、Endキーを使って右端にカーソルを飛ばし
>たとき、どこにカーソルが来るか、です。
>
>・基本的に、当該行の最後の文字の左側(直前)にカーソルが来るようです(こ
>  れが現在の仕様でしょうか)。
>・英文ワードラップをオンにして、行の最後の単語が次の行に動いた状態(右側
>  が少しへこんで見える状態)で、Endキーを使って右端にカーソルを飛ばすと、
>  最後の文字の右側にカーソルが来ます(つまり、マウスで右端をクリックした
>  ときのカーソル位置と同じところ)。

基本的に最後の文字の左側に来るのは、現在のところの仕様です。
ワードラップをオンにしたときは、おそらく折り返し位置に空白があるのではな
いかと思います。カーソルは空白の左側(単語の右側)に来るので、いちおう矛
盾してないのではないかと思います。

Endキーで最後の文字の左側となるのは、あまり一般的ではないかもしれません。
かといっていままでずっとこの仕様に落ち着いていたので、変更するのは問題が
あるかもしれません。
やるとしたら、「行末に移動(その2)」みたいなコマンドを追加するか、動作
環境で変更できるようにするかだと思います。
マクロはgolineend2既にあるのでgolineend3になってしまいますが。

[ ]
RE:19949 画面右端へのカーソル移動No.19951
Buckeye さん 05/09/09 11:25
 
秀丸担当さん、

あ、ワードラップは空白の前、ですか……たしかにそういう動作になってるよう
ですね。

Endキーで最後の文字の左側というのは、なんか変だと思う動作ではありますが、
前々からの仕様だと今さら変えるのも何かもしれませんね。このパターンを使わ
ない人はどっちでもいいし、よく使う人は慣れてしまっているでしょうし。ちな
みに私は使わない人で、もう10年近く、毎日、何時間も秀丸エディタを使う生活
をしているのに、この動きに気づいたのははじめてです(^^;) どんどん書いてい
くときは行末に改行があるし、修正時はほとんどマウスでカーソル移動をしてし
まうからでしょう。

>やるとしたら、「行末に移動(その2)」みたいなコマンドを追加するか、動作
>環境で変更できるようにするかだと思います。

もし、追加していただければ、私はEndキーで最後の文字の右側に来るように設
定します。あと、Endキーで最後の文字の左側というのがあまり一般的でないの
なら、今後、秀丸エディタに乗り換える人にとっても、この設定があったほうが
親切かもしれませんね。

Best regards,
Buckeye

[ ]
RE:19951 画面右端へのカーソル移動No.19953
秀丸担当 さん 05/09/09 14:32
 

とりあえず、動作環境に追加するにせよしないにせよ、コマンドとマクロを追加
する方向で検討したいと思います。

[ ]
RE:19951 画面右端へのカーソル移動No.19954
アルビレオ さん 05/09/09 14:38
 
ユーザーのアルビレオです。

>Endキーで最後の文字の左側というのは、なんか変だと思う動作ではありますが、
>前々からの仕様だと今さら変えるのも何かもしれませんね。

あまり役に立たない情報ですが、Insertキーを押して上書きモードにするとこう
いう動作になっている理由が理解できると思います。
Endを押したときの位置が「最後の文字の左側」だと、カーソルがウィンドウか
らはみ出すことがある上に、そこで何か文字を入力すると上書きされるのは次の
行の先頭の文字になってしまうので、これはこれで不自然に感じてしまうんです。

私もそれに気づくまでは、別に問題はないけどちょっと変な動作だなと思ってま
した。

[ ]
RE:19937 画面右端で最終編集位置の記憶がNo.20081
Buckeye さん 05/09/26 05:37
 
秀丸担当さん、

画面右端で最終編集位置の記憶がずれる問題、v.5.03で修正していただき、あり
がとうございます。

ただ、修正から漏れている条件があるようなんです。

ツリートップ、#19334に書いた再現方法で、次行に折り返された部分を削除する
際、undoで戻ると、上の行の行末になるはずの最終編集位置が次行の頭になって
しまいます。念のためv.5.04にしてみましたが、この部分には変化がありません。

お手数ですが、次回のバージョンアップのとき、こちらも修正していただけませ
んか?

Best regards,
Buckeye

[ ]
RE:20081 画面右端で最終編集位置の記憶がNo.20089
秀丸担当 さん 05/09/26 14:20
 

>ツリートップ、#19334に書いた再現方法で、次行に折り返された部分を削除する
>際、undoで戻ると、上の行の行末になるはずの最終編集位置が次行の頭になって
>しまいます。念のためv.5.04にしてみましたが、この部分には変化がありません。
>
>お手数ですが、次回のバージョンアップのとき、こちらも修正していただけませ
>んか?

確かにその通りでした。アンドゥの場合にも対策が必要でした。
次のバージョンアップで修正します。ありがとうございます。

[ ]