summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs/init.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/emacs/init.el b/emacs/init.el
index 12cc4bc..2f24643 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -182,6 +182,16 @@ given keymap or in the global keymap."
'(0 1 2 3 4 5 6 7 8 9)))
(my/c-x-n-to-m-n)
+(defun my/eshell (&optional arg)
+ "Create a new eshell or switch to an existing one.
+With ARG, make anew shell. If the current buffer is an eshell, switch
+back to the previous selected buffer."
+ (interactive "P")
+ (if (eq major-mode 'eshell-mode)
+ ;; switch back
+ (switch-to-prev-buffer)
+ (eshell arg)))
+
(defvar my/layout-pair (cons nil nil) "Cons pair of window configurations.")
(add-hook 'after-init-hook
(lambda ()
@@ -764,6 +774,7 @@ current layout."
(keymap-set my/keys-mode-map "C-M-z" 'my/wrap-sexp)
(keymap-set my/keys-mode-map "M-o" 'other-window)
(keymap-set my/keys-mode-map "M-c" 'calc)
+ (keymap-set my/keys-mode-map "M-RET" 'my/eshell)
(keymap-set my/keys-mode-map "M-U" 'scroll-lock-mode)
(keymap-set my/keys-mode-map "M-Q" 'auto-fill-mode)
(keymap-set my/keys-mode-map "M-A" 'beginning-of-line-text)