Visual Studio 代码使用的所有配置文件是什么?

What are ALL configuration files used by Visual Studio Code?

据我所知,

VS Code 以 JSON 格式处理 UserWorkspace 配置。 它在 工作目录 中创建 .vscode 文件夹(必要时),并在 用户主目录 中创建另一个文件夹(例如用于存储市场扩展)。

我想知道是否还有其他地方。

例如,如果您不使用“新建文件”按钮创建文件,例如来自终端:

echo "dummy" >dummy.abc

然后你在编辑器中打开它,系统会提示你这样的对话框:

如果您点击 不再显示... 并在同一目录或另一个目录中重复相同的实验,VS Code 会记住它(它不会显示第二次对话)。

我知道这不是一件重要的事情...但我想知道它存储在哪里。

那么,VS Code 使用了其他配置文件吗?

VS Code 文档提到 location for the settings files:

Depending on your platform, the user settings file is located here:

  • Windows %APPDATA%\Code\User\settings.json
  • macOS $HOME/Library/Application Support/Code/User/settings.json
  • Linux $HOME/.config/Code/User/settings.json

如果你看一下 Code 文件夹,那里存储了一堆其他文件:

Code$ tree -L 1
.
├── Backups
├── Cache
├── CachedData
├── CachedExtensions
├── Code\ Cache
├── Cookies
├── Cookies-journal
├── GPUCache
├── Local\ Storage
├── Network\ Persistent\ State
├── Preferences
├── User
├── Workspaces
├── blob_storage
├── languagepacks.json
├── logs
├── machineid
├── rapid_render.json
├── storage.json
└── webrtc_event_logs

它们包含 VS Code 维护的所有 settings/configurations(除了工作区中的 .vscode 文件夹)。如果您删除 Code 文件夹,您的 VS Code 将像刚安装时一样运行。

尽管其中大多数不像 JSON 那样易于阅读,但大多数都存储在 SQL 数据库文件中 (.vscdb)。例如,为了记住扩展名为 .abc 的文件的“Don't Show Again”提示,它存储在 User/globalStorage/state.vscdb.使用 SQLite 浏览器(如 this)打开该文件,您将看到:

...存储设置,不再提示我输入 .csv.abc 文件。 (尝试从 DB 值中删除 "abc",VS Code 将再次提示您。)

对于特定于工作区的设置,它们存储在 User/workspaceStorage 中,其中每个工作区按如下方式组织到文件夹中:

workspaceStorage$ tree -L 1
.
├── 145974865976a98123d05b3b96dbf2c5
├── 20159dfdb7c4cda12efaac5f8e64a954
├── 33fd12012abefa2f7f2f0a3f185999cf
├── 34a3fbd8b284b6cfb29882db362faa4e
├── 44b251d79bd7f8f49c350d022bf7d03d
├── 63d838186f19687db224f4f7a27c62ab
...

进入任何一个,并检查workspace.json以了解数据库文件用于哪个工作区。然后再次打开state.vscdb看到这样的东西:

...显示用于记住打开了哪些文件等的设置。

您有 default settingsuser settingsworkspace settingssingle folder settings(旧版)和 repository settings

您可以通过在命令面板中键入 "default settings" 来访问您的 defaultSettings.json (Shift+Cmd+ PShift+Ctrl+P in Windows/Linux).

您可以通过按 Cmd+,(或 Windows/Linux 中的 Ctrl+,)访问您的用户 settings.json 文件。

工作区设置位于 .code-workspace 文件中 "settings" 键,像这样:

{
    "settings": {
        "breadcrumbs.enabled": true // Settings here
    }
}

单个文件夹设置进入 /.vscode/settings.json 文件。单文件夹状态是一项遗留功能。当处于单文件夹状态时,您可以在 /.vscode/settings.json 文件中插入存储库范围和工作区范围的设置,但如果将其转换为工作区,工作区设置将停止工作。这可能会造成混淆,因为如果您在文件资源管理器中选择“Remove folder from Workspace”或“Add folder to workspace”选项,VS Code 会创建一个 implicit/unsaved 工作区。

存储库设置进入 /.vscode/settings.json 文件。

I've recorded a video on where settings are applied 包含一个轻微的误解,我希望尽快纠正,围绕我在录制时不知道的单文件夹遗留功能。我希望这会有所帮助:)

我可以毫无疑问地证明,过度依赖 IDE 菜单系统会导致痛苦。

Ubuntu中vscode的全局设置在这里:

$HOME/.config/Code/User/settings.json

我的印象是没有其他人答对你的问题...

据我所知,至少有 3 个不同的配置文件可以快速传输到新的 VSCode 设置以重现您的所有配置:

  1. settings.json
  2. keybindings.json
  3. snippet.code_snippets(如果需要,最后一个需要由用户首先为他自己的自定义片段创建;可能会有多个)

在Windows,您可以在路径下找到它们: C:\Users\YourUserName\AppData\Roaming\Code\User

您还可以使用代码 CLI 创建扩展列表。还有一个 CLI 命令来安装您的扩展。 code --help 如有必要,将为您提供更多信息。您还可以查看此线程:

code --list-extensions > ^
C:\Users\YourUserName\AppData\Roaming\Code\User\my_extensions.md

请注意,如果您使用的是远程 SSH,则此命令会根据您是在本地 VSCode 还是远程开发工作区提供不同的结果。