vim-classpath
vim-classpath copied to clipboard
lein classpath should be run with ! not system()
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.
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.
Could you please at least make it user configurable via some user customizable variable/parameter? Thanks.
Regards