I use dired with the variable delete-by-moving-to-trash set to t. But sometimes I want to delete a file (or directory) without sending it to trash. Here is how I modified the dired-deletion-commands to toggle their trashing-behavior when called with a prefix.

(defun my/dired-do-flagged-delete (&optional arg) (interactive "P") (let ((delete-by-moving-to-trash (xor arg delete-by-moving-to-trash))) (dired-do-flagged-delete))) (defun my/dired-do-delete (&optional arg) (interactive "P") (let ((delete-by-moving-to-trash (xor arg delete-by-moving-to-trash))) (dired-do-delete))) 

All I have to do now is bind these functions to x and D in dired-mode-map

Of course after that, the default reaction to prefixes is lost. Personally I don't care, because I never used it. Others might think differently about that.

submitted by /u/Gallipo
[link] [comments]