
フレームから最初のフレーム2つのEmacsウィンドウを含む、勝利1バッファを表示buf-1 バッファワンそして勝利2表示中バッファ2、私は「破壊」できるようになりたいです勝利2独自のフレームに切り離すには、おそらくモードラインの修飾キーを押しながらクリックします。その後、
- 両方勝利1そして勝利2それぞれの高さ/幅とバッファの関連付けは保持されます。最初のフレーム
- 勝利1同じままだろう最初のフレーム、 そして勝利2新たな別のセカンドフレーム
- 元の位置、色、フォントの設定は可能な限り保持されます
この動作が標準ライブラリのどこかで利用できるかどうか、そのための拡張機能があるかどうか、あるいは小さな elisp 関数が機能するかどうか疑問に思っていました。
答え1
はい、そのようなコマンドがあります: 。これをモード ラインでmouse-tear-off-window
にバインドします:C-mouse-1
(global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)
このコマンドは、Emacsの標準バージョン(emacs -Q
)で使用できます。しかし、私は独自のバージョンを使用しています。これは、ウィンドウがフレーム内に単独で存在する場合はウィンドウを削除しません。代わりに、フレームとウィンドウを複製します。そのバージョンはライブラリにあります。マウス+.el. ドキュメント文字列:
,----
| mouse-tear-off-window is an interactive compiled Lisp function in
| `mouse+.el'.
|
| It is bound to mode-line C-mouse-1.
|
| (mouse-tear-off-window EVENT)
|
| Create a new frame displaying buffer of window clicked on.
| If window is not the only one in frame, then delete it.
| Otherwise, this command effectively clones the frame and window.
`----
答え2
これはデフォルトのバインディングです:
C-x 5 C-o : display-buffer-other-frame
これは次のことを行います: バッファ BUFFER を別のフレームに表示します。
答え3
以下を使用できます:
M-x new-frame
私はこれを にバインドしましたF9。たとえば、次のようになります。
(global-set-key (kbd "<f9>") 'new-frame)