ウインドウ 分割上下/分割左右についてNo.34187
いけたに さん 15/05/08 11:37
 
いつもお世話になります。

ウィンドウ 分割上下/分割左右について、よく使用しています。

分割時に、秀丸を 最大化<->通常サイズ と切り替えるのですが、最大化->分割->通
常サイズとすると、上下分割の場合は分割された下の画面の縦幅が維持されたような
かたちで通常サイズでの表示となります。
(柳井さん作のMaxWin.macマクロをキーに割り当てて最大化<->通常サイズ切替をし
ています。)

最大化で分割した最初の各分割画面の割合が1/2毎のサイズとなっているようなので、
分割したまま通常サイズに秀丸の表示サイズを変更した場合でも1/2毎の分割画面表
示になるようなかたちで使用したいです。
(いわゆる、分割画面の片画面実幅維持ではなく、分割割合を維持した画面サイズ変
更を希望しています。)

これは、どこかの設定で挙動を変更、またはマクロで操作できるものなのでしょうか。


[ ]
RE:34187 ウインドウ 分割上下/分割左右にNo.34189
秀丸担当 さん 15/05/08 14:30
 

>最大化で分割した最初の各分割画面の割合が1/2毎のサイズとなっているようなので、
>分割したまま通常サイズに秀丸の表示サイズを変更した場合でも1/2毎の分割画面表
>示になるようなかたちで使用したいです。

現在の方法は、言われている通り、片方のサイズを維持したまま、カーソルのあ
る側のサイズを変更するようになっています。
マクロで分割位置を指定したいという話が以前にあってまだしていなかったので、
指定できるように検討します。

[ ]
RE:34189 ウインドウ 分割上下/分割左右にNo.34190
いけたに さん 15/05/08 15:08
 
ご回答、ありがとうございます。

>現在の方法は、言われている通り、片方のサイズを維持したまま、カーソルのあ
>る側のサイズを変更するようになっています。
カーソルがある側のサイズを維持する動作だったのですか。

>マクロで分割位置を指定したいという話が以前にあってまだしていなかったので、
>指定できるように検討します。
検討いただけるとのこと、ありがとうございます。
よろしくお願いします。

[ ]
RE:34190 ウインドウ 分割上下/分割左右にNo.34291
いけたに さん 15/07/08 13:49
 
ウィンドウの分割について、早速の対応ありがとうございました。

早速、秀丸のウィンドウサイズを変更した後でも、ウィンドウの分割位置を中央のま
まとなるようヘルプを見ながらマクロを作ってみようと思いましたが、つまづいてい
ます。
環境は、秀丸 V8.54b11 + Windows 7 64bitです。

行ったことは以下です。

(1) 旧方式での交互分割を期待
---
split;
---
  → マクロ実行毎に、黒い線が現れたり消えたりしてウィンドウ分割を行う
  → ルーラーが表示されないのがわかりませんが、分割に関しては期待通り

(2) 新方式での交互分割
---
split 1;
---
  → マクロ実行毎に、ルーラー付きの分割線が現れたり消えたりしてウィンドウ分
割を行う
  → 期待通り

(3) 旧方式での分割維持で分割位置が画面中央となるはずの分割
---
split 0 1;
---
  → マクロ実行毎に、ルーラー付きの分割線が現れたり消えたりしてウィンドウ分
割を行う
  → 一度分割されたら、交互ではなく直前の状態にかかわらずずっと分割状態が維
持されることを期待していたので、期待と異なる

上記 (3) を変更して、
---
split;
split 0 1;
---
と書けば分割状態を維持した分割で(秀丸の大きさを変えても)ウィンドウの中央で分
割してくれますが、一旦分割解除してから分割となるようで、それまでの分割表示の
各々の表示場所状態がリセットされてしまいます。

できれば、分割表示の各々のテキスト表示位置を(大体)保持したままウィンドウの分
割位置を中央にしたいと考えています。
ウィンドウが分割されていても「split 0 1;」でそれが実現できるのかと考えました
が、設定などがいけないでしょうか。
(動作環境−トラブル対策−その他のトラブル対策−ウィンドウ分割をV7.xx以下の
方式にする はチェックOFFとしています。)

[ ]
RE:34291 ウインドウ 分割上下/分割左右にNo.34292
秀丸担当 さん 15/07/08 14:27
 

文のパラメータの指定は、複数ある場合はカンマで区切ります。
第2パラメータまでの場合は、
split 0, 1;
とするといいと思います。

常に中央になるように、
split 0, 1, windowheight;
というマクロにしてみようとしたところでは、都合が良くありませんでした。
windowheightはアクティブ側の分割内の高さになるので、どんどん小さくなって
しまいました。

以下のようにいったん解除してやると、元の高さを基準にした任意のサイズにで
きると思います。

split 0, 2;
#windowheight = windowheight;
split 0, 1, #windowheight / 2;

[ ]
RE:34292 ウインドウ 分割上下/分割左右にNo.34293
いけたに さん 15/07/08 15:10
 
ご連絡、ありがとうございました。
コンマがなかったので意図しない動作となるということでした。すみませんでした。

とりあえず、ご教示いただいた内容に、場所が復帰できそうな以下の行を足してみま
したが、なんとなく意図通り動きそうです。ありがとうございました。
---
if(splitstate != 0)
{
 #win1ln = lineno;
 #win1cl = column;
 splitswitch;
 #win2ln = lineno;
 #win2cl = column;
 splitswitch;
 split 1, 2;
 #windowheight = windowheight;
 split 1, 1, #windowheight / 2;
 movetolineno #win1cl+1,#win1ln;
 splitswitch;
 movetolineno #win2cl+1,#win2ln;
 splitswitch;
}
---

[ ]