답변:
하나 이상의 창에서 동일한 버퍼를 열 수 있지만 (다른 프레임에 분산 될 수 있음) 그리 편리하지는 않습니다. 각 창에는 고유 한 점이 있지만 점과 별개로 거의 모든 특성이 버퍼와 연결되어 있기 때문에 모두 마크, 파일 모드, 축소 및 기타 특성을 공유합니다. 또한 한 창에서 다른 버퍼를 방문하면 파일에서 자리를 잃게됩니다.
자체 포인트, 마크, 모드 등이 있지만 원래 버퍼와 동일한 내용을 갖는 간접 버퍼 를 만들 수 있습니다 (두 버퍼 쓰기를 동일한 파일에 저장). 현재 버퍼의 복제 인 두 번째 버퍼를 만들려면을 실행하십시오 M-x clone-indirect-buffer RET
. 두 번째 버퍼를 다른 창에서 열려면을 입력하십시오 C-x 4 c
.
C-x 4 c
runs clone-indirect-buffer-other-window
이므로 clone-indirect-buffer
명령 대신 , 대신에 사용됩니다 . 그러나 내 시스템 에서이 두 명령은 모두 동일한 것으로 보입니다.
C-x 4
는 windows의 접두사 c
이고 clone 의 접두사입니다 . 원하는 경우 다른 바인딩을 정의 할 수 있습니다. C-x c
기본 구성에 사용되지 않습니다 C-x C-c
. 대신 실수로 치는 것을 두려워하지 않는 경우 사용할 수 있습니다 . C-x 5 c
init 파일의 새 프레임에서 복제하도록 정의 합니다.
화면 분할 모드 : 여기서 ctrl+ x는 Ctrl 키를 누른 상태에서 x를 입력 함을 의미합니다. 그런 다음 숫자를 입력하십시오.
ctrl+ x2 (수평 분할)
또는
ctrl+ x3 (세로 분할)
그런 다음 동일한 파일에서 독립적으로 스크롤하거나 원하는 경우 다른 버퍼를 열 수 있습니다.
단일 뷰 유형으로 돌아가려면
ctrl+ x1
원하는 경우 각 화면 (섹션)을 필요한만큼 분할 할 수 있습니다. 먼저 분할하려는 화면을 선택한 다음 수평 또는 수직 분할을 수행하십시오.
C-x o
실행 other-window
하고 순환합니다. (윈도우 관리자 창을 프레임이라고하는 emacs 구성을 사용하고, 그 안에있는 별도의 패널을 창이라고합니다 (알고 있습니다 만 책임은 없습니다))
이맥스는 프레임이 아닌 창 (창)에 편향되어 있습니다. 동일한 프레임의 다른 창뿐만 아니라 다른 프레임에서 동일한 버퍼를 여는 것이 종종 바람직합니다. 그러나 C-x 5 c
기본적으로 바인딩되지 않습니다. 이 코드는 누락 된 clone-indirect-buffer-other-frame
함수를 정의합니다 .
(global-set-key [?\C-x ?5 ?c]
'(lambda(newname display-flag)
"Like `clone-indirect-buffer-other-window' but display in another frame."
(interactive
(progn
(if (get major-mode 'no-clone-indirect)
(error "Cannot indirectly clone a buffer in %s mode" mode-name))
(list (if current-prefix-arg
(read-buffer "Name of indirect buffer: " (current-buffer))) t)))
(save-window-excursion
(let ((newbuf (clone-indirect-buffer newname display-flag)))
(switch-to-buffer-other-frame newbuf)
)
)
)
)