vimの現在の作業ディレクトリがvimが開始された場所と異なるのはなぜですか?

Aug 21 2020

vimは、コマンドラインからvimを起動したときとは異なる現在の作業ディレクトリを表示しています。.vimrcvim -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

ノート:

  • :set autochdir? 出力 noautochdir
  • :verbose set autochdir? 出力 noautochdir
  • :!pwdそして:pwd、両方の出力を同じディレクトリ
  • 問題は次の場合にも発生します vim --noplugin
  • 最近アップグレードvimしましたpython(経由brew upgrade)。
  • 最近変更していません.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にコンパイル)Homebrewによりコンパイル

編集:最初はこれが原因だと思っていました:edit other-fileが、今では1つのファイルを編集するだけで表示されるので、上記を変更して不要な側面を削除しました。

回答

1 RobBednark Aug 23 2020 at 19:22

理由は:私が行っていた:lcdいくつかの点で、そして私が.vimrc持っているautocmdに秒をmkviewし、loadviewそのファイルを再度編集していた、出てバッファに入るときに:lcd、他のディレクトリに。

ソリューション:

オプション1--現在の作業ディレクトリを編集中のファイルのディレクトリに変更し、以下を保存します。

cd %:p:h
:wq

オプション2-対応するビューファイルを削除します。例:

$ rm ~/.vim/view/*myfile*

解決/デバッグの方法:ファイル
を二等分して.vimrc、問題のある行を特定しました。これは次のとおりです。

autocmd BufWinEnter * silent! loadview

これは、ロードされているビューが原因であることを示しています。次に、で対応するviewファイルを表示し~/.vim/viewてディレクトリ名を検索したところ、次の行が表示されました。

lcd ~/quizme-read-only-prod

参照:現在のファイルディレクトリとは異なる作業ディレクトリ?