András Major <> writes:

> Hi fellows,
> I've just discovered that I'm missing a feature in org-mode.  These
> days I write much of my code in an Org buffer and tangle it into a set
> of source files.  Currently, I follow a rather cumbersome procedure
> when making changes to the code:
> 1. I change the Org file using the C-cC-c keystroke within the code
>    block I want to edit.
> 2. After editing, I press C-cc-c again to return to the main buffer.
> 3. I save the buffer.
> 4. I tangle the buffer using C-cC-vt.
> 5. For further editing, I press C-cC-c again.
> I know that 3. is optional, but this still leaves me with four steps
> instead of (ideally) just one.
> What I would like to have is a way of reducing all this to just one
> key command.  Would it make sense to introduce such a command that
> simply tangles the entire buffer, including the changes made in the
> language-specific buffer, but leaving that buffer open for editing?
> If it's a reasonably small change, could anyone introduce it?  (I
> don't have time to delve into the depths of org-mode.)
> Cheers,
>   András

Probably not what you want but, assuming that the keys you hit are
always the same, you could always define a keyboard macro, name it and
save it as emacs lisp code.

for example, the attached (because the insert-kbd-macro command creates
emacs lisp code with control characters) defines a new command which, if
starting from a code block special edit mode, exits that block, saves
the file, tangles the whole buffer and re-enters the code block:
You can then bind this new command to a key of your choice.  Untested...

* new function
  Allows one to exit a special code block editing mode, save the file,
  tangle all code blocks and then re-enter the code block editing

#+begin_src emacs-lisp
(fset 'esf/org-save-tangle-reedit-macro
   (lambda (&optional arg) 
     "Keyboard macro." 
     (interactive "p") 
     (kmacro-exec-ring-item (quote ("'t'" 0 "%d")) arg)))

: Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs
: using Org-mode version 7.8.03 (release_7.8.03.99.gce5c5)

Reply via email to