2010-11-22 29 views
5

Tôi đã emacs hành xử ít nhiều làm thế nào tôi muốn nó bằng cách sử dụng chút chung này của elisp:Cửa sổ chuyên dụng cho chế độ dired trong Emacs?

(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) 

Thật không may, dired sử dụng thư mục cho tên đệm, do đó cống hiến một cửa sổ dired chỉ dành nó cho rằng danh mục. Khi bạn điều hướng lên hoặc xuống, nó sẽ mở một bộ đệm mới trong một cửa sổ riêng biệt. Những gì tôi muốn làm là dành một cửa sổ cho một chế độ chính (dired trong trường hợp này), và có tất cả các bộ đệm mới mà mặc định để chế độ đó thích cửa sổ đó. Điều này có thể không?

Trả lời

4

Hãy thử sử dụng mã của bạn kết hợp với dired-single, mà sẽ gây ra tất cả các hướng dired xảy ra trong vòng một bộ đệm đơn có tên là *dired*. Vì lợi ích của việc tiết lộ đầy đủ, tôi đã viết dired-single.

+0

Cảm ơn Joe, đó là những gì tôi đang tìm kiếm! –

+0

Thật không may, 'dired-single' mở các tệp trong cùng cửa sổ với bộ đệm' * dired * '. Trong khi điều này là hoàn hảo cho các thư mục, nó sẽ là tốt đẹp nếu các tập tin có thể được xử lý như với 'dired-find-file-other-window' ... – hupf

3

set-window-dedicated-p buộc Emacs chỉ hiển thị cửa sổ đó cho bộ đệm đó, các bộ đệm được chuyển hướng khác không thể sử dụng cùng một cửa sổ. Xem *info* page for set-window-dedicated-p:

'màn đệm' (* note Chọn Window: :) không bao giờ sử dụng một cửa sổ chuyên dụng để hiển thị một bộ đệm trong đó.

Có lẽ một trong những gói trên trang wiki cho DiredReuseDirectoryBuffer cung cấp các chức năng bạn đang tìm kiếm ...

+0

Xin cảm ơn, Trey. Tôi đang sử dụng dired-find-alternate-file để ngăn chặn các bộ đệm mới được mở, và tôi thiết lập một cửa sổ-regexps cho bộ đệm dired. Điều này cho tôi 90% nơi tôi muốn, nhưng các bộ đệm khác vẫn có thể mở trong cửa sổ dired của tôi (trợ giúp, hoàn thành, v.v.). Nếu tôi có một nắm bắt tốt hơn của elisp tôi sẽ chỉ cần móc một trận đấu regexp cho dired trong một cửa sổ trước khi mở một bộ đệm mới trong đó. :) –

Các vấn đề liên quan