#+TITLE: EShell #+AUTHOR: Christopher James Hayward #+EMAIL: chris@chrishayward.xyz #+PROPERTY: header-args:emacs-lisp :tangle eshell.el :comments org #+PROPERTY: header-args :results silent :eval no-export :comments org #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil #+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil EShell is a fully POSIX compliant shell written entirely in Emacs Lisp, included with Emacs. * Config While not a traditional terminal emulator, it provides a native REPL for Emacs Lisp code, with everything in your configuration available in the environment. Make some slight configurations: + Don't highlight the prompt + Favour use of system utilities #+begin_src emacs-lisp (setq eshell-highlight-prompt nil eshell-prefer-lisp-functions nil) #+end_src * Extras Implement the lambda prompt for aesthetic purposes with the ~eshell-prompt-extras~ package. Here's an example of what that looks like: #+begin_example ~/.emacs.d/modules:main*? λ #+end_example #+begin_src emacs-lisp (use-package eshell-prompt-extras :custom (eshell-prompt-function 'epe-theme-lambda)) #+end_src * Shortcuts Open ~eshell~ in the current buffer with =SPC e=: #+begin_src emacs-lisp (dotfiles/leader "e" '(eshell :which-key "EShell")) #+end_src