Hi. I've written another little script.. But by now you need sh and a client-server version. Perhaps you like it?
just run gvim --servername MYSERVERNAME and run a backgroundtask, eg ==== takealotoftime.sh ===== #!/bin/sh sleep 2 echo "I'm ready soon" sleep 3 echo "I will take long" sleep 1 ==== takealotoftime.sh ===== :call RunMakeCommandInBackground("./takealotoftime.sh") Ah.. and set the colorschemes to values you have installed ================================================= " This script is designed to run a command (eg make) " in background only works if vim is compiled with " clientserver feature let s:normal_colorscheme=g:colors_name" let s:workinbackground_colorscheme="lilac" let s:tempfile=tempname() " add your tasks here fun BackgroundJobHasStarted() exec 'colorscheme '.s:workinbackground_colorscheme endfun " add your tasks here fun BackgroundJobHasFinisheed() exec 'cfile '.s:tempfile exec 'colorscheme '.s:normal_colorscheme endfun fun CommandHasFinished() call BackgroundJobHasFinisheed() endfun fun RunMakeCommandInBackground(cmd) if !has('clientserver') echoe "no client-server version" endif if has('gui-running') " FIXME: get vim executable name insteadn (cargs 0) let vim="gvim" else let vim="vim" endif let vim="/usr/bin/gvim" let cmd="sh -c '".a:cmd." > ".s:tempfile."; ".vim." --servername \"".v:servername."\" --remote-send \":call CommandHasFinished()<cr>\"'" "exec ":!".cmd." &" call system(cmd." &") call BackgroundJobHasStarted() endfun ================================================= How do you like it? Some improvements could be made to pass the exit code, too. Marc