VS Code 中的用户特定工作区设置

Posted

技术标签:

【中文标题】VS Code 中的用户特定工作区设置【英文标题】:User-Specific Workspace Settings in VS Code 【发布时间】:2017-07-26 16:23:41 【问题描述】:

正在处理一个 Python 项目,我想定义存储项目的 virtualenv 的路径。

我的 .vscode/settings.json 工作区设置中有 linting 设置,但是这已检查到我的 git 存储库中,并且在项目的任何协作者中都很常见,因此我认为参考我个人保存我的位置没有意义在工作区设置中为这个项目创建 virtualenv。

因为它是一个特定于项目的 virtualenv,所以在我的用户设置中引用它也没有意义。

有没有办法为这个项目存储我的 virtualenv 路径?

【问题讨论】:

看到这个SO article。 @CrnaStena 我明白了关于使用 EditorConfig 的意义,但这并不完全相同 - 我想配置 VSCode 特定设置,但有些与整个团队相关(即使用哪个 linter),有些是仅与用户相关(即存储二进制文件的完整路径) 有同样的问题,我想与团队共享特定于工作区的设置,但这会阻止我存储特定于该工作区的用户设置,例如我的“perforce.client”。跨度> 【参考方案1】:

您可以使用 code-workspace.json 中的设置覆盖 .vscode/settings.json,但似乎无法进行更通用和灵活的覆盖 - 我建议投票给 Add ability to extend from other settings files。如果你同时提交.vscode/settings.json[name].code-workspace,那么团队成员似乎很难自定义他们的设置。

.vscode/settings.json 中的嵌套设置似乎覆盖了[name].code-workspace 设置,因此您可以尝试提交工作区文件。有些人还提交示例文件,例如settings.json.default 并指示团队成员删除默认扩展名。

我搞砸了一个例子: example.code-workspace


    "folders": [
        
            "path": "."
        ,
        
            "path": "nested"
        
    ],
    "settings": 
        "window.zoomLevel": 1,
        "editor.fontSize": 8
    

嵌套包含.vscode/settings.json:


    "window.zoomLevel": 2,
    "editor.fontSize": 16

这如您所料:嵌套文件夹设置会覆盖工作区设置,尽管 window.zoomLevel 被禁用并显示一条工具提示消息,指出只有直接打开它才会应用。

【讨论】:

【参考方案2】:

如果您将 virtualenv 保存在与项目代码本身相同的文件夹中,这应该是可能的。然后你可以在.vscode/settings.json中使用如下设置:

"python.venvPath": "$workspaceRoot/venv"

只需从您的 SCM 中排除 venv 即可。

如果您希望将 virtualenv 保留在其他地方,可以通过将位置符号链接到工作区根目录内的 venv 来解决此问题。

【讨论】:

这是一个很好的解决方案。对我来说,这已经足够并且效果最佳。谢谢 我收到此错误消息:“此设置只能应用于本地窗口的用户设置或远程窗口的远程设置。”我什至不知道这是什么意思。 对我有用的是:"python.pythonPath": "$workspaceRoot/venv/bin/python"(使用答案中建议的venv符号链接)。

以上是关于VS Code 中的用户特定工作区设置的主要内容,如果未能解决你的问题,请参考以下文章

即使在更新设置中的字体大小后,VS Code字体大小仍然相同[重复]

VS Code 中的错误 [无法写入用户设置。请打开用户设置以更正其中的错误/警告,然后重试。]

VS Code 切换文件语言 配置语言特定的设置

VS Code中多个文件中的断点?

新手求教VS CODE为啥C/C++无代码补全

如何使用 Angular 和 Flutter(都是 Dart)为工作区设置 VS Code 调试?