title: how to iab <CR> temporarily in gVim
body: <p>I put this in my <code>_vimrc</code></p>
  
  <pre><code>iab fi for(int i=0; i&lt;; i++)&lt;CR&gt;{&lt;CR&gt;}&lt;ESC&gt;2kf&lt;a
  </code></pre>
  
  <p>It expand <code>fi</code> to <code>for...loop</code></p>
  
  <pre><code>for(int i=0; i&lt; █; i++)
  {
  }
  </code></pre>
  
  <p>After input <code>100</code>, then hit <code>ENTER</code>, I want to open a new line between <code>{...}</code></p>
  
  <pre><code>for(int i=0; i&lt; 100; i++)
  {
      █
  }
  </code></pre>
  
  <p>Is there some way to do this?
  Thanks!</p>
  
  <hr>
  
  <p>I use a self-destroying mapping to <code>&lt;CR&gt;</code>, I think there's another way.</p>
  
  <pre><code>iab fi for(int i=0; i&lt;; i++)&lt;CR&gt;{&lt;CR&gt;}&lt;ESC&gt;2kf&lt;a&lt;C-R&gt;=EatSpace()&lt;CR&gt;
  
  fun! EatSpace()
      let nr = getchar()
      call MapEnter()
      if nr==32
          return ''
      else
          return nr2char(nr)
      endif
  endfun
  
  fun! MapEnter()
      inoremap &lt;CR&gt; &lt;ESC&gt;:iunmap &lt;C-V&gt;&lt;CR&gt;&lt;CR&gt;jo
      return ''
  endfun
  </code></pre>