>> BTW, there is another TODO item in minibuffer.el: >> >> ;; - indicate how to display the completions in *Completions* (turn >> ;; \n into something else, add special boundaries between >> ;; completions). E.g. when completing from the kill-ring. >> >> Such pre-processing can be performed by the caller. >> For a long time I used the command 'yank-from-kill-ring' >> bound to 'C-M-y' that relies on query-replace-descr >> to display newlines as ^J and displays long completions >> with an ellipsis at the end and an ellipsis on leading whitespace. > > Looks great, thanks. Any reason you bind it to C-M-y instead > of to "M-y that doesn't immediately follow C-y"? Oops, I don't remember why I forgot about no-op M-y. Here is a better patch. There is still a small problem: sometimes it's handy to slightly edit a previous string from kill-ring before inserting it. But with completing-read it's not easy to insert the space character, e.g. after 'M-p' while editing, typing 'SPC' errors with "[No matches]" and doesn't insert a space character. Could you recommend a more lightweight version of completing-read that doesn't override the 'SPC' key?