vim自动进入打开文件所在目录,原谅我无耻地 copy。

如果装了插件 NERDTree,使用 :NERDTreeFind 可以扩展到打开文件所在目录。不自动有点麻烦。

百度了一圈,找到的答案是使用

1
2
"在.vimrc 中加入
execute "cd" expand("%:h")

缺点是如果目录路径中有特殊字符可能报错。比如: vim-set-working-directory-to-the-current-file-1.jpg

使用 Google 查找关键词 vimrc execute cd expand,找到 vim 官方解决办法。

1
2
3
4
5
6
7
set autochdir

autocmd BufEnter * silent! lcd %:p:h


autocmd BufEnter * if expand("%:p:h") !~ '^/tmp' | silent! lcd %:p:h | endif

第一种,可能和某些插件有冲突,本人测试刚才有特殊字符的文件正常。 后面两个兼容性更好,最后一个加了判断,/tmp 中的文件不切换到改路径去。此法最好。

参考文档1文档2-wiki.