Wenn Sie eine Datei foo
in dired-x
löschen, werden Sie gefragt Kill buffer of foo, too?
. Wie kann ich diese Frage überspringen und immer mit yes
beantworten?dired-x: Wie wird "Kill buffer of ... auch eingestellt?" zu ja ohne Bestätigung?
Antwort
Konfigurieren Sie einfach Dired-Clean-up-nach-Löschung in dired-x.el.
;; 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?
))
können Sie beraten die dired-delete-entry
Funktion, so dass alle Dateipuffer vor dem Löschen geschlossen werden:
(defadvice dired-delete-entry (before force-clean-up-buffers (file) activate)
(kill-buffer (get-file-buffer file)))
Das Elisp Handbuch beschreibt die Beratung als „sauberer als die gesamte Funktion neu zu definieren“, und es ist weniger wahrscheinlich, wenn zu brechen Die Definition der Funktion ändert sich in der Zukunft.
Perfekt, danke, Michael. –
Ich habe gerade gemerkt, dass sich das leider nicht wie erwartet verhält. Wenn ich aufgefordert werde, auch den Puffer zu löschen, und ich ja wähle, bin ich immer noch im dired (-x) -Puffer, der mir die verbleibenden Dateien zeigt. Mit Ihrem Code passiert jedoch folgendes: Wenn ich eine Datei lösche (ohne gefragt zu werden), wirft sie mich in einen anderen Puffer, anstatt nur die Datei zu löschen, ohne den Puffer zu ändern. –
Sehr gut, funktioniert perfekt! –