diff options
author | Dan Davison <davison@stats.ox.ac.uk> | 2010-08-05 13:45:13 -0400 |
---|---|---|
committer | Dan Davison <davison@stats.ox.ac.uk> | 2010-08-05 13:45:13 -0400 |
commit | 9330ad5b8106f0c6c0810c993db2f0def1741f63 (patch) | |
tree | d316b9a067b39620afbc5c5de3ea2eabe64d2dc4 | |
parent | 2935464811e4a511a0e552816aa3f001b5013423 (diff) | |
download | org-mode-9330ad5b8106f0c6c0810c993db2f0def1741f63.tar.gz |
babel: single function to execute executable babel elements
* ob.el (org-babel-execute-src-block-maybe): remove check for
`org-babel-no-eval-on-ctrl-c-ctrl-c'; this is done in the new
function `org-babel-execute-safely-maybe'
(org-babel-execute-maybe): new function to execute src blocks
or lob/call lines.
(org-babel-execute-safely-maybe): new function to execute src blocks
or lob/call lines via C-c C-c
(org-ctrl-c-ctrl-c-hook): remove
`org-babel-execute-src-block-maybe' and add
`org-babel-execute-safely-maybe'.
* ob-lob.el (org-ctrl-c-ctrl-c-hook): remove
`org-babel-lob-execute-maybe'
* ob-keys.el (org-babel-key-bindings): New function
`org-babel-execute-maybe' is bound to C-c C-v e and C-c C-v
C-e
-rw-r--r-- | lisp/ob-keys.el | 4 | ||||
-rw-r--r-- | lisp/ob-lob.el | 2 | ||||
-rw-r--r-- | lisp/ob.el | 22 |
3 files changed, 18 insertions, 10 deletions
diff --git a/lisp/ob-keys.el b/lisp/ob-keys.el index 837db24..e9ba3d9 100644 --- a/lisp/ob-keys.el +++ b/lisp/ob-keys.el @@ -52,8 +52,8 @@ functions which are assigned key bindings, and see ("\C-p" . org-babel-previous-src-block) ("n" . org-babel-next-src-block) ("\C-n" . org-babel-next-src-block) - ("e" . org-babel-execute-src-block) - ("\C-e" . org-babel-execute-src-block) + ("e" . org-babel-execute-maybe) + ("\C-e" . org-babel-execute-maybe) ("o" . org-babel-open-src-block-result) ("\C-o" . org-babel-open-src-block-result) ("\C-v" . org-babel-expand-src-block) diff --git a/lisp/ob-lob.el b/lisp/ob-lob.el index f0f9438..8c207f7 100644 --- a/lisp/ob-lob.el +++ b/lisp/ob-lob.el @@ -77,8 +77,6 @@ if so then run the appropriate source block from the Library." (let ((info (org-babel-lob-get-info))) (if (nth 0 info) (progn (org-babel-lob-execute info) t) nil))) -(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-lob-execute-maybe) - ;;;###autoload (defun org-babel-lob-get-info () "Return a Library of Babel function call as a string. @@ -195,17 +195,26 @@ of potentially harmful code." (error "evaluation aborted")))) ;;;###autoload +(defun org-babel-execute-safely-maybe () + (unless org-babel-no-eval-on-ctrl-c-ctrl-c + (org-babel-execute-maybe))) + +(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-execute-safely-maybe) + +;;;###autoload +(defun org-babel-execute-maybe () + (interactive) + (or (org-babel-execute-src-block-maybe) + (org-babel-lob-execute-maybe))) + (defun org-babel-execute-src-block-maybe () "Conditionally execute a source block. Detect if this is context for a Babel src-block and if so then run `org-babel-execute-src-block'." (interactive) - (if (not org-babel-no-eval-on-ctrl-c-ctrl-c) - (let ((info (org-babel-get-src-block-info))) - (if info - (progn (org-babel-execute-src-block current-prefix-arg info) t) nil)) - nil)) -(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-execute-src-block-maybe) + (let ((info (org-babel-get-src-block-info))) + (if info + (progn (org-babel-execute-src-block current-prefix-arg info) t) nil))) ;;;###autoload (defun org-babel-expand-src-block-maybe () @@ -298,6 +307,7 @@ can not be resolved.") ;;; functions (defvar call-process-region) ;;;###autoload + (defun org-babel-execute-src-block (&optional arg info params) "Execute the current source code block. Insert the results of execution into the buffer. Source code |