Local Historyのクリア

VSCodeのLocal History(ローカル履歴)をクリアするには、コマンドパレット(F1か、Ctrl+Shift+p、macOSではCommand+Shift+p)から「Local History: Delete All」を選ぶ。これで、その環境のLocal Historyのディレクトリが、Historyディレクトリごと削除される。ディレクトリごと削除されるので、今見ているワークスペースの履歴だけでなく、その環境の履歴はすべて削除される。

Local Historyのディレクトリは、環境ごとに下記のパスに存在する。

  • Windowsなら%UserProfile%\AppData\Roaming\Code\User\History
  • Linuxなら$HOME/.vscode-server/data/User/History
  • macOSなら$HOME/Library/Application Support/Code/User/History

つまり、WindowsのローカルとWSLでは別の場所にあるし、DevContainerやリモートSSH接続ではそれぞれにディレクトリを持っているので、履歴のクリアもそれぞれの環境でやる必要がある。

Local Historyの仕様

Local History、ほとんど使わないし、むしろうざい (Gitにコミットしたら消したい) と思って消し方を調べていたのだが、ちゃんと仕様を分かって使えば案外便利かもしれない。というわけで、今まであまり意識してなかったLocal Historyの仕様をメモ。

Local Historyの作成

Local Historyは、ファイルを保存するたびに勝手に増えていく。前述のLocal Historyのディレクトリの中に、ファイルがそのままコピーされていく (差分だけ取ったりはしない)。

ただし、10秒以内に再度保存した場合は、直前の履歴が上書きされる。また、256KBを超えるファイルは保存されない。ファイルごとに50個まで履歴が保存される。

履歴は、デフォルトでは全部「File Saved」という名前が付くが、Timelineで履歴を右クリックして「Rename」することもできる。また、任意のタイミングで好きな名前を付けて履歴を取ることもできる。その場合はコマンドパレットの「Local History: Create Entry」を選び、名前を入力する。

Local Historyの参照

こうして溜めた履歴は、ファイルごとにTimelineから「Compare」や「Restore」できるし、その環境の履歴を横断的に見たければ、コマンドパレットの「Local History: Find Entry to Restore」も使える。

TimelineでGitの履歴だけを見たければ、フィルタでLocal Histroyを隠すこともできる。

img

Local Historyの設定

workbench.localHistory.enabled
Local Historyを有効/無効にする。デフォルトは有効(true)。

workbench.localHistory.maxFileSize
履歴を取るファイルの最大サイズ。これを超えると履歴は取らない。デフォルトは256KB。

workbench.localHistory.maxFileEntries
1ファイルごとに残す履歴の数。デフォルトは50。

workbench.localHistory.exclude
履歴の取得対象から除外するファイルのグロブパターン。

workbench.localHistory.mergeWindow
何秒以内の保存で前回の履歴を上書きするか。デフォルトは10秒。

※バージョンメモ

  • Visual Studio Code 1.92.2

参考資料

■Visual Studio Code March 2022 (version 1.66)
https://code.visualstudio.com/updates/v1_66#_local-history

余談

全然関係ないが、Local Historyのクリア方法を調べている過程で、Windowsで%UserProfile%を開く最短手順が「Win+r.」だということを知った。これまではWin+eでエクスプローラーを開いて「↑」ボタンを押し、ユーザ名のフォルダを選んでいたのだが、エクスプローラーの画面が出るまでに少し時間がかかるし、ユーザ名のフォルダを目で探すのも面倒くさいので、Win+r.が最強かもしれない。

■ぇ、それだけでよかったの? Windowsのユーザーフォルダーを開く最速の技 - やじうまの杜 - 窓の杜
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1306709.html

さらに脱線するが、Win+rshell:sendtoと入力すると%UserProfile%\AppData\Roaming\Microsoft\Windows\SendToが開くなどのShellコマンドにも、実はかなりいろいろな種類があるらしい。

■Windows11で使える「ファイル名を指定して実行」Shellコマンド一覧 - Qiita
https://qiita.com/yuuki_kagura/items/7b87ed5a074e71d4a717