Defer[expr] returns an object that remains unchanged until it is explicitly supplied as Mathematica input and evaluated using Shift+Enter, Evaluate in Place, etc.
Defer gives an object whose evaluation is merely deferred until it is explicitly given as Mathematica input; HoldForm gives an object that is never evaluated.
If an object contains several levels of nested Defer constructs, one level is removed each time the object is evaluated as Mathematica input.