问题
So when I want to create a new file by using the :e command I don't want to specify the whole path, just the new filename. Can it be done?
回答1:
As already suggested, you can use autochdir, which will change to the directory of the file you opened, the other option is
:cd mydirectory
which will change the directory. This can be an absolute or relative path, so :cd .. will move up one level. Or you can use :cd %:h which will also change to the directory the current file is in, but without setting autochdir.
:cd
will change directory to your home directory (or on windows, print the current directory).
:cd -
will change the directory to the previous directory you visited.
回答2:
Also if you are browsing the filesystem with the netrw file explorer you can set the current directory by pressing the c key.
回答3:
Try adding set autochdir to your .vimrc. If you want to change it just this once, use :cd (or :cd! to force it).
回答4:
I don't know what is wrong with vim. I want the directory where I start up vim as the current.
I have followed the tip about autochd above and set that to noautcd in my .vimrc.
I haven't done it yet, but I am about to start up vim like this from now on:
vim —cmd 'cd `pwd`'
That will make it stick to the current directory!
回答5:
Adding this to my .vimrc automatically changes Vim's working dir to the current file:
autocmd BufEnter * silent! :lcd%:p:h
回答6:
With netrw: in addition to pressing the c key to set the current directory, you may also put:
let g:netrw_keepdir= 0
in your .vimrc; this means that netrw will keep the browsing directory the same as the current directory.
来源:https://stackoverflow.com/questions/2288756/how-to-set-working-current-directory-in-vim