-Quickly start eshll in split window below, refer [[http://www.howardism.org/Technical/Emacs/eshell-fun.html][eshell-here]]
-
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- ;; (defun eshell-x ()
- ;; (insert "exit")
- ;; (eshell-send-input)
- ;; (delete-window))
-
- ;; (defun sd/toggle-eshell ()
- ;; "Open a eshell windows vertically"
- ;; (interactive)
- ;; (if 1
- ;; (message "true")
- ;; (progn
- ;; (split-window-vertically (- (/ (window-total-height) 3)))
- ;; (other-window 1)
- ;; (switch-to-buffer eshell-buffer-name)
- ;; (goto-char (point-max))
- ;; (eshell-kill-input)
- ;; (insert (format "cd %s" default-directory))
- ;; (eshell-send-input)
- ;; (goto-char (point-max))
- ;; (insert (concat "ls"))
- ;; (eshell-send-input))))
- ;; (defun 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* ((parent (if (buffer-file-name)
- ;; (file-name-directory (buffer-file-name))
- ;; default-directory))
- ;; (height (/ (window-total-height) 3))
- ;; (name (car (last (split-string parent "/" t))))
- ;; (eshell-name (concat "*eshell: " name "*")))
- ;; (split-window-vertically (- height))
- ;; (other-window 1)
- ;; (if (get-buffer eshell-name)
- ;; (progn
- ;; (message "buffer exist")
- ;; (switch-to-buffer eshell-name))
- ;; (progn
- ;; (eshell "new")
- ;; (rename-buffer eshell-name)
-
- ;; (insert (concat "ls"))
- ;; (eshell-send-input)))))
-
- ;; (global-unset-key (kbd "M-`"))
- ;; (global-set-key (kbd "M-`") #'eshell-here)
+*** Eshell erase buffer
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defun sd/eshell-clear-buffer ()
+ "Clear eshell buffer"
+ (interactive)
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (eshell-send-input)))
+
+ (add-hook 'eshell-mode-hook (lambda ()
+ (local-set-key (kbd "C-l") 'sd/eshell-clear-buffer)))