Loading ...
Sorry, an error occurred while loading the content.

132063Re: differences between a nmap that call and a nmap with let... (nmap, javacomplete, maven)

Expand Messages
  • Benjamin R. Haskell
    Jul 4, 2012
    • 0 Attachment
      On Wed, 4 Jul 2012, Roberto S. wrote:

      > Hi, I'm configuring a variable called $CLASSPATH in order to have javacomplete plugin running well.
      > I'm using a software called "maven" to build the project and I have found that executing this command:
      > mvn dependency:build-classpath | grep -v "^\["
      > gives me exactly the classpath it use to compile the project... so using this to generate $CLASSPATH seems to be the better way.
      > To assign that output to $CLASSPATH using <Leader>cp, I have done:
      > function! ReadMvnClasspath()
      > let $CLASSPATH=system('echo \"`mvn dependency:build-classpath | grep -v "^\["`\"')

      Your command is needlessly complex. Wrapping the `mvn` command in
      backticks tells the shell to capture the output as a string. Wrapping
      the backticks in double-quotes prevents the shell treating spaces
      specially. But then you just echo the output that you captured as a
      string. So, it's easier to just not capture the output with backticks.
      This part of the command is all you need:

      mvn dependency:build-classpath | grep -v "^\["

      (Full command:)
      let $CLASSPATH=system('mvn dependency:build-classpath | grep -v "^\["')

      > endfunction
      > au BufRead,BufNew *.java nmap <Leader>cp :call ReadMvnClasspath()<CR>
      > and this run well.
      > The question is: can you explaing why if I try to avoid the function with next command, I obtain an error at startup?
      > au BufRead,BufNew *.java nmap <Leader>cp :let $CLASSPATH=system('echo \"`mvn dependency:build-classpath | grep -v "^\["`\"')
      > Doing this I obtain at startup:
      > :!grep -n -v "^\["`\"') /dev/null 2>&1| tee /tmp/<afile>
      > /bin/bash: -c line 0: unexpected EOF while looking for matching ``'

      I'm not sure precisely. Best guess is that Vim treats '|' specially in
      different contexts. It might work if you replace '|' with '<bar>' in
      your command. (Can't seem to find the relevant help text.)


      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    • Show all 2 messages in this topic