24722


tmux の中から、 `emacsclient -nw` を利用する形式で tmux と emacs を利用しています。

elscreen でいうところの、 elscreen-clone がやりたくなったのですが、これはどうやったら実現できますでしょうか。
(実現ができるのであるならば)  
具体的にやりたいことは、「他の tmux window (別端末と読み替えても問題ない)で emacsclient を開く際に、既存の
emacsclient の emacs window 配置をそっくりそのままコピーしたい」です。

自分の理解ですと、 各 `emacsclient -nw` は frame を作成しているので、新規の emacsclient (の frame) へ元の
emacsclient の window 配置をコピーすればできるのでは、と踏んでいるのですが、これってそもそも実現可能だったでしょうか。


CC BY-SA 3.0
2016-05-09T14:06:31.443
24677
2016-05-11T13:13:38.663
2016-05-09T14:12:49.353
754
754
question
emacs
tmux + emacsclient で elscreen-clone のようなことをしたい


新しいフレームへの配置の複製とは異なる方法になりますが multi-tty 機能を使えばいいんではないかと思います。  
<http://lorentey.hu/project/emacs.html.hu>

[![multi-tty
のスクリーンショット](https://i.stack.imgur.com/4dnVH.png)](https://i.stack.imgur.com/4dnVH.png)


CC BY-SA 3.0
2016-05-09T23:48:00.093
24686
2016-05-09T23:48:00.093
982
24677
answer


以下は `window-state-get` と `window-state-put` を使う方法です。

[code]

    $ emacsclient -nw -e '
        (window-state-put
          (window-state-get (frame-root-window (nth 1 (frame-list)))))'
    
[/code]

`(nth 1 (frame-list))` としていますので直前に作成した `frame` の `window configuration`
が適用される事になります。また、`(nth 1 (reverse (frame-list)))` とすると、`emacsclient` で最初に作成した
`frame` の `window configuration` が適用されます。


CC BY-SA 3.0
2016-05-10T13:51:38.243
24722
2016-05-10T13:51:38.243
24677
answer


@argus さんの回答を参考に、 emamux に、この機能の PR を作成、マージしてもらいました。

[code]

    M-x emamux:clone-current-frame
    
[/code]

で、 elscreen-clone のようなことができます。 emamux はMELPA からインストールできます。


CC BY-SA 3.0
2016-05-11T12:00:01.710
24752
2016-05-11T13:13:38.663
2016-05-11T13:13:38.663
754
754
24677
answer