Emacs 창을 새 프레임으로 분할

Emacs 창을 새 프레임으로 분할

프레임에서첫 번째 프레임두 개의 Emacs 창을 포함하고,윈원버퍼 표시버프-원그리고2승표시버프-2, '부러질' 수 있었으면 좋겠다2승아마도 모델라인에서 수정자 클릭을 사용하여 자체 프레임으로 이동할 수 있습니다. 금후,

  • 둘 다윈원그리고2승개별 높이/너비 및 버퍼 연결을 유지합니다.첫 번째 프레임
  • 윈원같은 곳에 있을 텐데첫 번째 프레임, 그리고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)

관련 정보