今すぐ行うこと
- 同じフォルダーかワークスペースで VS Code を開き直します。ふつうは Hot Exit が未保存のエディターを自動で戻します。
- タブが戻らなければ、VS Code を再び起動する前に Backups フォルダー(ふつう %APPDATA%\Code\Backups)をコピーします。
- 上書き保存してしまったファイルなら、そのファイルを開いてタイムラインビューでローカル履歴を確認します。
- 保存しないでエディターを閉じた場合はバックアップが意図的に消されており、削除ファイルのスキャンでしか見つからないかもしれません。
手順
同じフォルダーやワークスペースを開き直す
VS Code を起動し、ファイル、最近使用した項目を開くなどで、使っていたフォルダーやワークスペースをそのまま開きます。バックアップは特定のウィンドウに結び付いているため、別のフォルダーを開いても表示されません。戻ったエディターはすぐ保存してください。
Hot Exit の設定を確認する
設定を開いて files.hotExit を検索します。既定値の onExit なら、VS Code を閉じるとき未保存のエディターが保持されます。off になっていた場合、未保存の内容はバックアップされず、Backups フォルダーもたいてい空です。
Backups フォルダーをコピーする
VS Code を閉じます。エクスプローラーのアドレスバーに %APPDATA%\Code\Backups を貼り付け、フォルダーごと別の場所へコピーします。サブフォルダー一つがウィンドウ一つに対応し、Untitled のエディターや変更済みファイルのバックアップが入っています。
バックアップファイルを安全に読む
バックアップファイルの 1 行目には元のパスか untitled の名前があり、その後に書いた内容が続きます。コピーを任意のテキストエディターで開いて 1 行目を消すか、次の検索ツールに任せてください。
検索ツールで集める
FileFix Ultimate で、プログラムが落ちて保存できなかったファイルを探すを開き、未保存ファイルを探すをクリックします。プログラムを Visual Studio Code で絞り込みます。項目名は元のファイル名か Untitled タブの名前になり、選択した項目をコピーでヘッダー行を除いたテキストが保存されます。
保存済みファイルはローカル履歴を使う
うまく動いていたコードを上書き保存してしまったなら、そのファイルを VS Code で開き、エクスプローラーのサイドバーでタイムラインを展開して以前のローカル履歴を選びます。今の版と比べてから復元できます。
Hot Exit とローカル履歴は別のもの
Hot Exit は一度も保存していない内容のための機能です。VS Code を終了したり、ウィンドウを閉じたり、落ちたりすると、変更中のすべてのエディターのバックアップを書き込み、次の起動時に保存するか尋ねずに戻します。エディターを保存するか変更を破棄するとバックアップは消えるので、未保存の変更がある間だけ存在します。
ローカル履歴は保存した内容のための機能です。保存のたびに VS Code は以前の版のコピーをユーザーデータフォルダー(ふつう %APPDATA%\Code\User\History)に残すことができ、それをタイムラインビューに一覧表示します。ファイルとして一度も保存していない Untitled のエディターは対象外です。
タブが戻らないことがある理由
バックアップはウィンドウのフォルダーやワークスペースに結び付いています。別のフォルダーや空のウィンドウで VS Code を開くと、バックアップがディスクに残っていても何も表示されません。設定の同期、プロファイルの切り替え、安定版ではなく Insiders の起動、ポータブル版も別のデータフォルダーを使います。たとえば Insiders はふつう Code - Insiders フォルダーにファイルを置きます。
AppData を空にする掃除ソフト、ユーザーデータまで消す再インストール、保存しないでエディターを閉じる操作が、バックアップが本当に消えるよくある原因です。何度も起動し直す前に Backups フォルダーをコピーしてください。
コードが Git リポジトリにあった場合
プロジェクトで Git を使っていても、コミットしていない変更は Git にはありません。ただしコミットや stash した内容は Git から戻せます。まずソース管理ビューと git stash list を確認してください。一度もコミットしていないソースファイルを削除した場合、残る方法はドライブの削除ファイルスキャンです。
復元できない場合
- files.hotExit が off で、未保存のエディターが一度もディスクに書かれなかった場合。
- 保存しないでエディターを閉じ、削除されたバックアップが上書きされたか SSD の TRIM で消去された場合。
- 掃除ソフトや設定まで消す再インストールで、VS Code のユーザーデータフォルダーが削除された場合。
- ローカル履歴がオフだったか、保持数の上限で必要な版がすでに消えていた場合。
FileFix Ultimate でできること
- %APPDATA%\Code\Backups の Hot Exit バックアップを読み取り専用で探し、メモ帳・Notepad++・Office の回復ファイルも一緒に探します。
- 各バックアップから元のファイルパスや Untitled の名前を読み取り、ファイル名を提案します。
- バックアップのヘッダー行を除いたテキストを、指定したフォルダーへコピーします。
- バックアップがすでに削除されていても、削除ファイルの復元で C ドライブを探し、別のディスクに保存できます。
- 個人利用は無料で完全オフラインなので、ソースコードが PC の外へ出ることはありません。
FileFix Ultimate は個人利用なら無料で、オフラインで動作し、復元元のドライブには書き込みません。業務利用にはPC 1台ごとに1年間のライセンスが必要です。実行前に署名を確認してください。
よく寄せられる質問
VS Code は未保存のファイルをどこに保存していますか?
通常のインストールでは、ふつう %APPDATA%\Code\Backups にウィンドウごとのサブフォルダーとして置かれます。Insiders やポータブル版は独自のデータフォルダーを使うため、パスが異なることがあります。
VS Code が落ちた後も Untitled タブは残りますか?
既定どおり files.hotExit が有効なら、たいてい残ります。同じウィンドウやワークスペースを開き直せば Untitled のエディターが戻るはずです。戻らなければ、先に Backups フォルダーをコピーしてください。
ローカル履歴で Untitled のファイルを戻せますか?
戻せません。ローカル履歴はファイルを保存したときの版を記録するものです。一度も保存していない Untitled のエディターは Hot Exit のバックアップにしかありません。
VS Code で以前に保存した版はどう探しますか?
ファイルを開き、エクスプローラーのサイドバーでタイムラインを展開してローカル履歴を選びます。コマンドパレットで Local History を検索すると、複数ファイルの履歴も探せます。