blob: 07ed623340567a9526c725aced9bf602be6a169d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
(use-package eshell
:commands eshell
:bind ("C-c a s e" . eshell)
:config
(eval-when-compile (defvar eshell-prompt-regexp))
(defun b/eshell-quit-or-delete-char (arg)
(interactive "p")
(if (and (eolp) (looking-back eshell-prompt-regexp nil))
(eshell-life-is-too-much)
(delete-char arg)))
(defun b/eshell-clear ()
(interactive)
(let ((inhibit-read-only t))
(erase-buffer))
(eshell-send-input))
(defun b/eshell-setup ()
(make-local-variable 'company-idle-delay)
(defvar company-idle-delay)
(setq company-idle-delay nil)
(bind-keys :map eshell-mode-map
("C-d" . b/eshell-quit-or-delete-char)
("C-S-l" . b/eshell-clear)
("M-r" . counsel-esh-history)
;; ([tab] . company-complete)
:map eshell-hist-mode-map
("M-r" . counsel-esh-history)))
(setq
eshell-prompt-regexp "\\(.*\n\\)*[$#] "
eshell-prompt-function
(lambda ()
(concat
(propertize (format "%s@%s:" (user-login-name) (system-name))
'face 'default)
(propertize (abbreviate-file-name default-directory)
'face 'font-lock-comment-face)
(propertize "\n" 'face 'default)
(if (= (user-uid) 0)
(propertize "#" 'face 'red)
(propertize "$" 'face 'default))
(propertize " " 'face 'default))))
:hook (eshell-mode . b/eshell-setup)
:custom
(eshell-hist-ignoredups t)
(eshell-input-filter 'eshell-input-filter-initial-space))
(provide 'bandali-eshell)
|