VIM: exit insert mode with :normal command
When I go into insert mode with the :normal command (:normal i
) for example, how do I exit insert mode?
If I press <Esc>, or <c-c>, or <c-[>, VIM exits command mode and I can't run my :normal开发者_运维问答 command.
I put imap <c-e> <Esc>
in my .vimrc but when I type <c-e> in command mode, nothing gets inserted. I can't figure out how to enter a "control e" in command mode.
<c-o> works, for example :normal Ihello<c-o>Aworld
but sometimes I want to do more than one command in normal mode.
I know I can use a macro, but I want to know how to do it with :normal.
To add a literal <ESC>
to your command, while in insert mode, press CTRL+V
then <ESC>
.
See :help i_CTRL-V
.
The maintainable solution would be:
exe "normal! Ihello\<c-o>Aaworld\<esc>"
... :h :normal
:imap
will not trigger in command mode. Use :cmap
or better, :cnoremap
.
And as too much php said, CTRL-V makes it possible to insert raw characters in insert mode or command line editing.
精彩评论