|
From: | Max Nikulin |
Subject: | Preventing inadvertent global modifications |
Date: | Tue, 12 Sep 2023 23:47:30 +0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 |
Hi,Yesterday, when I was going to commit changes after editing several headings in different places of an Org file, I was surprised by huge diff with hundreds of chunks. Tags spread across the whole file were adjusted by one or tow spaces. Probably I just accidentally hit C-u before setting a tag to a new heading by C-c C-q. Of course, I did not noticed it immediately. I managed to create a commit with real changes without noise due to tags realignment. However I would like to prevent similar issues in future.
I can add a prompt for a particular argument of a function by (defun nm-safe-org-set-tags-command (&optional arg) "Call `org-set-tags-command' requiring to confirm realigning of all tags." (interactive "P") (cond ((and (equal '(4) arg) (not (yes-or-no-p "Realign all tags? ")))) (t (call-interactively #'org-set-tags-command)))) (add-hook 'org-mode-hook (lambda ()(define-key org-mode-map (kbd "C-c C-q") #'nm-safe-org-set-tags-command)))
The function can be made a bit smarter by adding minimal file size threshold.
However almost certainly there are more function "destructive" in a similar way. Is there a more general approach to make commands safer in respect to global modifications?
[Prev in Thread] | Current Thread | [Next in Thread] |