The attached pp.el patch does the following: * Adds two user options used by `pp-eval-expression': `pp-eval-expression-print-length' `pp-eval-expression-print-level' * Changes `pp-eval-expression' in these ways: . Respects the new options and `eval-expression-debug-on-error'. . Reads the expression using keymap `pp-read-expression-map', which provides some Emacs-Lisp mode bindings. . Adds an optional arg INSERT-VALUE (prefix-arg), similar to what `eval-expression' has. See doc string. I find it useful. YMMV. I bind it to `M-:'. In minibuffer maps, I bind `M-:' to a command that calls this after binding `enable-recursive-minibuffers' to t. With a negative prefix arg, I yank string values (e.g. of variables) to the minibuffer (without double-quotes).