emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Preventing inadvertent global modifications


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?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]