vimの現在の作業ディレクトリがvimが開始された場所と異なるのはなぜですか?
Aug 21 2020
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
ノート:
: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
参照:現在のファイルディレクトリとは異なる作業ディレクトリ?