Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file: ;; http://anggtwu.net/elisp/weary-sessions.el.html ;; http://anggtwu.net/elisp/weary-sessions.el ;; (find-angg "elisp/weary-sessions.el") ;; Original author: weary-traveler (from the #emacs IRC channel) ;; Original code: https://paste.mozilla.org/zQhH7VDQ ;; (find-wget-elisp "https://paste.mozilla.org/zQhH7VDQ/raw") ;; Small changes by: Eduardo Ochs <eduardoochs@gmail.com> (require 'ob-core) ;; See: ;; (find-esetkey-links (kbd "C-c <f7>") 'my/ob/session-init) ;; (find-esetkey-links (kbd "<f7>") 'my/ob/session-sendit) (define-key org-mode-map (kbd "C-c <f7>") 'my/ob/session-init) (define-key org-mode-map (kbd "<f7>") 'my/ob/session-sendit) (defun my/ob/session-init (&optional arg info) "Open session of the current code block in other window. ARG and INFO are passed to `org-babel-initiate-session'." (interactive "P") (when-let ((buf (current-buffer)) (sesbuf (ignore-errors (org-babel-initiate-session arg info)))) ;; ensure session buffer visibility (split-window-sensibly) (switch-to-buffer-other-window sesbuf) (goto-char (point-max)) ;; ensure point in original buffer is on first line (pop-to-buffer buf) (org-end-of-line) (org-forward-sentence) (org-backward-sentence))) (defun my/ob/session-sendit (&optional arg info) "Evaluate current line of code block in session. ARG and INFO are passed to `org-babel-initiate-session'." (interactive "P") (beginning-of-line) (when-let ((buf (current-buffer)) (sesbuf (ignore-errors (org-babel-initiate-session arg info))) (curline (string-trim-left (substring-no-properties (org-current-line-string)))) (nwline (org-string-nw-p curline))) (pop-to-buffer sesbuf) (goto-char (point-max)) (insert nwline) (comint-send-input) (pop-to-buffer buf)) (forward-line)) ;; Local Variables: ;; coding: utf-8-unix ;; End: