ediff에서 프레임을 만들지 마십시오


14

일반적으로 프레임을 싫어합니다. 지금, 나는 사용하고있다

(setq ediff-window-setup-function #'ediff-setup-windows-plain)

ediff시작할 때 프레임을 만들지 않도록 합니다.

그러나 특정 명령은 ediff-show-registry여전히 새 프레임을 엽니 다.

프레임 생성을 완전히 비활성화 할 수있는 방법이 ediff있습니까?


어떻게 수정에 대한 ediff-skip-unsuitable-frames, 또는 완전히 내에서 그 주석 ediff-show-registry-에서, 예를 들어 설명을 : (ediff-skip-unsuitable-frames 'ok-unsplittable)?
lawlist

5
당신이 그것에있는 동안,- ediff가족 라이브러리 의 소스를 찾는 것을 고려 (make-frame하면 당신의 선호에 맞게 고쳐야 할 곳이 몇 군데 있습니다. 귀하의 요청은 확실히 합리적이며 저자 및 / 또는 Emacs 팀에게 기능 요청을받을만한 가치 ediff-setup-windows-plain가 있습니다. 대부분의 사람들은 다양한 make-frame예외 없이 전반적으로 적용해야 한다고 생각 합니다 .
lawlist

답변:


3

의 내부 조건이있다 ediff-init.el라고는 ediff-window-display-p. 내가 ediff를로드 한 후 다시 정의하면 문제로 언급 한 기능을 포함하여 모든 것이 단일 프레임에서 작동합니다.

(defun ediff-window-display-p () nil)

@lawlist에 동의합니다. 이는 수정하기 좋은 기능 요청 ediff-window-setup-function입니다.


2
이것은 더 잘 작성 될 수 있으며 (advice-add 'ediff-window-display-p :override #'ignore), 더 쉽게 되돌릴 수 있습니다 advice-remove(그리고 먼저 ediff를로드 할 필요가 없습니다).
npostavs

트윗 담아 가기 똑똑한 코드 주셔서 감사합니다!
cyberbisson

나는 이것을 시도했지만 불행히도 ediff가 사용자 정의 창 설정 기능 사용을 중단했습니다.
tboyce12

@ tboyce12 혼란 스럽습니다 ... 왜 새 창 (예 : 프레임)을 표시하지 않으려는 경우 사용자 정의 창 설정 기능이 있습니까? 기능은 무엇을합니까?
cyberbisson

새 창을 원하지만 새 프레임은 원하지 않습니다. 기본값 ediff-setup-windows-plain은 전체 프레임을 차지합니다. "컨텍스트"창을 열어두고 싶습니다 (예 : 메모 및 기타 파일). 그래서 사용자 정의 창 설정 기능을 작성했습니다 (에이스 창으로 구동되는 사용자 정의 디스플레이 버퍼를 사용하여 창을 분할하고 새 버퍼를 표시 할 위치를 선택하십시오). Ediff가 부팅 할 때이를 확인 ediff-window-display-p하고 false 인 경우 사용자 정의 창 설정 기능을 무시 하고을 사용하는 것으로 보입니다 ediff-setup-windows-plain. 따라서 사용자 정의 설정의 경우 피 ediff-show-registry하거나 사용자 정의 명령을 작성합니다.
tboyce12
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.