title: Can vimgrep be used with lookaround assertions?
body: <p>I'm trying automate some text operations on a large JavaScript project, and wish to jump to the matches using <code>vimgrep</code>, which I'll follow with various macro invocations.</p>
  
  <p>My target lines look like this:</p>
  
  <pre><code>getText("foo", 1)
  </code></pre>
  
  <p>But, not like this:</p>
  
  <pre><code>getText("foo")
  getText("foo", [1])
  </code></pre>
  
  <p>I only want to match usages of <code>getText</code> that have more than one parameter, which is not enclosed in an array.</p>
  
  <p>This search query (<kbd>/</kbd>), which uses a negative look-ahead, seems to work:</p>
  
  <pre><code>getText(.*",\(.*[\)\@!
  </code></pre>
  
  <p>But, running this regular expression with <code>vimgrep</code>:</p>
  
  <pre><code>:vimgrep /getText(.*",\(.*[\)\@!/ project/src/**/*.js
  </code></pre>
  
  <p>...fails with this message:</p>
  
  <pre><code>E682: Invalid search pattern or delimiter
  </code></pre>
  
  <p>I suspect that the look-ahead part of my regex is the cause, as the error goes away when I remove it.</p>
  
  <p><strong>Is there a way to utilize lookaround assertions with <code>vimgrep</code>?</strong></p>