버퍼를 전환 할 때 emacs가 자동으로 프레임을 전환하지 못하도록 방지


13

버퍼를 전환하면 버퍼가 이미 열려 있으면 emacs가 기존 프레임으로 전환됩니다.

나는 다음을 사용하여 ido로 전환 할 때이를 방지하는 방법을 발견했습니다.

(setq ido-default-buffer-method 'selected-window)

그러나 충분하지 않습니다 : lisp 오류가있는 경우 예를 들어 emacs는 자동으로 * Backtrace * 버퍼로 전환하고 이미 열려 있으면 프레임을 전환합니다.

완전히 emacs가 기존 프레임으로 전환되는 것을 막을 수있는 방법이 있습니까?

답변:


3

이에 대한 옵션이없는 것 같습니다.

버퍼를 찾을 수있는 기능을 수행 모든 프레임 않거나 현재 프레임에보고할지 여부를 지정할 수 있습니다 :

(get-buffer-window &optional BUFFER-OR-NAME ALL-FRAMES)

그러나 인수에 switch-to-buffer대해 패스 0을 구현 ALL-FRAMES하면 모든 프레임을 볼 수 있습니다.

전 세계적으로 이러한 행동을 막고 싶다면 :around조언을 함께 사용 get-buffer-window하여 그 주장을 대체 할 수 있다고 생각합니다 .


그것이 내가 두려워했던 것입니다. get-buffer-window 주위에 add-advice를 시도 할 수도 있지만 널리 사용되는 기능을 조언하는 것을 좋아하지는 않습니다.
MonsieurBanana

예, 문제가 생길 수 있습니다. popwin특수 버퍼를 처리하는 방법으로 패키지 를 체크 아웃하고 싶을 수도 있습니다. 이미 추가 한 ido 구성이 충분한 지 확실하지 않습니다.
glucas

1
실제로, 나는 보트를 여기에서 놓쳤을지도 모른다. 'Choosing Window'및 'Display Action Functions'에 대한 Emacs 매뉴얼 섹션을 살펴보아야합니다. 특히, 사용이 inhibit-switch-frame유용 해 보입니다. (아직도 이러한 옵션을 실험 할 기회가 없었습니다.)
glucas


감사합니다. SE 스레드가 매우 유용합니다. 문서를 작성 display-buffer하고 display-buffer-alist머리를 아프게 만들지 만 해결책을 찾을 때까지는 시간 문제입니다.
MonsieurBanana
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.