foo
을 dired-x
에 삭제하면 Kill buffer of foo, too?
이 표시됩니다. 이 질문을 건너 뛰고 항상 yes
으로 대답 할 수 있습니까? 모든 파일 버퍼를 삭제하기 전에 폐쇄되도록dired-x : "Kill buffer of ..., too?"설정 방법 확인하지 않고 예?
5
A
답변
5
dired-x.el에서 dired-clean-up-after-deletion을 다시 정의하기 만하면됩니다.
;; redefine the definition in dired-x.el, so that we are not prompted
;; to remove buffers that were associated with deleted
;; files/directories
(eval-after-load "dired-x" '(defun dired-clean-up-after-deletion (fn)
"My. Clean up after a deleted file or directory FN.
Remove expanded subdir of deleted dir, if any."
(save-excursion (and (cdr dired-subdir-alist)
(dired-goto-subdir fn)
(dired-kill-subdir)))
;; Offer to kill buffer of deleted file FN.
(if dired-clean-up-buffers-too
(progn
(let ((buf (get-file-buffer fn)))
(and buf
(save-excursion ; you never know where kill-buffer leaves you
(kill-buffer buf))))
(let ((buf-list (dired-buffers-for-dir (expand-file-name fn)))
(buf nil))
(and buf-list
(while buf-list
(save-excursion (kill-buffer (car buf-list)))
(setq buf-list (cdr buf-list)))))))
;; Anything else?
))
8
당신은 dired-delete-entry
기능을 조언 해 줄 수 있습니다 :
(defadvice dired-delete-entry (before force-clean-up-buffers (file) activate)
(kill-buffer (get-file-buffer file)))
Elisp 설명서 설명 "전체 기능을 재정의 청소기보다"라고 조언하며 경우 깰 가능성이 적습니다 기능의 정의가 미래에 변경됩니다.
+0
완벽한, 감사합니다. –
+0
나는 불행하게도 이것이 예상대로 행동하지 않는다는 것을 깨달았다. 버퍼를 죽이라는 요청을 받았을 때 나는 yes를 선택했다. 나는 여전히 나머지 파일들을 보여주는 dired (-x) 버퍼에있다. 그러나 코드에서 다음과 같은 일이 발생합니다. 파일을 묻지 않고 파일을 삭제하면 버퍼를 변경하지 않고 파일을 삭제하는 대신 다른 버퍼에 저장됩니다. –
아주 좋아요, 완벽하게 작동합니다! –