summaryrefslogtreecommitdiff
path: root/emacs/custom/fcuny-eshell.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/custom/fcuny-eshell.el')
-rw-r--r--emacs/custom/fcuny-eshell.el39
1 files changed, 39 insertions, 0 deletions
diff --git a/emacs/custom/fcuny-eshell.el b/emacs/custom/fcuny-eshell.el
new file mode 100644
index 0000000..113964c
--- /dev/null
+++ b/emacs/custom/fcuny-eshell.el
@@ -0,0 +1,39 @@
+(use-package eshell
+ :hook (eshell-mode . fcuny/eshell-mode-setup)
+
+ :custom
+ (eshell-scroll-to-bottom-on-input 'all)
+ (eshell-error-if-no-glob t)
+ (eshell-hist-ignoredups t)
+ (eshell-save-history-on-exit t)
+ (eshell-prefer-lisp-functions nil)
+ (eshell-destroy-buffer-when-process-dies t)
+
+ :init
+ (defun fcuny/eshell-mode-setup ()
+ (eshell/alias "e" "find-file $1")
+ (eshell/alias "emacs" "find-file $1")
+ (eshell/alias "ee" "find-file-other-window $1")
+
+ (eshell/alias "gs" "magit-status")
+ (eshell/alias "gd" "magit-diff-unstaged")
+ (eshell/alias "gds" "magit-diff-staged")
+ (eshell/alias "d" "dired $1"))
+
+ (defun eshell/gst (&rest args)
+ (magit-status (pop args) nil)
+ (eshell/echo)) ;; The echo command suppresses output
+
+ (defun fcuny/eshell-here ()
+ "Opens up a new shell in the directory associated with the current
+buffer's file. The eshell is renamed to match that directory to make
+multiple eshell windows easier."
+ (interactive)
+ (let* ((height (/ (window-total-height) 3)))
+ (split-window-vertically (- height))
+ (other-window 1)
+ (eshell "new")
+ (insert (concat "ls"))
+ (eshell-send-input))))
+
+(provide 'fcuny-eshell)