[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How delete Dired buffer automatically when select a file in Dired?
From: |
Andy Stewart |
Subject: |
Re: How delete Dired buffer automatically when select a file in Dired? |
Date: |
Tue, 09 Dec 2008 03:54:19 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Hi,
"seberino@spawar.navy.mil" <seberino@spawar.navy.mil> writes:
> When I select a file in Dired, it opens in a new buffer.
>
> The old Dired buffer still exists.
>
> How automatically delete the Dired buffer when I open a new buffer
> with a new file from Dired?
>
> Chris
Try to use my functions,
`dired-up-directory-single' for up directory.
`dired-find-file+' for open file or directory.
My function will kill old buffer when current directory in only visible
in current window, otherwise, stay current buffer.
,----
|
| (defun dired-up-directory-single ()
| "Return up directory in single window.
| When others visible window haven't current buffer, kill old buffer after
`dired-up-directory'.
| Otherwise, just `dired-up-directory'."
| (interactive)
| (let ((old-buffer (current-buffer))
| (current-window (selected-window)))
| (dired-up-directory)
| (catch 'found
| (walk-windows
| (lambda (w)
| (with-selected-window w
| (when (and (not (eq current-window (selected-window)))
| (equal old-buffer (current-buffer)))
| (throw 'found "Found current dired buffer in others visible
window.")))))
| (kill-buffer old-buffer))))
|
| (defun dired-find-file+ ()
| "Like `dired-find-file'.
| When open directory, if others visible window have this directory, do
`find-file'.
| Otherwise do `find-alternate-file'.
| When open file, always use `find-file'."
| (interactive)
| (set-buffer-modified-p nil)
| (let ((file (dired-get-file-for-visit))
| (old-buffer (current-buffer))
| (current-window (selected-window)))
| (if (file-directory-p file)
| (catch 'found
| (walk-windows
| (lambda (w)
| (with-selected-window w
| (when (and (not (eq current-window (selected-window)))
| (equal old-buffer (current-buffer)))
| (find-file file)
| (throw 'found "Found current dired buffer in others visible
window.")))))
| (find-alternate-file file))
| (find-file file))))
`----
Enjoy!
-- Andy