From a9773df25b6ee0e721b6b5e0e9f9872ffa86d796 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 29 Oct 2025 13:08:54 -0500 Subject: feat(dirvish): add file duplication with 'd' key, move deadgrep to 'D' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds a convenient file duplication function to dirvish and reorganizes keybindings to avoid conflicts. ## Changes **1. New function: cj/dirvish-duplicate-file (dirvish-config.el:150)** Duplicates the file at point with "-copy" suffix before the extension: - report.pdf → report-copy.pdf - script.el → script-copy.el - README → README-copy Features: - Prevents duplicating directories (files only) - Checks if target exists and prompts to overwrite - Refreshes buffer automatically after copying - Shows clear message with old and new names **2. Keybinding changes** dirvish-config.el: - Bound 'd' to cj/dirvish-duplicate-file (was dired-flag-file-deletion) - Updated Commentary section to document new binding prog-general.el: - Moved cj/deadgrep-here from 'd' to 'D' (capital D) - More mnemonic: D for Deadgrep - Avoids conflict with new duplicate function ## Rationale The 'd' key is prime real estate in file managers, and duplicating files is a very common operation. The standard dired-flag-file-deletion is still available via 'x' or the mark-and-delete workflow. Deadgrep on 'D' is more discoverable (capital D for Deadgrep) and less likely to be pressed accidentally. ## Usage In dirvish, navigate to a file and press: - 'd' - Duplicate file with "-copy" suffix - 'D' - Search with deadgrep in current directory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- modules/prog-general.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules/prog-general.el') diff --git a/modules/prog-general.el b/modules/prog-general.el index d8d9627d..9929228d 100644 --- a/modules/prog-general.el +++ b/modules/prog-general.el @@ -251,7 +251,7 @@ If no such file exists there, display a message." (deadgrep term dir)))) (with-eval-after-load 'dired - (keymap-set dired-mode-map "d" #'cj/deadgrep-here)) + (keymap-set dired-mode-map "D" #'cj/deadgrep-here)) ;; ---------------------------------- Snippets --------------------------------- -- cgit v1.2.3