emacs에서 두 개의 다른 버퍼에서 하나의 파일 편집 foo.bar을 emacs에서 두 번 (또는 그

파일 foo.bar을 emacs에서 두 번 (또는 그 이상) 열려면 두 파일 을 동시에 편집 할 수 있습니다. 가능합니까? 아마도 더 좋은 질문은 어떻게해야합니까? 자체 버퍼 / 프레임에서 각 인스턴스를 여는 방법이 있습니까?



답변

하나 이상의 창에서 동일한 버퍼를 열 수 있지만 (다른 프레임에 분산 될 수 있음) 그리 편리하지는 않습니다. 각 창에는 고유 한 점이 있지만 점과 별개로 거의 모든 특성이 버퍼와 연결되어 있기 때문에 모두 마크, 파일 모드, 축소 및 기타 특성을 공유합니다. 또한 한 창에서 다른 버퍼를 방문하면 파일에서 자리를 잃게됩니다.

자체 포인트, 마크, 모드 등이 있지만 원래 버퍼와 동일한 내용을 갖는 간접 버퍼 를 만들 수 있습니다 (두 버퍼 쓰기를 동일한 파일에 저장). 현재 버퍼의 복제 인 두 번째 버퍼를 만들려면을 실행하십시오 M-x clone-indirect-buffer RET. 두 번째 버퍼를 다른 창에서 열려면을 입력하십시오 C-x 4 c.


답변

화면 분할 모드 : 여기서 ctrl+ x는 Ctrl 키를 누른 상태에서 x를 입력 함을 의미합니다. 그런 다음 숫자를 입력하십시오.

ctrl+ x2 (수평 분할)

또는

ctrl+ x3 (세로 분할)

그런 다음 동일한 파일에서 독립적으로 스크롤하거나 원하는 경우 다른 버퍼를 열 수 있습니다.

단일 뷰 유형으로 돌아가려면

ctrl+ x1

원하는 경우 각 화면 (섹션)을 필요한만큼 분할 할 수 있습니다. 먼저 분할하려는 화면을 선택한 다음 수평 또는 수직 분할을 수행하십시오.


답변

이맥스는 프레임이 아닌 창 (창)에 편향되어 있습니다. 동일한 프레임의 다른 창뿐만 아니라 다른 프레임에서 동일한 버퍼를 여는 것이 종종 바람직합니다. 그러나 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)
                   )
                 )
               )
            )


답변