2015-09-07 84 views
0

当我处于插入模式时,如何跳出自动生成的代码?VIM:在插入模式下跳出自动生成的代码

用例来说明我的意思

  1. 启动的Vim C语法vim test.c)。
  2. 进入插入模式(按
  3. 类型: for (bla) {
  4. 命中进入
  5. 它扩大成。

for (bla) { (CURSOR) }

  • 一个循环的型体
  • 如何跳我的光标到循环的外侧而不令人厌倦序列:ESC - >几J的 - > $ - >我
  • 所以,这将是:

    for(bla) { 
        body 
    }(CURSOR) 
    

    P.S.理想的 - 通用解决方案,适用于插入模式下发生的任何自动生成的代码。

    +3

    一个通用的解决方案可能是使用代码片段插件:UltiSnips或neosnippet。使用这两种方法,您可以使用或定义类似于您所描述的片段,并具有多个跳转点(即使有默认文本占位符);最后的跳跃点可以是“退出点” - 即最终的光标位置。请参阅:http://vimcasts.org/episodes/meet-ultisnips/ – VanLaser

    回答

    1

    你可以尝试一个映射,例如F6

    inoremap <f6> <esc>]MA 
    

    那么你可以只按<F6>将光标移动到需要的位置,在插入模式仍然停留。

    +0

    谢谢。你能解释一下''''和'M'的含义吗? – alandarev

    +2

    @alandarev':h] M' – Kent

    +0

    基本上相同:']} A'。 –