There is no way to do it and it is normal that there isn't: normal mode commands are generally pretty short and can be cancelled with Esc if you mess it.
A possible workaround would be to use the :normal
command. It makes the process longer but for example if you type :normal 10j
in the command line, Vim will execute 10j
as if you typed it in normal mode. (See :h :normal
)
You could also add these lines to your .vimrc
:
nnoremap <F4> :call NormalModeCommand()<CR>
function! NormalModeCommand()
let command = input("Normal command: ")
execute "normal " . command
endfunction
They create a mapping (here F4 but use whatever you want) which will call the function NormalModeCommand()
.
The function allows you to type a string in the command line and then execute the string you typed as a normal mode command. As you type the string in the command line you can correct it as every other command. Of course it is not ideal but once again Vim isn't meant to do that.