   (let ((buf (+eshell-get-or-create-buffer)))
     (with-current-buffer buf
       (unless (eq major-mode 'eshell-mode) (eshell-mode)))
-    (if (eq major-mode 'eshell-mode)
-        (pop-to-buffer buf)
-      (switch-to-buffer buf))
+    (switch-to-buffer buf)
     (when command
       (+eshell-run-command command))))
 

    (delete-char arg)))

;;;###autoload
(defun +eshell/split ()
  (interactive)
  (select-window (split-window-vertically))
  (+eshell/open))

;;;###autoload
(defun +eshell/vsplit ()
  (interactive)
  (select-window (split-window-horizontally))
  (+eshell/open))

               return buf)
      (generate-new-buffer +eshell-buffer-name)))

;;;###autoload
(defun +eshell-prompt ()
  "Generate the prompt string for eshell. Use for `eshell-prompt-function'."
  (concat (propertize (abbreviate-file-name (eshell/pwd)) 'face '+eshell-prompt-pwd)
          (propertize (+eshell--current-git-branch) 'face '+eshell-prompt-git-branch)
          (propertize " λ " 'face '+eshell-prompt-char)))


;;
;; Commands
