Você pode encontrar muitas possibilidades para personalizar um prompt no wiki do emacs .
No exemplo a seguir apenas três últimos nomes de diretório do caminho serão mostrados, os diretórios no início serão abreviados para uma letra:
(setq eshell-prompt-function
(lambda()
(concat (getenv "USER") "@" (getenv "HOST") ":"
((lambda (p-lst)
(if (> (length p-lst) 3)
(concat
(mapconcat (lambda (elm) (substring elm 0 1))
(butlast p-lst (- (length p-lst) 3))
"/")
"/"
(mapconcat (lambda (elm) elm)
(last p-lst (- (length p-lst) 3))
"/"))
(mapconcat (lambda (elm) elm)
p-lst
"/")))
(split-string (eshell/pwd) "/"))
(if (= (user-uid) 0) " # " " $ "))))