top  Index  Search  Changes  RSS  Login

howm wiki - SplitWindow Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

window 分割まわりはトラウマです.
[[Author]]の腕と気合では難しそう.
* 「どんなときにどうしたらどうなってほしい」の規則を書き下せるか?
* それを妥当な手間で実装できるか?
いいロジックがあったら教えてください.

「分割を壊さないでくれ」という要求なら,
「一覧・内容は別フレームで」や「ElScreen 系と連携」の方が
きれいにできそう.

----

!!!ぐだぐだの例

* (●メモ1, メモ2) という分割状態(●はカーソル)から検索したら ((●一覧, 内容), メモ2) という分割になってほしい - [[2ch2:368]]. これは確かに自然.
* その一覧からメモを開いたら, もちろんこうなってほしい:
    ((一覧, ●メモ3), メモ2)  ---[A]
* では, [A] からさらに検索したらどうなるべき?
* あるいは, [A] から一覧やメモ2にカーソル移しといて検索したら?
* はたまた, [A] から C-x b で ((一覧, ●*scratch*), メモ2) とかにして検索したら?
* そして, それぞれの結果から q で検索を抜けたら?

しかも, 実際の「window 分割」にはこんな階層構造はなさげ.
単に (一覧, ●メモ3, メモ2) という状態を [A] のようにみなしたければ,
自前で由来を記録・追跡しないと.
しかもしかも, window configuration の中身にアクセスする手段がなさげ.
→ snap://Info-mode/elisp#Window Configurations

----

!!!試行錯誤のあげく give up

一覧から q で抜けたら, 「元の状態」に戻ってほしい - [[2ch:415-416n]]より:
    thx. howm-1.1 ではそれを使っていいかげんにでっちあげてたんですが,
    中途半端でちょくちょくいやな挙動になってました.
    
    ちゃんとやるにはどうしたらいいですかねえ…
    # しんどそうなんで, すっぱり止めようかと
    
    (0) 理想
    一覧バッファで q したら, その一覧が visible になった直前の
    window configuration を復帰.
    復帰先が(別の)一覧バッファだったときは,
    そこで q するとさらにその直前の window configuration を復帰.
    …というのが理想の動作?
    
    (1) 状態保存
    >>372 みたいなのを考えたら,
    howm と関係ないコマンド(C-x b やら C-x 2 やら)まで常に監視?
    (window-configuration-change-hook?)
    一覧バッファがおもてに出たら,
    直前の current-window-configuration をスタックに積む.
    
    (2) 状態履歴
    一覧バッファが隠れたら, スタックを全クリア
    …でいいかと思ったけど, こんなときがだめそう:
    一覧 A を表示→関係ない X を表示→一覧 B を表示
    → X を削除→ B 上で q →さらに A 上で q
    じゃあスタックじゃなく ring にして一定数だけ保存?
    
    (3) 状態復帰
    window configuration を復帰したときに
    該当バッファがもう存在しなくて別のバッファが出たら,
    何かおせっかいが必要?
    (たまたま下側に一覧バッファが出てしまったときとか)
    
    (4) 例外
    現状では, 内部的に,
    「一覧を一旦表示して, そこからタイトル欄を検索してまた表示し直し」
    みたいなことをやってる.
    こういうのは状態保存・状態復帰のときに例外扱いしなきゃいけなそうで煩雑.
    どうせならこういう「表示し直し」をなくす方がまっとうかも.
----

!!!調べてません ^^;

* lookup みたいな挙動だと嬉しいかも [[2ch:739]]
ごめんなさい. lookup をいまだに試してなくて…

----
*2005-07-10 (日) 18:26:17 ''[[Anonymous]]'' : [[sanae の日記 (10308)|http://slashdot.jp/journal.pl?op=display&uid=10308&id=306413]]
* [[PopWin]]
{{comment}}
----