Emacs dired-x:如何设置;也要杀死…的缓冲区;是的,没有确认?

Emacs dired-x:如何设置;也要杀死…的缓冲区;是的,没有确认?,emacs,dired,Emacs,Dired,如果您在dired-x中删除文件foo,您也会被询问杀死foo的缓冲区?。如何跳过此问题并始终使用yes回答?您可以建议直接删除条目功能,以便在删除之前关闭所有文件缓冲区: (defadvice dired-delete-entry (before force-clean-up-buffers (file) activate) (kill-buffer (get-file-buffer file))) Elisp手册将通知描述为“比重新定义整个功能更干净”,如果功能的定义在将来发生变化,则

如果您在
dired-x
中删除文件
foo
,您也会被询问
杀死foo的缓冲区?
。如何跳过此问题并始终使用
yes
回答?

您可以建议
直接删除条目
功能,以便在删除之前关闭所有文件缓冲区:

(defadvice dired-delete-entry (before force-clean-up-buffers (file) activate)
  (kill-buffer (get-file-buffer file)))

Elisp手册将通知描述为“比重新定义整个功能更干净”,如果功能的定义在将来发生变化,则不太可能中断通知。

只需在dired-x.el中删除后重新定义dired clean up

;; 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?
  ))

我刚刚意识到,不幸的是,这并不像预期的那样。当我被要求也关闭缓冲区时,我选择是,我仍然在dired(-x)缓冲区中,显示剩余的文件。但是,使用您的代码时,会发生以下情况:当我删除一个文件(没有被要求)时,它会将我扔到另一个缓冲区中,而不是只删除文件而不更改缓冲区。