답변:
display-buffer변수를 설정하여 함수의 동작을 사용자 정의 할 수 있음을 발견했습니다 display-buffer-function.
이 기능은 내가 원하는 것을하는 것처럼 보입니다 (확실히 정리가 필요하지만 작동합니다).
(데 펀트 내 디스플레이 버퍼 (BUFFER-OR-NAME 및 선택 사항 NOT-THIS-WINDOW)
(캐치 리턴
;; 기존 창에서 버퍼를 검색
(((윈도우리스트)))
((첫번째 창)
;; 녹이다
(if (eq (윈도우 버퍼 (첫 번째 창)) BUFFER-OR-NAME)
(반품을 던져
;; 미니 버퍼가 창을 선택하지 않으면
(if (eq (선택된 창) (미니 버퍼 창))
(첫번째 창)
(선택 창 (첫 번째 창)))))
;; 다음 창
(setq 창 (휴식 창)))
;; 그렇지 않으면 전류를 사용하십시오
(if (eq (선택된 창) (미니 버퍼 창))
;; 만약 minubuffer라면
(프론
(선택 창 (미니 버퍼 선택 창))
(버퍼-버퍼 BUFFER-OR-NAME)
(선택 창 (미니 버퍼 창)))
;; 일반 창이라면
(프론
(버퍼-버퍼 BUFFER-OR-NAME)
(선택된 창)))))
(setq pop-up-windows nil) 당신이 원하는 것을하는 것 같습니다.*Help*그것은 단지 예일뿐입니다.
switch-to-buffer-other-window, 원하지 않는 행동을 보는 대부분의 경우에 사용 되기 때문에 원하는 경우 조건에 따라 모든 경우를 수정하도록 조언합니다.
switch-to-buffer-other-window도움말 코드의 내부에서 꽤 깊이 사용 된 것 같습니다 . 특정 상황에서 스위치-버퍼를 사용하도록 스위치-버퍼-기타 창에 조언을 시도 할 수 있습니다. 그것은 당신에게 시작을 제공해야합니다.