
De um quadroprimeiro quadrocontendo duas janelas Emacs,ganha-umexibindo bufferbuf-umevitória-doisexibindobuf-dois, eu gostaria de poder 'quebrar'vitória-doisem seu próprio quadro, talvez usando um clique modificador na modeline. Depois disto,
- ambosganha-umevitória-doismanteriam suas associações individuais de altura/largura e buffer que tinham quando emprimeiro quadro
- ganha-umficaria no mesmoprimeiro quadro, evitória-doisestaria agora em um novo e separadosegundo quadro
- a posição original, as configurações de cor e fonte seriam mantidas sempre que possível
Eu queria saber se esse comportamento estava disponível em algum lugar da biblioteca padrão, se havia uma extensão para ele ou talvez se uma pequena função elisp funcionaria?
Responder1
Sim, existe esse comando: mouse-tear-off-window
. Eu ligo-o C-mouse-1
na linha de modo:
(global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)
O comando está disponível no vanilla Emacs ( emacs -Q
). Mas eu uso minha própria versão, que não exclui a janela se ela estiver sozinha em sua moldura. Em vez disso, ele clona o quadro e a janela. Essa versão está na bibliotecamouse+.el. Sequência de documento:
,----
| 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.
`----
Responder2
Esta é uma ligação padrão:
C-x 5 C-o : display-buffer-other-frame
O que faz: Exibir buffer BUFFER em outro quadro.
Responder3
Você pode usar:
M-x new-frame
Eu liguei para F9, por exemplo:
(global-set-key (kbd "<f9>") 'new-frame)