title: Format line with code and comments in vim
body: <p>Using the following settings</p>
  
  <pre><code>set textwidth=40
  set fo? -&gt; formatoptions=croql)
  set comments?    -&gt; comments=sO:* -,mO:*  ,exO:*/,s1:/*,mb:*,ex:*/,://
  set cindent
  set cinoptions   -&gt;cinoptions=
  </code></pre>
  
  <p>If I enter insert mode and start typing the following line</p>
  
  <pre><code>    // abc abc abc abc abc abc abc abc
  </code></pre>
  
  <p>the line breaks at the 40th character, as expected:</p>
  
  <pre><code>    // abc abc abc abc abc abc abc
      // abc
  </code></pre>
  
  <p>Also, if a line longer than 40 characters is copied and pasted  as</p>
  
  <pre><code>    // abc abc abc abc abc abc abc abc
  </code></pre>
  
  <p>and command <code>gqq</code> is typed it ends up with the same result as above.</p>
  
  <p>But I've noticed that if I enter insert mode and type the line below</p>
  
  <pre><code>    void funAbc(void) { // abc abc abc abc abc abc abc abc
  </code></pre>
  
  <p>it doesn't break the line. If command <code>gqq</code> is entered it results in</p>
  
  <pre><code>    void funAbc(void) { // abc abc
          abc abc abc abc abc abc
  </code></pre>
  
  <p>I've expected that both inserting line longer than 40 characters or issuing <code>gqq</code> would break the comments and insert "//" in the next line - something similar to this:</p>
  
  <pre><code>    void funAbc(void) { // abc abc
          // abc abc abc abc abc abc
  </code></pre>
  
  <p>I've tried setting <code>'smartindent'</code> but it didn't solved the issue.</p>
  
  <p>Is there any option/trick that can change the behavior of these comments starting after code?</p>