From: Peng Li Date: Sat, 2 Jul 2016 14:02:33 +0000 (+0800) Subject: emacs - eshell clear buffer X-Git-Url: http://47.100.26.94:8080/?a=commitdiff_plain;h=f1ffa215e06abc973b4a204338cb903e22be78d9;p=dotfiles.git emacs - eshell clear buffer --- diff --git a/emacs.d/config.org b/emacs.d/config.org index 20411af..1830246 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -1188,69 +1188,28 @@ Occur search key bindings #+END_SRC * Eshell - -Eshell alias - +*** Eshell alias #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defalias 'e 'ido-find-file) (defalias 'ff 'ido-find-file) (defalias 'ee 'ido-find-file-other-window) - #+END_SRC -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))) #+END_SRC +*** Toggle Eshell +Toggle an eshell 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 sd/window-has-eshell () "Check if current windows list has a eshell buffer, and return the window"