summary refs log tree commit diff
path: root/emacs.d/custom/fcuny-eshell.el
diff options
context:
space:
mode:
authorFranck Cuny <fcuny@twitter.com>2019-08-29 16:57:58 -0700
committerFranck Cuny <fcuny@twitter.com>2019-08-29 16:57:58 -0700
commit3325f76f2844795b493fd4cfd819798b8dc98bef (patch)
tree604db2109b5084508d3fa9ffa765058da5fb12b0 /emacs.d/custom/fcuny-eshell.el
parent[emacs] fix configuration for json (diff)
downloademacs.d-3325f76f2844795b493fd4cfd819798b8dc98bef.tar.gz
[emacs] giving a try to eshell
Diffstat (limited to '')
-rw-r--r--emacs.d/custom/fcuny-eshell.el38
1 files changed, 38 insertions, 0 deletions
diff --git a/emacs.d/custom/fcuny-eshell.el b/emacs.d/custom/fcuny-eshell.el
new file mode 100644
index 0000000..0bf6547
--- /dev/null
+++ b/emacs.d/custom/fcuny-eshell.el
@@ -0,0 +1,38 @@
+(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 "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)