Thorsten Jolitz <tjol...@googlemail.com> writes: > I copied this from Bernt Hansens set-up: > > ,----------------------------------------------------------- > | org-insert-heading-hook is a variable defined in `org.el'. > | Its value is (bh/insert-heading-inactive-timestamp) > | Original value was nil > `----------------------------------------------------------- > > and its often quite usefull to have a timestamp for each newly inserted > todo-item (e.g.). But in other cases, like writing documents or building > Org files programmatically, there is no need for > heading-creation-timestamps, so I would like to turn the timestamp > insertion off. > > I could probably use > > ,----------------------------------------- > | (remove-hook
<snip> > but this is of course not a very generic solution for a program I want > to share with others, their 'org-insert-heading-hook' might look > different. > > Is there a way to inhibit a hook in a program, or to run it only > conditionally in certain situations? Hi Thorsten! I would leave the hook always enabled but make it smart enough to skip inserting timestamps when you don't want them. Something like the following: f9-T will toggle adding the timestamps ON and OFF f9-t will always insert a timestamp at point C-RET and M-RET will use the hook which checks if the variable bh/insert-inactive-timestamps is t before adding the timestamp, otherwise it does nothing. --8<---------------cut here---------------start------------->8--- (global-set-key (kbd "<f9> T") 'bh/toggle-insert-inactive-timestamp) (global-set-key (kbd "<f9> t") 'bh/insert-inactive-timestamp) (defvar bh/insert-inactive-timestamp t) (defun bh/toggle-insert-inactive-timestamp () (interactive) (setq bh/insert-inactive-timestamp (not bh/insert-inactive-timestamp)) (message "Heading timestamps are %s" (if bh/insert-inactive-timestamp "ON" "OFF"))) (defun bh/insert-inactive-timestamp () (interactive) (org-insert-time-stamp nil t t nil nil nil)) (defun bh/insert-heading-inactive-timestamp () (save-excursion (when bh/insert-inactive-timestamp (org-return) (org-cycle) (bh/insert-inactive-timestamp)))) (add-hook 'org-insert-heading-hook 'bh/insert-heading-inactive-timestamp 'append) --8<---------------cut here---------------end--------------->8--- Thanks for this idea :) Regards, Bernt