Hi Eric, On Jan 14, 2014, at 3:03 PM, Eric S Fraga <e.fr...@ucl.ac.uk> wrote:
> Hello, > > I constantly run into an annoying side effect of org's handling of > settings in a document. When writing a document for export, usually to > LaTeX, I find myself playing around with the document wide > setting variables, e.g. > > #+options: toc:nil > #+latex_header: \usepackage{tikz} > > and similar. Org requires me to re-load the document settings by > hitting C-c C-c on any such document setting line. This is fine. > > The problem is that org appears to reset *all* variables to default > (custom?) settings. This includes variables that have been set using > file local variables in the given document. Of particular note is the > variable ~org-export-allow-bind-keywords~. I normally have this set to > nil for safety reasons but wish to set this to t in some documents. I > use something like this quite often on documents I *know* are safe: > > ,---- > | # Local Variables: > | # org-confirm-babel-evaluate: nil > | # org-export-allow-bind-keywords: t > | # End: > `---- > > The problem is that hitting C-c C-c on a settings line clears these > variables. Having the bind one reset is particularly confusing at > times. In the end, I have to kill the buffer and re-visit the file to > have things set up properly. > > Is it possible to have org reload the whole file when reloading > settings? Or not reset any variables at all? Either approach would be > exhibit more consistent behaviour possibly? Obviously, the position in > the file would have to be remembered should the file be reloaded > automatically. > > This is not a major issue but a niggly one... Could you try the following patch? - Carsten diff --git a/lisp/org.el b/lisp/org.el index 549f1f8..6fca255 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -20482,11 +20482,9 @@ This command does many different things, depending on context: Also updates the keyword regular expressions." (interactive) ;; this will set the mode *and* set file local variables. - (normal-mode) - ;; but it may leave us in some unrelated mode - (unless (derived-mode-p "org-mode") - (org-mode)) - (message "Org-mode restarted")) + (funcall major-mode) + (hack-local-variables) + (message "Mode restarted"))