为什么vim中的当前工作目录与启动vim的目录不同?

为什么vim中的当前工作目录与启动vim的目录不同?,vim,Vim,vim显示的当前工作目录与我从命令行启动vim时使用的目录不同。如果我运行时没有使用.vimrc(vim-u NONE),问题就会消失。我如何调试它以找出发生这种情况的原因 $ pwd /Users/rbednark/Dropbox/git/quizme_personal_files/bin $ vim --noplugin :pwd /Users/rbednark/Dropbox/git/quizme_personal_files/bin :edit settings.sh :pwd /U

vim显示的当前工作目录与我从命令行启动vim时使用的目录不同。如果我运行时没有使用
.vimrc
vim-u NONE
),问题就会消失。我如何调试它以找出发生这种情况的原因

$ pwd
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
$ vim --noplugin
:pwd 
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
:edit settings.sh
:pwd 
/Users/rbednark/quizme-read-only-prod
(expected: 
  /Users/rbednark/Dropbox/git/quizme_personal_files/bin
 actual: 
  /Users/rbednark/quizme-read-only-prod
)
如果我不使用
。vimrc
,问题就会消失:

$ vim -u NONE
注:


  • :设置自动chdir?
    输出
    noautochdir
  • :详细设置自动chdir?
    输出
    noautochdir
  • :!pwd
    :pwd
    都输出相同的目录
  • vim--noplugin
  • 我最近升级了
    vim
    python
    (通过
    brew升级
  • 我最近没有更改我的
    .vimrc
    (除了添加一些注释)。它在git中受版本控制,所以我确认这些是唯一的更改
  • 已经用vundle安装并更新了我的插件(
    :VundleInstall
    :VundleUpdate
  • 对我的
    .bashrc
    做了一些更改,但我认为不会改变vim的行为
  • OS:macOS Mojave 10.14.6
  • vim:8.2(2019年12月12日编译,2020年8月20日22:44:15)由自制软件编译

编辑:我最初以为这是因为做了
:编辑其他文件,但现在我只编辑了一个文件就看到了,所以我改变了上面的内容以删除不必要的方面。

原因:我在某个时候做了一个
:lcd
,而我的
.vimrc
在离开和进入缓冲区时有
autocmd
s到
mkview
loadview
,因此再次编辑文件就是对另一个目录执行
:lcd

解决方案:

选项1——将当前工作目录更改为正在编辑的文件的目录,然后保存:

cd %:p:h
:wq
选项2——删除相应的视图文件,例如

$ rm ~/.vim/view/*myfile*
我是如何解决/调试的:
我将
.vimrc
文件一分为二,以确定有问题的行, 这是:

autocmd BufWinEnter * silent! loadview
这表明这是由于一个视图正在加载。然后,我在
~/.vim/view
中查看了相应的
视图
文件,并搜索了目录名,结果得到了这一行:

lcd ~/quizme-read-only-prod

另请参见:

如果您使用
vim--noplugin
启动vim,会发生这种情况吗?
:设置autochdir?
是的,如果跳过时它消失了,也会发生在
vim--noplugin
:设置autochdir?
输出
noautochdir
@MattWell。vimrc,我想就把它分开吧。。。