Furash Gary wrote:
I'm using VIM on windows with cygwin.  In my _vimrc I've got the
following

" automatically swithc directories set autochdir

        " For cygwin shell
set shell=C:/cygwin/bin/bash set shellcmdflag=--login\ -c set shellxquote=\"
When I try to use cygwin stuff with the "!" command or similar things
from vim, it doesn't seem to know where it is.

That is, if I open up a file on the desktop with gvim, and do

        :pwd

It prints out the path of the desktop (thanks to autochdir I think).
However, if I do

        :! pwd

It prints out the location of my windows home directory.  Is there
anyway I could automatically pass to the shell the location it should
start in?



":pwd" and ":! pwd" don't return the same directory, that is normal. ":pwd" returns Vim's internal "current directory", it changes whenever you use internal ":cd", and 'autochdir' can change it implicitly; such changes are not brought back to the shell. To change the shell's current directory (as shown by ":! pwd" on Unix-like systems and by ":! cd" on dos-like systems) you can use the ":! cd" command, as follows:

au BufReadPost * exe "!cd" expand("%:p:h")

The above is untested but I believe it ought to work on Unix as well as on Windows.


Best regards,
Tony.

Reply via email to