BOX選択での折り返し行での入力でNo.32369
神楽坂 さん 13/06/23 18:40
 
 「BOX選択中にキーを押すとその文字を各行に挿入する」を大変便利に使わせて頂
いております。
 折り返しを含む行でBOX選択し、半角(日本語入力OFF)で1文字づつ「abcd」と入力
すると、折り返した次行は「dcba」(以降の行ではさらに飛び飛びも)になります。
これは一応、仕様(秀丸v8.30)だと認識しております。
 他方、日本語入力ONで、気になる動きがあり、以下の2点をお尋ねしました(長文
失礼)。

(1)確定文字列はそのままの順で入力した方が自然?
 下記のような折り返しのある文字列(<折>は折り返し位置。実際は「あいう…へほ
ぱぴぷ…わを。」という連続した文字列)の場合です。(折り返し文字数66/同等の
ウインドウ幅でも再現)

あいうえお★■★かきくけこさしすせそたちつてとなにぬねのはひふへほ<折>
ぱぴぷぺぽ★■★わを。<改行>

 この2個の■をBOX選択し、「12345」(変換確定前)と入力した状態で、リ
ターンキーで確定させると、下記のように入力されます。

あいうえお★12345■★かきくけこさしすせそたちつてとなにぬねの<折>
はひふへほぱぴぷぺぽ54321★■★わを。

 上記は全角で、1,2,3,4,5を1文字づつ確定した場合と同じ結果です。1
文字づつ確定して入力した場合は、仕様として比較的受け入れ易いです。
 ただ、日本語変換で未確定状態の「12…5」文字列をリターンキーで一度に確定
した場合は、例えば上記2行目も入力順で「…ぺぽ★12345■★…」などと秀丸
上に一気にそのままの順で(ひとつの塊として)入力された方が、直感的には自然な
感じがしないでもありません。
(現状は、ATOK等で「秀丸エディタ」との入力&確定で、1行目は「秀丸エディタ」
と挿入されるも、折り返された2行目は「タィデエ丸秀」と挿入される現状は、これ
が仕様だと了解しつつも、感覚的にも、現実的な運用面でも、少し厳しいような…)
 秀丸とATOK等IMEとのプログラミング的な連携には無知でして、何が正しい動作が
どうかも不明ですが、いかがなのでしょう?

(2)折り返し数が小さい(或いは、未確定文字列が長い)場合に大量の文字が挿入
 折り返しの幅が狭い場合、或いは、かなり長い未確定の文字列を確定させた場合、
想定以上の大量の文字列がテキスト中に挿入されます。
 まず、下記の文字列(折り返し文字数:26の場合など)で上2個の■をBOX選択しま
す。

あいうえお★■★かきくけこ<折>
ぱぴぷぺぽ★■★わを。

 続いて全角の「1234567890」をキーボードから連続して押下(未確定状
態)し、次にリターンキーを押して確定させると、次のように大量の文字が挿入され
ます。

●改行よりも後ろにBOX選択がある場合も挿入する(通常モード):ONでの結果
あいうえお★1234567<折>
890■★かきくけこぱぴぷ<折>
ぺぽ0987654321★<折>
■★0わ9を。87  6  5<折>
  40  39  2  8  7  <折>
  60    59    4  8  <折>
  70      69      5  <折>
8  0    7    9    6  <折>
    08        79<改行>
890<改行>

●改行よりも後ろにBOX選択がある場合も挿入する(通常モード):OFFでの結果
あいうえお★1234567<折>
890■★かきくけこぱぴぷ<折>
ぺぽ0987654321★<折>
■★0わ9を。87<改行>
890<改行>

 上記の動き(文字列入力で新規に生じた行での処理がポイント?)は再現しますで
しょうか?
 当然、禁則処理やBOX選択の設定などの影響かもしれませんので、適切なご教示を
頂ければありがたいです。

(折り返し行を含むBOX選択における仕様設定は、そもそも相当に難しいとは思われ
ますが、宜しくお願いします)

[ ]
RE:32369 BOX選択での折り返し行での入力No.32373
秀丸担当 さん 13/06/24 12:33
 

ご指摘ありがとうございます。

確かにそうなってしまうことは再現できて、ご推察の通り仕様ということにはな
りますが、自然ではなくこういう結果を期待する人はいないと思います。
折り返しがあるときのBOX選択での入力は、現状ではあまり意味がない状態です。

IMEを介したまとめた入力のときだけ特別に対応することは不可能ではないと思
いますが、ここだけ対応したとしても、やはり折り返しがあると入力される位置
がずれるので、期待するものと違うことは変わらなさそうです。

理想的には、折り返しを考慮したBOX選択のモードがあるといいと思います。
たとえば、以下のような感じで選択されるとか。
(例1)
11■■111111<折>
1111<改行>
22■■222222<折>
2222<改行>

または、分断した変則的なBOX選択(複数箇所の選択)ができるようになって、
各行についてずれた選択ができるようになるといいと思います。
(例2)
11■■111111<折>
111■■1<改行>
22■■222222<折>
222■■2<改行>


いずれにしても新たな仕組みということになって互換性などを考えるとややこし
いです。
現実的にはBOX選択自体はそのままにして、入力対象となる行だけを飛び飛びに
扱うようにするといいのではないかと思いました。
入力対象だけを(例1)のように扱う感じですが、どうでしょうか。

V8.31はV8.30以降で見つかってしまったバグ修正などもあり近いうちに正式にし
たいと考えおり、それ以降のバージョンで検討したいと思います。

[ ]
RE:32373 BOX選択での折り返し行での入力No.32414
神楽坂 さん 13/07/12 22:11
 
 レスが大変遅れまして、申し訳ございません。最初の発言は、秀丸を使い始めてま
だ3ヶ月ほどの者たちからの声を集約したもので、彼らの都合上1〜2週間に一度く
らいしか集まれず、すいませんでした。

 BOX選択の仕様には、統一的な仕様がないようで、各ソフトで、様々な仕様があり
ます。3ヶ月チームからの質問に対しても、最初は「仕様なんだから慣れた方が早
い」と対応しておりました。
 しかし、彼らから下記の「文字列が大量に増殖」する動画が送られて来て、「20文
字のテキストに、70文字を入力した結果、一気に4万文字に増殖するのは、仕様と言
い切るには少し厳しいかも…」と、先の発言に至った次第です。

  http://youtu.be/2rSZqc9Qvdk

●(例1)の場合
 ご指摘の通り、(例1)がもっともシンプルな動作だろうと思われます。
 一方で、現行の「BOX選択時の『削除』との整合性」が違和感をもって受け止めら
れる危険性もあるかもしれません。
 例えば、下記の例で、■をBOX選択して、「切り取り」を実行すると、「選択され
たと視認できる文字列の全てが削除」されます。この動作は、1行内の普通の「選択
文字列」の削除と同じ動作で、非常に自然と考えられます。

あいうえお★■★かきく<折>
けこさしす★■★せ。<改>
↓(DEL:削除)
あいうえお★★かきくけ<折>
こさしす★★せ。<改>

 ところが、上例のBOX選択後に「あい」を入力すると、下記のようになります。
あいうえお★あい■★か<折>
きくけこさしす★■★せ。<改>
 つまり、1行目の「BOX選択文字列の先頭行」では「文字列が入力される」が、折
り返し行にある「選択されたと視認された文字列の前」には挿入されない(削除では、
折り返し行も削除されたのに)、わけです。(「これが仕様」もアリですが)。
 考えられる対処策は、「折り返えされた行では、BOX範囲選択状態にしない(少な
くとも、範囲選択状態だと視認されない状態にする)」とする仕様が考えられますが、
やはり、現行の「BOX選択後の削除」との仕様整合性には課題も残るかもしれません。

●(例2)の場合
 (例2)は、当方的には理想的だと考えます。いずれにしてもBOX選択後に入力が
あれば、多く場合、どこが最初の「BOX」だったのかがほぼ不明になります。そこで
(例2)のように「最初にBOX状態である文字列の状態」を優先させ、当該文字列を
明示し続ける仕様が想定されるわけです。ただ、秀丸への負担が大きくなる危険性も
あり、「既にBOX選択状態ではなくなった文字列にこだわる必要があるのか」などの、
疑問も生じるかもしれません。
(ちなみに、当方では3ヶ月チームが、例2に近い仕様を最も自然だとして、彼ら自
身が相応の動きをするマクロを作って現在、使用中です。元々、微妙な使い勝手は
ユーザ各自で異なるもの。そうした差異を、初めて秀丸マクロを使う者にも、望んだ
動作を簡単に実現させてしまう秀丸のスゴサを改めて痛感しております)

 いずれにしても、BOX選択の仕様は簡単ではなく、秀丸として、多くのユーザにシ
ンプルで便利な仕様の「BOX範囲選択」を実装して頂ければと期待しております。

[ ]
RE:32414 BOX選択での折り返し行での入力No.32421
秀丸担当 さん 13/07/16 11:11
 

詳しい情報ありがとうございます。
折り返しの入力ですごい大量に入ってしまうのは良くないですね。

V8.32β1で仕様を変更して、BOX選択は従来のままにして、折り返しがあるとき
の入力は論理的な行の1つのみにするようにしました。

この状況で言われているケースの確認をしてみたところ、大量に入力されてしま
うことは無くなったものの、ちょうど折り返しするところで文字が前後してしま
う問題が以前からあることもわかりました。
また修正させていただきます。

[ ]
RE:32421 BOX選択での折り返し行での入力No.32438
神楽坂 さん 13/07/17 15:57
 
 当方では原則的にβが入れられず、各自宅(数名だけ)でのβなので、爆速のβ版
公開についていけず、タイムラグが生じて申し訳ありません。
 とりあえず、以下、8.32β2での「?」な動作の動画キャプチャです。

●折り返し行末(あるいは次の行頭)部の文字が最後尾へ集結
 ご指摘のあった、下記とは少し異なる動きかもしれません。
>ちょうど折り返しするところで文字が前後してしまう問題

 感じとしては、折り返し行頭にあるべき文字が最後尾に集結するようです。
   http://youtu.be/Qh6T_6lkdeg

●折り返し行末に「ぶら下げ文字」が位置する場合
 折り返し行の行末に「、」などのぶら下げ文字がある場合、直前の文字とズレてし
まうようです。また、BOXのサイズも相当に広がっているようです。ただし、ぶら下
げ文字での前後ズレが生じる場合には、先頭文字の最後尾への移動は生じないようで
す。
   http://youtu.be/oZ3S3LcPv2s

 なお、β3では、当初のお話にもあった「IME経由の場合はまとめて入力」を導入
されたようで、上記の課題や、パタパタと長時間がかかる「やり直し」なども一掃さ
れたものと期待が高まります。
 あと、先ほど、少しチェックしただけですが、他の問題も生じているようで、別途、
動画をキャプチャしてもらい、アップする予定です。やはり、BOX選択での動作仕様
は、かなり難しいのだろうと拝察致しますが、秀丸仕様がBOX選択仕様全体を牽引で
きれば、と期待しております!

[ ]
RE:32438 BOX選択での折り返し行での入力No.32441
秀丸担当 さん 13/07/18 09:00
 

ご指摘の件は、確かにV8.32β2までは発生していました。
ご推察の通りV8.32β3ではかねてから懸案自動であったまとめて入力する方式を
したので、そういった問題は無くなっていると思います。

ただまとめて入力ではなく一文字ずつ確定しながら入力する場合はやはり同じ問
題が出る場合があると思いますが、これは現状の仕組みである限りではなんとも
できないところです。
禁則処理の状態によって折り返し状態はリアルタイムに変化するので、各行によ
ってどうしてもばらばらになるケースが出てきてしまうと思います。
ただまとめた入力と違って1文字ずつの場合は視認しながらの操作になるので理
由もわかりやすいかと思います。

[ ]
RE:32441 BOX選択での折り返し行での入力No.32492
神楽坂 さん 13/07/31 12:44
 
 前回の発言の直前に見た「問題」と思われる動きが何とかキャプチャでき、送られ
てきたのでアップしました。
 例えば、幅2桁のBOX選択で「1234567890」と入力すると、折り返しのある行では
「1290876543」「1209876543」等々となる可能性が高いようです。ご想定の通り、禁
則処理やぶら下げ文字数等の影響かと思われますが、現象や結果が一定でなく、時間
がかかってしまいました。

 とりあえず、下記のような場合が多いようです(秀丸V8.32β5)。一言で言うと「BO
X選択する左右の幅によって、キーボードからの入力順番とは異なる順で秀丸中に文
字列が入力されてしまう」ようです。これに近い現象(仕様?)は確認できますでし
ょうか?
 
 ●「(BOX選択の幅<半角>)+1」桁から入力文字順が「?」になる現象
  http://youtu.be/j-0bZ4gOKe0
 
※ 悩ましいのは、本現象が生じない場合もあり、何がキーなのか不明です。
※ ちなみに素人考えですけど、BOX幅に依って入力文字順が異なるのは、禁則処理や
ぶら下げ文字数等の影響とは別の要因のような気も…。秀丸初心者部隊の3ヶ月チー
ムから「禁則:OFF」でも再現する報告もあり、どこか他の動作仕様が要因なのかも
知れません…。
※ 逆にこれが仕様であれば、統一した(と素直に感じられる)動きをして欲しい感
じもあり、複雑です…。

[ ]
RE:32492 BOX選択での折り返し行での入力No.32493
秀丸担当 さん 13/07/31 15:43
 

詳細なバグ情報ありがとうございます。
こちらでも再現させることができました。

調べたところ、禁則処理は関係なくて、選択する方向によって違うことがわかり
ました。
入力するとBOX選択全体が右に移動しますが、カーソルは必ずどこか有効な位置
に存在していないといけないので、カーソルが右下にあると、全角で調整された
位置に補正され、その結果ずれることになりました。

BOX選択を右下から左上に向かって選択した場合は大丈夫なので、BOX選択時の入
力は常に自動的に左上にカーソルを移動するように変更すれば大丈夫になると思
います。
次のβ版でまた修正させていただきます。

[ ]
RE:32493 BOX選択での折り返し行での入力No.32535
神楽坂 さん 13/08/13 19:21
 
 まさかBOX選択の選択方向が鍵になるとは、思いもかけませんでした。ご対応、あ
りがとうございました。

 ただ、BOX選択が次の行に折り返されるような場合、以下のような現象が発生する
ようです(HM8.32b7)。

 ・BOX選択されていたハズの幅(選択文字列の左右の幅)が全角で1にリセットされ
てしまう
 ・FEPの未確定文字列が折り返される文字数以上である場合、確定後に次の行へ折
り返されていきますが、その際、BOX選択されるべき範囲ではなく、折り返し行の先
頭の1文字のBOXがBOX選択状態になり、以降、BOX入力位置がズレたまま入力される。

 [再現動画]  http://youtu.be/Z2yVXBXFhC8

 上記現象が確認されれば、ご対応の程、よろしくお願い申し上げます。

[ ]
RE:32535 BOX選択での折り返し行での入力No.32543
秀丸担当 さん 13/08/19 10:29
 

詳しい情報ありがとうございます。
確かに言われている通りになることが確認できました。

折り返しの次の行に行くときは、禁則処理などによってどうしても各行はばらば
らになることがあるため、分断した選択の仕組みなどを取り入れない限りは完全
に対応することはできないです。
もし対応すると、禁則などによって各行がずれているとしたらそのことが視認し
ずらくなるため、逆によくないような気がします。

手短なところでWindowsの開発用ソフトであるVisual Studio 2012では、折り返
しの次の行に行くときは選択が解除されるようになっていたので、それと同じよ
うに解除されるようにしてしまおうと思います。

[ ]