执行外部命令后进入插入模式

时间:2012-09-15 13:38:06

标签: vim

这是我的映射:

autocmd FileType java inoremap <F5> <ESC>:upd\|!javac %<CR>:!java %:r<CR>

它一次完成三件事:保存,编译和运行java文件。它按预期工作,但我想要更多。

实际上,当运行.class文件并按任意键进入编辑器窗口时,我仍然处于正常模式,这是我不想做的。我想在按任意键后立即进入插入模式。

我尝试将i附加到映射:

autocmd FileType java inoremap <F5> <ESC>:upd\|!javac %<CR>:!java %:r<CR>i

但是这甚至没有时间来查看.class文件的输出(即它保存,编译,执行并进入插入模式而不会暂停)。

我想做我的第一个映射正在做的所有事情,以及在按任意键后更改为插入模式。

2 个答案:

答案 0 :(得分:1)

您可以通过getchar()等待按键。在映射中附加以下内容:

:call getchar()<CR>

或者,带有消息:

:echo "Press any key"<Bar>call getchar()<CR>

之后,您可以通过i:startinsert

重新进入插入模式
:echo "Press any key"<Bar>call getchar()<Bar>startinsert<CR>

答案 1 :(得分:0)

最后尝试使用:start<cr>:norm i<cr>