A nice little mode that acts like an interactive Lisp interpreter. It doesn’t do all the fancy shell stuff such as redirection – use the EmacsShell if you need that. IELM is an alternative to Lisp Interactive mode, which is the mode of buffer ‘*scratch*’
.
Start it using ‘M-x ielm’
. Then type ‘C-h m’
as usual for more help.
It’s real little read-eval-print loop (REPL).
IELM is a ComintMode.
You can put this in your init file to enable eldoc mode by default:
(defun my-ielm-mode-hook () (turn-on-eldoc-mode)) (add-hook 'ielm-mode-hook (lambda () (run-hooks 'my-ielm-mode-hook)))
If you use ParEdit, and already have it installed, you can enable it in IELM automatically by using this instead:
(defun my-ielm-mode-hook () (turn-on-eldoc-mode) (and (featurep 'paredit) (paredit-mode 1)))
Enabling ParEdit injudiciously in IELM may lead to an apparently nonresponsive IELM. If this occurs, consider disabling electric-indent-mode. https://paredit.org/cgit/paredit/commit/?id=bf73ccf7f76e4262213f0c34b502276ab39d950f
You can use Icicles completion in IELM. Whenever there are multiple completion candidates, Icicles completion is used (if Icicle minor mode is on). This means you can cycle to choose a candidate, complete using one or more substrings or regexps (progressive completion), and so on. See Icicles - Completion in Comint Modes.
You can use emacs itself as an inferior-lisp-program (Archive.org link) which means you’re still sending lisp forms to an external process.