diff options
author | Martin Polden <mpolden@mpolden.no> | 2024-03-06 12:45:32 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2024-03-06 12:49:38 +0100 |
commit | 70c829959c1f6e8a73fa4bb4bda73f373cb9f24e (patch) | |
tree | ec9e2450063d967bd5b03672cc6da7eadc8fcba5 | |
parent | 0ad26684430e4c5e9cab64d324611c46acfc115d (diff) |
eshell: C-c e opens eshell in another window
-rw-r--r-- | init.el | 1 | ||||
-rw-r--r-- | lisp/init-eshell.el | 23 | ||||
-rw-r--r-- | lisp/init-project.el | 6 |
3 files changed, 26 insertions, 4 deletions
@@ -44,6 +44,7 @@ ;; clients (mpolden/maybe-require 'init-eglot) +(mpolden/maybe-require 'init-eshell) (mpolden/maybe-require 'init-git) (mpolden/maybe-require 'init-restclient) diff --git a/lisp/init-eshell.el b/lisp/init-eshell.el new file mode 100644 index 0000000..952989a --- /dev/null +++ b/lisp/init-eshell.el @@ -0,0 +1,23 @@ +;;; init-eshell.el --- configure eshell -*- lexical-binding:t -*- +;;; Commentary: +;;; Code: + +(defun mpolden/eshell-other-window () + "Create a new Eshell buffer in another window. + +If `default-directory' is determined to be a project by +`project-current', the Eshell buffer will be created with +`project-shell' instead of `eshell'." + (interactive) + (let ((buf (if (project-current) + (project-eshell) + (eshell)))) + (switch-to-buffer (other-buffer buf)) + (switch-to-buffer-other-window buf))) + +(use-package eshell + :bind (("C-c e" . mpolden/eshell-other-window))) + +(provide 'init-eshell) + +;;; init-eshell.el ends here diff --git a/lisp/init-project.el b/lisp/init-project.el index 755d9fd..944db7c 100644 --- a/lisp/init-project.el +++ b/lisp/init-project.el @@ -17,15 +17,13 @@ (project-dired "Dired" ?d) (mpolden/grep "Grep" ?g) (magit-project-status "Magit" ?m) - (project-eshell "Eshell" ?e))) + (mpolden/eshell-other-window "Eshell" ?e))) ;; configure how projects are detected (setq project-find-functions '(mpolden/project-try-go project-try-vc)) :bind (;; C-x f finds file in project ("C-x f" . project-find-file) ;; C-c p switches project - ("C-c p" . project-switch-project) - ;; C-c e starts eshell in project - ("C-c e" . project-eshell))) + ("C-c p" . project-switch-project))) (provide 'init-project) |