How to set working/current directory in Vim?

2019-01-13 00:11发布

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?

6条回答
你好瞎i
2楼-- · 2019-01-13 00:49

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.

查看更多
爷的心禁止访问
3楼-- · 2019-01-13 00:53

Also if you are browsing the filesystem with the netrw file explorer you can set the current directory by pressing the c key.

查看更多
别忘想泡老子
4楼-- · 2019-01-13 00:53

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楼-- · 2019-01-13 00:55

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.

查看更多
你好瞎i
6楼-- · 2019-01-13 01:01

Try adding set autochdir to your .vimrc. If you want to change it just this once, use :cd (or :cd! to force it).

查看更多
The star\"
7楼-- · 2019-01-13 01:04

Adding this to my .vimrc automatically changes Vim's working dir to the current file:

autocmd BufEnter * silent! :lcd%:p:h
查看更多
登录 后发表回答