如果我使用vscode打开一个目录,然后打开一些文件并退出,vscode将在下次启动时重新打开所有文件。
但是有一个问题。似乎vscode没有使用相对路径来存储此信息,并且没有将此信息存储在项目目录中。因此,如果我移动或重命名该目录,然后再次打开该目录,例如code projectNewName/
,我之前的会话(打开的文件/打开的编辑器)就会丢失。我不知道这个会话数据存储在哪里,以及是否可以将它配置为存储相对路径,并将会话文件保存在项目目录中,例如,project/.vscode
或project/.vscode/session
。如果打开的编辑器会话存储在项目目录中,则无论该目录位于何处以及目录名是什么,它都将被恢复。
发布于 2021-09-27 08:58:49
TL;DR:暂时不支持配置此路径。
VSCode将所有工作区的状态存储在/Code/User/workspaceStorage/
下的全局配置文件夹中。查看适用于您的操作系统的this help paragraph中settings.json
的路径,然后只需替换该路径的末尾。例如,对于Windows,设置路径为%APPDATA%\Code\User\settings.json
,因此状态存储为
%APPDATA%/Code/User/workspaceStorage/
在这个目录中,有许多带有十六进制名称的子目录。请参考my another answer中的python脚本来浏览它。每个文件夹都包含一个workspace.json
,其中大部分数据仅引用工作区的路径。在这些目录中也有state.vscdb
文件。这些是只有一个表的sqlite数据库:
CREATE TABLE ItemTable (key TEXT UNIQUE ON CONFLICT REPLACE, value BLOB);
它用作所有状态变量的键|值存储,如:
workbench.panel.output|{"workbench.panel.output":{"collapsed":false,"isHidden":true}}
就我在VSCode source中看到的,目前仅使用来自环境的全局路径来定位此文件:
this.environmentService.workspaceStorageHome
this.environmentService.globalStorageHome
它解析为
get workspaceStorageHome(): URI { return URI.joinPath(this.appSettingsHome, 'workspaceStorage'); }
get globalStorageHome(): URI { return URI.joinPath(this.appSettingsHome, 'globalStorage'); }
因此,似乎目前还没有从settings.json
自定义它的选项。
https://stackoverflow.com/questions/54490827
复制相似问题