a背景
在使用better-comments这个插件的时候,我想修改它的一些配置。但是我并没有在settings.json这个文件夹中找到关于他的配置。但是根据插件的描述,插件确实有三个配置项,并且根据我使用的情况来讲,这三个配置项确实生效了。那插件的默认配置存放在哪里呢,没有存放到settings.json中吗?最后我在defaultSettings.json文件中找到了拓展插件的配置选项身影,但是我发现defaultSettings.json这个文件是只读文件,它又是一个什么样子的存在呢?

defaultSettings.json文件

我们可以使用命令:**cmd+shift+p**,输入打开默认配置找到这个文件。
首先这个文件就是一个只读文件。它的作用就是查看原生的默认配置和扩展插件(extension)的默认配置。所以我们可以在这个文件中找到插件的配置。
但是他是只读的,我们怎么修改这些默认配置呢?

设置

image.png
当我们打开配置的时候,实际上我们会进入一个编辑设置的UI界面 。在这里,我们可以编辑所有的配置,包括原生配置和扩展配置。就是在这里对默认配置进行的修改。但是这里并不会直接修改**defaultSettings.json**文件,这个**defaultSettings.json**文件永远会作为默认配置文件,并且会成为一个参照物,用来判断配置有没有进行更改,如果更改了会有一条小蓝线来进行标识。
在UI设置界面的调整,最终的效果还是导致配置文件的变更。既然他没有变更**defaultSettings.json**文件,那么他改变的是什么文件呢?
image.png
我们可以看到,在进行设置的时候,其实是存在两大区域的:一个是用户(user),一个是工作区(workspace)。也就是我们可以进行用户设置的更改,也能进行工作区设置的更改。它们的最终效果就是导致了两个不同的配置文件的修改。一个是用户配置文件:**settings.json**,一个是工作区配置文件**setting.json**.他们的名字是一样的,但是他们是两个不同的文件。他们两个是**vscode**设置架构中很重要的组成部分。

用户配置文件和工作区配置文件

:::info 用户配置文件和工作区配置文件能够编辑的内容其实区别不大,他们的主要区别是在于配置文件生效的作用域。
用户配置文件,顾名思义就是配置跟用户挂钩,也就是在该用户下,配置是永远生效的。由于我们的用户一般不会经常变动,所以可以看做是全局配置。它存放在user文件夹中:~/Library/Application Support/Code/User/settings.json
工作区配置文件,顾名思义只在指定工作区才会生效并且他的优先级会高于用户配置文件, 当出现冲突的时候就会形成配置覆盖的情况。这个文件会保存在工作区的根目录下的**.vscode**文件夹下。
image.png
这样的话,我们可以将这个配置纳入到我们的git版本管理中,从而和其他开发者一起共享工作区配置。 ::: 默认情况下,用户点开设置打开的是一个UI编辑界面,前文也说过,这个UI界面最终还是导致配置文件的更改,所以我们也可以直接修改潜在的配置文件。
亦或是,我们通过workbench.settings.editor选项来控制点开设置是显示UI(默认值),还是JSON文件。

关于设置的一些配置选项

  • workbench.settings.editor,控制设置样式:UIJSON
  • workbench.settings.openDefaultSettings,在你编辑配置JSON文件的时候,打开defaultSettings.json文件,默认为false