Visual Studio 代码使用的所有配置文件是什么?
What are ALL configuration files used by Visual Studio Code?
据我所知,VS Code 以 JSON
格式处理 User 和 Workspace 配置。
它在 工作目录 中创建 .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 settings
、user settings
、workspace settings
、single folder settings
(旧版)和 repository settings
。
您可以通过在命令面板中键入 "default settings" 来访问您的 defaultSettings.json
(Shift+Cmd+ P 或 Shift+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 设置以重现您的所有配置:
- settings.json
- keybindings.json
- 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 还是远程开发工作区提供不同的结果。
VS Code 以 JSON
格式处理 User 和 Workspace 配置。
它在 工作目录 中创建 .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 settings
、user settings
、workspace settings
、single folder settings
(旧版)和 repository settings
。
您可以通过在命令面板中键入 "default settings" 来访问您的 defaultSettings.json
(Shift+Cmd+ P 或 Shift+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 设置以重现您的所有配置:
- settings.json
- keybindings.json
- 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 还是远程开发工作区提供不同的结果。