vim-classpath icon indicating copy to clipboard operation
vim-classpath copied to clipboard

lein classpath should be run with ! not system()

Open tomtom opened this issue 12 years ago • 2 comments

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.

tomtom avatar Jul 24 '13 19:07 tomtom

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.

tpope avatar Jul 29 '13 07:07 tpope

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

Regards

tomtom avatar Jul 29 '13 08:07 tomtom