2010-11-22 5 views
5

Emacs의 dired 모드를위한 전용 윈도우?

(defun toggle-current-window-dedication() 
(interactive) 
(let* ((window (selected-window)) 
     (dedicated (window-dedicated-p window))) 
    (set-window-dedicated-p window (not dedicated)) 
    (message "Window %sdedicated to %s" 
      (if dedicated "no longer " "") 
      (buffer-name)))) 

(global-set-key [pause] 'toggle-current-window-dedication) 
(defun toggle-current-window-dedication() 
(interactive) 
(let* ((window (selected-window)) 
     (dedicated (window-dedicated-p window))) 
    (set-window-dedicated-p window (not dedicated)) 
    (message "Window %sdedicated to %s" 
      (if dedicated "no longer " "") 
      (buffer-name)))) 

(global-set-key [pause] 'toggle-current-window-dedication) 
불행히도 dired는 디렉토리 이름을 버퍼 이름으로 사용하므로 dired 창은 그 디렉토리에만 전용으로 사용됩니다. . 위나 아래를 탐색하면 별도의 창에 새 버퍼가 열립니다. 내가하고 싶은 것은 윈도우를 메이저 모드 (이 경우는 dired)로 바꿔 놓고, 그 모드를 기본으로하는 모든 새로운 버퍼를 그 윈도우보다 선호하도록한다. 이것이 가능한가?

답변

4

dired-single와 함께 코드를 사용해보십시오 찾고있는 기능을 제공 *dired*이라는 단일 버퍼. 완전한 공개를 위해 나는 dired-single이라고 썼다.

+0

고마워요 조, 내가 찾고 있었던거야! –

+0

불행하게도,'dired-single'은'dired *'버퍼와 같은 창에서 파일을 엽니 다. 이것은 디렉토리에 적합하지만,'dired-find-file-other-window'와 같이 파일을 처리 할 수 ​​있다면 좋을 것입니다 ... – hupf

3

set-window-dedicated-p Emacs가 해당 버퍼의 창만 표시하도록하고 다른 dired 버퍼는 같은 창을 사용할 수 없도록합니다.

`디스플레이 버퍼 '(* 주 창을 선택 : 다음 *info* page for set-window-dedicated-p를 참조하십시오 :)는 다른 버퍼 를 표시하기위한 전용 창을 사용하지 않습니다.

아마도 DiredReuseDirectoryBuffer에 대한 위키 페이지에서 패키지 중 하나는 모든 dired 탐색 내에서 발생하게됩니다 당신이 ...

+0

고마워, 트레이. dired-find-alternate-file을 사용하여 새 버퍼가 열리지 않도록하고 dired 버퍼에 대해 동일한 창 -regexps를 설정합니다. 이것은 내가 원하는 곳의 90 %를 얻지 만, 다른 버퍼는 여전히 나의 dired 창 (도움, 완료 등)에서 열 수 있습니다. 만약 내가 elisp를 더 잘 이해했다면, 새로운 버퍼를 열기 전에 윈도우에서 dired에 대한 정규 표현식 매치를 연결하기 만하면된다. :) –