VSCode的默认设置文件在哪里?

时间:2018-11-19 06:29:16

标签: visual-studio-code vscode-settings

在Windows计算机上,VS Code用户设置文件位于%AppData%\Code\User\settings.json

当我们从上述位置打开用户设置文件或转到文件->首选项->设置<时,包含默认设置的文件的位置在左窗格中显示在什么位置? / strong>菜单?

storage.json中有一个%AppData%\Code\User\,但这看起来并不像整个设置。

4 个答案:

答案 0 :(得分:1)

简短答案

默认设置是 vscode源中的硬编码。任何地方都没有数据文件可以将它们全部收集在一起,也可以随时更改以更改它们。

长答案

让我们看一些示例。打开“设置”时,我会看到一长串列表,它位于顶部:

Screenshot of top of Settings GUI

第一个条目是“文件:自动保存”。这是由files.contribution.ts中的Typescript代码片段定义的:

        'files.autoSave': {
            'type': 'string',
            'enum': [AutoSaveConfiguration.OFF, AutoSaveConfiguration.AFTER_DELAY, AutoSaveConfiguration.ON_FOCUS_CHANGE, AutoSaveConfiguration.ON_WINDOW_CHANGE],
            'markdownEnumDescriptions': [
                nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'files.autoSave.off' }, "A dirty file is never automatically saved."),
                nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'files.autoSave.afterDelay' }, "A dirty file is automatically saved after the configured `#files.autoSaveDelay#`."),
                nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'files.autoSave.onFocusChange' }, "A dirty file is automatically saved when the editor loses focus."),
                nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'files.autoSave.onWindowChange' }, "A dirty file is automatically saved when the window loses focus.")
            ],
            'default': platform.isWeb ? AutoSaveConfiguration.AFTER_DELAY : AutoSaveConfiguration.OFF,
            'markdownDescription': nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'autoSave' }, "Controls auto save of dirty files. Read more about autosave [here](https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save).", AutoSaveConfiguration.OFF, AutoSaveConfiguration.AFTER_DELAY, AutoSaveConfiguration.ON_FOCUS_CHANGE, AutoSaveConfiguration.ON_WINDOW_CHANGE, AutoSaveConfiguration.AFTER_DELAY)
        },

请注意default值,该值偶然取决于isWeb变量。由于我在Windows上运行VSCode(其中isWeb显然为假),因此该属性的默认值为“ off”。

下一个属性是“文件:自动保存延迟”。碰巧的是,同一文件中的下一个片段包含它:

        'files.autoSaveDelay': {
            'type': 'number',
            'default': 1000,
            'markdownDescription': nls.localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'autoSaveDelay' }, "Controls the delay in ms after which a dirty file is saved automatically. Only applies when `#files.autoSave#` is set to `{0}`.", AutoSaveConfiguration.AFTER_DELAY)
        },

同样,GUI中的默认值1000来自此处的default属性。

下一个属性是“编辑器:字体大小”。它来自commonEditorConfig.ts

        'editor.fontSize': {
            'type': 'number',
            'default': EDITOR_FONT_DEFAULTS.fontSize,
            'description': nls.localize('fontSize', "Controls the font size in pixels.")
        },

此处,默认值不是文字,因此我们必须跟踪EDITOR_FONT_DEFAULTS.fontSize的定义。在editorOptions.ts中,就在这里:

export const EDITOR_FONT_DEFAULTS = {
    fontFamily: (
        platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)
    ),
    fontWeight: 'normal',
    fontSize: (
        platform.isMacintosh ? 12 : 14
    ),
    lineHeight: 0,
    letterSpacing: 0,
};

再次有趣的是,默认值取决于平台。由于我不在Mac上运行,因此我看到默认值为14。

以此类推。每个默认设置都来自Typescript源代码,或者在某些情况下来自package.json个扩展文件(内置或由用户安装)。

可能可以使用扩展API方法workspace.getConfiguration来枚举它们,但我没有尝试过。

答案 1 :(得分:1)

您可以找到用户的默认设置 C:\ Users \您的用户名\ AppData \ Roaming \ Code \ User

答案 2 :(得分:0)

默认设置列表未存储在单个文件中:它是在您要求时生成的。

(每次用户要求生成它都是有意义的,因为自从上次用户请求它以来,它可能已更改,因为可能已安装或卸载了扩展程序:该列表包括特定于扩展程序的设置。 )

您提出问题的原因可能是因为您想要一种无需拆分编辑器即可查看列表的方法。 (这是我进行网络搜索的原因,导致我转到此页面。)可以通过运行命令“首选项:打开默认设置(JSON)”来实现。

答案 3 :(得分:0)

或者在* nix

〜/ .config /代码/用户