The default settings in vscode is a non-editable document. It acts as a way for you to view the default settings for native settings as well as extension default settings.
These defaults are also used to identify when a setting has changed with a 'blue' line indicator, when using the settings editor:
Changes to settings are reloaded by VS Code as you change them. Modified settings are now indicated with a blue line similar to modified lines in the editor. The gear icon opens a context menu with options to reset the setting to its default value as well as copy setting as JSON.

Currently, vscode only offers 2 editable settings:
VS Code provides two different scopes for settings:
- User Settings - Settings that apply globally to any instance of VS Code you open.
- Workspace Settings - Settings stored inside your workspace and only apply when the workspace is opened.
Workspace settings override user settings. Workspace settings are specific to a project and can be shared across developers on a project.
Note: A VS Code "workspace" is usually just your project root folder. Workspace settings as well as debugging and task configurations are stored at the root in a .vscode folder. You can also have more than one root folder in a VS Code workspace through a feature called Multi-root workspaces.
You can configure these settings with the settings editor, as pictured above, or you can navigate to their JSON counterparts for manual entry (example pictured on the right below).

For workspace settings JSON, the JSON file is located in a folder of the root directory called .vscode, you can create it yourself if it is not there.
By default, VS Code shows the Settings editor, but you can still edit the underlying settings.json file by using the Open Settings (JSON) command from your command palette or by changing your default settings editor with the workbench.settings.editor setting.
Settings
You can define which view is shown using the following settings:
workbench.settings.openDefaultSettingsOpens the default settings any time you open regular settings (this only works with the
JSONsettings editor option)workbench.settings.editorDetermine which editor to use, you can elect
UIorJSONworkbench.settings.useSplitJSONThis will open a JSON settings editor, with the default settings to the left, but the default editor to the left will behave like a
UIeditor in that you can collapse regions based on category and there is a search input box and it will share the same tab as the json editor on the right, whereas theworkbench.settings.openDefaultSettingsoption mentioned above puts each setting view in its own respective tab (editor)
The default settings in vscode is a non-editable document. It acts as a way for you to view the default settings for native settings as well as extension default settings.
These defaults are also used to identify when a setting has changed with a 'blue' line indicator, when using the settings editor:
Changes to settings are reloaded by VS Code as you change them. Modified settings are now indicated with a blue line similar to modified lines in the editor. The gear icon opens a context menu with options to reset the setting to its default value as well as copy setting as JSON.

Currently, vscode only offers 2 editable settings:
VS Code provides two different scopes for settings:
- User Settings - Settings that apply globally to any instance of VS Code you open.
- Workspace Settings - Settings stored inside your workspace and only apply when the workspace is opened.
Workspace settings override user settings. Workspace settings are specific to a project and can be shared across developers on a project.
Note: A VS Code "workspace" is usually just your project root folder. Workspace settings as well as debugging and task configurations are stored at the root in a .vscode folder. You can also have more than one root folder in a VS Code workspace through a feature called Multi-root workspaces.
You can configure these settings with the settings editor, as pictured above, or you can navigate to their JSON counterparts for manual entry (example pictured on the right below).

For workspace settings JSON, the JSON file is located in a folder of the root directory called .vscode, you can create it yourself if it is not there.
By default, VS Code shows the Settings editor, but you can still edit the underlying settings.json file by using the Open Settings (JSON) command from your command palette or by changing your default settings editor with the workbench.settings.editor setting.
Settings
You can define which view is shown using the following settings:
workbench.settings.openDefaultSettingsOpens the default settings any time you open regular settings (this only works with the
JSONsettings editor option)workbench.settings.editorDetermine which editor to use, you can elect
UIorJSONworkbench.settings.useSplitJSONThis will open a JSON settings editor, with the default settings to the left, but the default editor to the left will behave like a
UIeditor in that you can collapse regions based on category and there is a search input box and it will share the same tab as the json editor on the right, whereas theworkbench.settings.openDefaultSettingsoption mentioned above puts each setting view in its own respective tab (editor)
I had the same problem and the solution that worked is below. It is true that default settings cannot be modified, but the below steps explain how to edit the settings in JSON:
- Cmd+Shift+P and select Open Settings UI (Ctrl+Shift+P for Windows I think)
- Search for "Settings" and under "Workbench" click on Settings Editor. Change from "ui" to "json".
- Search for “use split JSON” and tick “Controls whether to use split JSON…”.
Credit to Ahmad Awais video posted here
Videos
Hi Experts,
I’m new to VSCode so pardon me if this is seems to be a noob question.
I set up a central coding server so keep all my projects in one place and I’m now trying the VSCode remote feature. Every-time I open a new environment the settings I made on the User Workspace are being over written by the default settings on new environment. This is forcing me to redo the setting that I already made before.
Now the questions is, what is the best way to edit the default settings in a way that it will push your preferred settings down to the new environment/workspace?
Hello,
I am following online course and currently we need to change something in User Settings (JSON). The video shows (in VScode) that i need to follow path Code -> Preferences -> Settings and then press on three dots and open settings json. However, on my mac i don't have such option as these three dots.
I managed to open these settings by using keyboard: CMD + Shift + P. It opens dropdown list where i choose Preferences: Open Default Settings (JSON). This is the code which looks the same as my instructor has and i can locate code line i need to update: "code-runner.executorMap" . Learning about Virtual Environments in VSCode. However, the settings opens in read only mode and i can't edit them. How can i open them so i can edit them?
I am complete beginner, had the same problem right at the begining of this online course when we learned about debugging, but i couldn't find an answer so i decided to move on and come back when i understand more about programming itself etc. And here i am, starting to get the idea of programming, but still can't find solution to this one...
To open the User settings:
- Open the command palette (either with F1 or Ctrl+Shift+P)
- Type ">open settings" (You must include the '>' at the beginning)
- You are presented with a few options¹, choose Open User Settings (JSON)
This image was taken in the VS Code online editor

Which, from the manual and depending on platform, is one of:
- Windows
%APPDATA%\Code\User\settings.json² - macOS
$HOME/Library/Application\ Support/Code/User/settings.json - Linux
$HOME/.config/Code/User/settings.json
The Workspace settings will be in a {workspaceName}.code-workspace file where you saved it, and the Folder settings will be in a .vscode folder if and when it has been created.
Official page on User and Workspace Settings
As stated by sevencardz below, VS Code includes a button in the Settings UI gutter which can be used to switch between JSON and graphical view.

The workbench.settings.editor option selects which of the settings files is opened by default when not using the above method, such as with the shortcut ⌘+, or through the application menu.
Footnotes
The aforementioned settings, User and Workspace. Remote settings will appear when using WSL.
By a test this maps to
%APPDATA%\Roaming\Code\User\settings.json, I am not sure by what logic.
On the settings UI page, there's a special button in the top right corner gutter that toggles between the settings.json file and the settings UI.

Bonus Answer:
Add "workbench.settings.editor": "json" to your settings.json file. This will make it so that menu File → Preferences → Settings or ⌘ + , opens your settings.json file by default. Optionally, add a comment at the top to remind yourself where the toggle button is.
// Click the Open Settings (UI) button in the top
// right corner gutter to toggle the settings UI
{
// Other settings in settings.json
// ...
"workbench.settings.editor": "json"
}
These are the steps I used:
1. Ctrl-Shift-p to open the Command palette
2. Search for Settings and click Preferences: Open User Settings
3. In the left hand pane, click on the setting you want to change
4. Click on the pencil icon to the left of the setting. It will either give you the valid options from which to choose or it will let you copy the option to user settings.

- The setting will appear in the right-hand pane.
- Edit the setting as necessary on the right and Save
You need to make settings.json file and enter your settings overrides there. On windows that would be C:\Users\USERNAME\AppData\Roaming\Code\User\settings.json, then add your settings, for example:
{
"files.encoding": "ISO 8859-1",
"editor.fontSize": 18,
// ....other settings
}
You also have an option to add settings on project basis - just add settings file to .vscode\settings.json inside your project root folder.
You probably have no permissions. Your options include running VSCode as admin or changing folder permissions. But why do you store projects in system32 in the first place? The best solution would be to move it to some other place, where user has write access without admin rights, like Documents.
Generally, c_cpp_properties.json should be found by
- Pressing Control+Shift+P
- Searching for
c/c++ edit configuration.
As mentioned @Juraj Kocan in comments, it happens after last VS Code updates.
This is Github issue related to this new "feature"
This one helped me:
"workbench.settings.useSplitJSON": true,
"workbench.settings.editor": "json",
How to Get to the JSON settings in Newer Versions of VS Code
In the latest versions of VS Code, you can convert back to the split JSON settings editor by changing the following settings in the (now standard) UI settings editor:
Workbench > Settings: Editor
- Change from
UItojson
- Change from
Workbench > Settings: Use Split JSON
- Checkmark to enable the option

after making this change, VS Code will open its settings as a JSON file, like in older versions of the application, rather than in the new UI. This allows you to make the changes that other answers provide, directly in the JSON (if you can find the right place and file to make them in..)
NOTE: Whether or not you actually want to use the JSON settings is a different question. Most of the time, the settings search function allows finding the same settings in the new UI. Sometimes it is difficult to get search to work though, especially if the settings are worded differently in the new UI style. There may also be cases where extensions haven't been updated to accommodate the new UI setting style, and so there is no option but to enter the JSON directly.