2012-10-06 12 views
6

フォローモードで見つけたように別のフレームで複数のウィンドウに表示されるような動作をさせる方法はありますか?フレームをまたいだemacsフォローモード

私は、8つのレベルのネストされたループをlot'a gotoで作成した7ページのレンガを使用する必要があります。理解し、他のすべてを壊すことなくそれを書き換える)。

私が一度に見ることができるコードが多いほど良いでしょう。

+2

この制限は、1)自然な「最初のフレーム」がないため、フォローモードでウィンドウの内容をどのような順序で並べるかを判断するのが難しくなります。 2)これは、ユーザがいくつかのフレームを開き、各々がバッファの異なる部分を表示することを可能にする。なぜ大きなフレームを1つ使用しないのですか?2つの物理的なモニタに広がる6列の幅があり、合計888本のラインが得られます。 – Lindydancer

答えて

3

この制限は、next-windowの呼び出しでfollow-all-followersによって明示的に設定されています。

ここには基本的な回避策があります。かなり手早く気付くことがある欠陥がいくつかあります(たとえば、手動でフレームを配置する必要があるかもしれません)が、すべてのフレームを利用するという基本的な要件を容易にして、動作させる必要があります。

また、WindMoveのFrameMoveがこの配置に非常に役立つことがわかります。

(defmacro with-temporary-advice (function class name &rest body) 
    "Enable the specified advice, evaluate BODY, then disable the advice." 
    `(progn 
    (ad-enable-advice ,function ,class ,name) 
    (ad-activate ,function) 
    ,@body 
    (ad-disable-advice ,function ,class ,name) 
    (ad-activate ,function))) 

(defadvice next-window (before my-next-window-all-frames disable) 
    "Enforce the ALL-FRAMES argument to `next-window'." 
    (ad-set-arg 2 'visible)) 

(defadvice follow-all-followers (around my-follow-all-frames activate) 
    "Allow `follow-mode' to span frames." 
    (with-temporary-advice 
    'next-window 'before 'my-next-window-all-frames 
    ad-do-it)) 

代わり単にあなたがやりたいfollow-all-followers機能を再定義することを好むかもしれません。

+0

これは良い出発点です。ありがとう。 – Ishpeck

関連する問題