In addition to the CtrlF, which provides complete navigation on the command history, you could use CtrlR+: in insert mode (faster but works only for the latest command):
CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
Insert the contents of a register. Between typing CTRL-R and
the second character, '"' will be displayed to indicate that
you are expected to enter the name of a register.
The text is inserted as if you typed it, but mappings and
abbreviations are not used. If you have options like
'textwidth', 'formatoptions', or 'autoindent' set, this will
influence what will be inserted. This is different from what
happens with the "p" command and pasting with the mouse.
Special registers:
'"' the unnamed register, containing the text of
the last delete or yank
'%' the current file name
'#' the alternate file name
'*' the clipboard contents (X11: primary selection)
'+' the clipboard contents
'/' the last search pattern
':' the last command-line
'.' the last inserted text
'-' the last small (less than a line) delete
You could also use the equivalent in normal mode: ":p:
*p* *put* *E353*
["x]p Put the text [from register x] after the cursor
[count] times. {Vi: no count}
*P*
["x]P Put the text [from register x] before the cursor
[count] times. {Vi: no count}
"*p
? – hgiesel Jun 21 '16 at 11:51@:
, so":p
. – Antony Jun 21 '16 at 13:54