|
| 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] |