私はWindowsを使用しているときにコードを管理するためにfugitive.vimと一緒にgitを使用してきました。しかし、私は問題に遭遇しました。ドキュメントによると、:GDiffコマンドはdiffウィンドウであり、ファイルの一部のみをステージングできるようにする必要があります。ただし、変更を加えたファイルでコマンドを発行すると、次のエラーメッセージが表示されます。
これはWindowsの問題ですか?vim?逃亡者?msysgit?ファイルのアクセス許可?誰か知ってる?
私はWindowsを使用しているときにコードを管理するためにfugitive.vimと一緒にgitを使用してきました。しかし、私は問題に遭遇しました。ドキュメントによると、:GDiffコマンドはdiffウィンドウであり、ファイルの一部のみをステージングできるようにする必要があります。ただし、変更を加えたファイルでコマンドを発行すると、次のエラーメッセージが表示されます。
これはWindowsの問題ですか?vim?逃亡者?msysgit?ファイルのアクセス許可?誰か知ってる?
私は同じ問題を抱えていました-これが私がそれを修正した方法です。
デフォルトでは、Vim は元のファイルの横にスワップ ファイルを保存しようとします。Fugitive は実際のファイル パスに対応しないバッファを作成するため、Vim はスワップ ファイルを作成しようとすると barfs を実行します。解決策は、Vim に書き込み可能なパスがあることを確認することです。
これを修正した方法は次のとおりです。
if has("win32") || has("win64")
set directory=$TMP
else
set directory=~/tmp
end
GitHub の元の問題は次のとおりです: https://github.com/tpope/vim-fugitive/issues/9
編集:
以下で指摘するように、おそらく次のようなものを使用する方が良いでしょう:
set directory+=,~/tmp,$TMP
Vim は、使用できる最初のパスを使用する必要があります。
ところで、私が:gdiff unsaved fileを試みたときに私が得たのと同じエラー-私がそれを保存したとき(:w)それは動作します!
これは、私の SO answer で言及されている msysgitの問題 428 に関連している可能性があります。
以前の回答で説明したようにパッチを適用してみてcmd/git.cmd
、これが役立つかどうかを確認してください。
それを除いて、2つのオプションが残っています: