 
 If ARG (universal argument), prompt for a specific REPL to open."
   (interactive "P")
-  (+eval-open-repl arg t))
+  (+eval-open-repl arg #'pop-to-buffer))
 
 ;;;###autoload
-(defun +eval/send-region-to-repl (beg end &optional auto-execute-p)
-  "REPL must be open! Sends a selected region to it. If AUTO-EXECUTE-P, then
-execute it immediately after."
-  (interactive "r")
-  (let ((selection (buffer-substring-no-properties beg end)))
-    (unless (+eval--ensure-in-repl-buffer)
+(defun +eval/send-region-to-repl (beg end &optional inhibit-auto-execute-p)
+  "Execute the selected region in the REPL.
+Opens a REPL if one isn't already open. If AUTO-EXECUTE-P, then execute it
+immediately after."
+  (interactive "rP")
+  (let ((selection (buffer-substring-no-properties beg end))
+        (buffer (+eval--ensure-in-repl-buffer)))
+    (unless buffer
       (error "No REPL open"))
-    (when (bound-and-true-p evil-mode)
-      (call-interactively #'evil-append-line))
-    (insert (string-trim selection))
-    (when auto-execute-p
-      ;; I don't use `comint-send-input' because different REPLs may have their
-      ;; own. So I just emulate the keypress.
-      (execute-kbd-macro (kbd "RET")))))
+    (with-selected-window (get-buffer-window buffer)
+      (when (bound-and-true-p evil-local-mode)
+        (call-interactively #'evil-append-line))
+      (insert (string-trim selection))
+      (unless inhibit-auto-execute-p
+        ;; `comint-send-input' isn't enough because some REPLs may not use
+        ;; comint, so just emulate the keypress.
+        (execute-kbd-macro (kbd "RET"))))))


If ARG (universal argument), prompt for a specific REPL to open."
  (interactive "P")
  (+eval-open-repl arg))

;;;###autoload
(defun +eval/open-repl-other-window (&optional arg)

                     (point-max))))
      buffer)))

(defun +eval-open-repl (prompt-p &optional displayfn)
  (let ((command (cdr (assq major-mode +eval-repls)))
        (region (if (use-region-p)
                    (buffer-substring-no-properties (region-beginning)
                                                    (region-end)))))
    (when (or (not command) prompt-p)
      (let* ((choices (or (cl-loop for sym being the symbols
                                   for sym-name = (symbol-name sym)
