emacs - eshell clear buffer
authorPeng Li <seudut@gmail.com>
Sat, 2 Jul 2016 14:02:33 +0000 (22:02 +0800)
committerPeng Li <seudut@gmail.com>
Sat, 2 Jul 2016 14:02:33 +0000 (22:02 +0800)
emacs.d/config.org

index 20411af..1830246 100644 (file)
@@ -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"