Skip to content

lein classpath should be run with ! not system() #4

Open

Description

@tomtom

I'm having problems to get vim-classpath to work with GVIM @ Ubuntu 12.04. This can be easily fixed with this diff:

index f578405..8749612 100644
--- a/autoload/classpath.vim
+++ b/autoload/classpath.vim
@@ -123,7 +123,9 @@ function! classpath#detect(...) abort
       let dir = getcwd()
       try
         execute cd . fnameescape(root)
-        let out = system(cmd)
+        redir => out
+        exec 'silent !' cmd
+        redir END
       finally
         execute cd . fnameescape(dir)
       endtry`

There are some differences in how shell commands are run which precludes lein classpath to return something useful. IIRC this also depends on the OS and the version of (G)VIM one uses. I cannot currently remember the details though.

Activity

  1. tpope commented on Jul 29, 2013

    @tpope
    Owner

    Reeeeally hesitant to make this switch, at least not without harder evidence. I've had hard-to-reproduce problems in the past where using ! caused weird redraw issues that vanished with system().

    Works fine for me on 13.04, FWIW.

  2. tomtom commented on Jul 29, 2013

    @tomtom
    Author

    Could you please at least make it user configurable via some user customizable variable/parameter? Thanks.

    Regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions