top  Index  Search  Changes  RSS  Login

SplitWindow

window 分割まわりはトラウマです. 作者の腕と気合では難しそう.

  • 「どんなときにどうしたらどうなってほしい」の規則を書き下せるか?
  • それを妥当な手間で実装できるか?

いいロジックがあったら教えてください.

「分割を壊さないでくれ」という要求なら, 「一覧・内容は別フレームで」や「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 をいまだに試してなくて…


(Please LogIn to post comments.)

Last modified:2013/08/31 18:40:47
Keyword(s):
References:[アイデア]