]> git.donarmstrong.com Git - lib.git/blobdiff - emacs_el/configuration/don-configuration.org
bind ess remote eval
[lib.git] / emacs_el / configuration / don-configuration.org
index a5a1035b2d1ed4f98c80f9c16d806efc4e4bbf84..de65daf6546d9596a2c450df6cac356b55472082 100644 (file)
@@ -868,6 +868,10 @@ This can be used to link things pretty quickly if necessary
 #+BEGIN_SRC emacs-lisp
   (use-package ess
     :ensure t
+    :commands R
+    :mode "\\.R\\'"
+    :bind (:map ess-mode-map
+                ("C-c C-R" . dla/ess-region-remote-eval))
     :config
     (defun ess-change-directory (path)
       "Set the current working directory to PATH for both *R* and Emacs."
@@ -890,11 +894,11 @@ This can be used to link things pretty quickly if necessary
                 ((looking-at "^[a-zA-Z0-9_\.]+ ?<- ?function(.*{") 3)
                 (t 1000)))
         ))
-    (add-hook 'ess-mode-hook
-              '(lambda ()
-                 (local-set-key (kbd "C-c C-R")
-                                'dla/ess-region-remote-eval)))
-
+    (defun dla/ess-region-remote-eval (start end)
+      "Evaluate region in a remote ESS instance"
+      (interactive "r")
+      (shell-command-on-region start end "eval_r" (get-buffer-create "***essregionremoteeval***"))
+      kill-buffer "***essregionremoteeval***")
     ;; Don't restore history or save workspace image
     '(inferior-R-args "--no-restore-history --no-save")
     )