Use library replace+.el -- description here.
See also Emacs bug #16136, which is a related enhancement request. The problem is that users can currently decide only whether the entire prompt is to have a face. (And if so, they can customize that face.) What's needed is the ability to do that, but also let that face take a back seat to any faces that might already be given to particular parts of the prompt string.
Library replace+.el turns off the face over the entire prompt, and highlights important parts of the prompt (exactly the ones you are requesting) in different faces (which you can of course customize. If enhancement request #16136 is implemented, then the rest of the prompt can be kept in the normal prompt face (minibuffer-prompt
).
It's a bit hard to believe that the design for this was so shortsighted in Emacs, but it was. And it is implemented in C code, so it is not very amenable to user improvement. Let's hope for a fix. Meanwhile, you can get what you request, but without minibuffer-prompt
being used on the rest of the prompt, by loading replace.el
.