73 lines
1.8 KiB
Org Mode
73 lines
1.8 KiB
Org Mode
#+TITLE: Shell Configuration
|
|
#+PROPERTY: header-args :tangle yes
|
|
|
|
* Shell
|
|
|
|
** Bash completion
|
|
|
|
#+begin_src elisp
|
|
(use-package bash-completion
|
|
:config
|
|
(require 'bash-completion)
|
|
(bash-completion-setup)
|
|
)
|
|
#+end_src
|
|
|
|
#+begin_src elisp
|
|
(defvar shell-dynamic-complete-functions t)
|
|
#+end_src
|
|
|
|
** Eshell
|
|
|
|
Add programmable bash completion to Emacs shell-mode
|
|
#+begin_src elisp :tangle yes
|
|
(require 'bash-completion)
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(add-hook 'completion-at-point-functions
|
|
'bash-completion-capf-nonexclusive nil t
|
|
)
|
|
)
|
|
)
|
|
#+end_src
|
|
|
|
Use colors in eshell
|
|
#+begin_src elisp :tangle yes
|
|
(use-package xterm-color
|
|
:commands (xterm-color-filter)
|
|
)
|
|
|
|
(use-package eshell
|
|
:after xterm-color
|
|
:config
|
|
(define-key eshell-hist-mode-map (kbd "M-r") #'consult-history)
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(setenv "TERM" "xterm-256color")))
|
|
(add-hook 'eshell-before-prompt-hook (setq xterm-color-preserve-properties t))
|
|
(add-to-list 'eshell-preoutput-filter-functions 'xterm-color-filter)
|
|
(setq eshell-output-filter-functions
|
|
(remove 'eshell-handle-ansi-color eshell-output-filter-functions)
|
|
)
|
|
)
|
|
#+end_src
|
|
|
|
Eshell completion
|
|
#+begin_src elisp :tangle yes
|
|
(add-hook 'eshell-mode-hook
|
|
(lambda ()
|
|
(add-hook 'completion-at-point-functions
|
|
'bash-completion-capf-nonexclusive nil t)))
|
|
#+end_src
|
|
|
|
Emulate A Terminal (EAT)
|
|
#+begin_src elisp :tangle yes
|
|
(use-package eat
|
|
:config
|
|
;; For `eat-eshell-mode'.
|
|
(add-hook 'eshell-load-hook #'eat-eshell-mode)
|
|
|
|
;; For `eat-eshell-visual-command-mode'.
|
|
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
|
|
)
|
|
#+end_src |