Hi , I am new to VS Code, doing a python course. The course require to use an extension and change the settings by going and editing the json file. But when I open the settings.json file it is empty. If I click any option in the settings ui, that option is showing in the .json file but default settings are not shown. How do i fix this?
Is there a good way to keep a settings.json file in sync between different projects and between team members? I'd like to have a common "base" config that we use on all of our projects, that can then be overwritten further if needed.
What I'd like is similar to having a shared eslint config. With eslint I can publish my config as an npm module, and then just install that module and extend it in any project. If we decide to change a setting, we just update the module and its easily applied to all projects.
Anything like this for VSCode settings? I know you can make an extension pack to auto deploy common extensions for an organization, but I don't think something like that would work for sharing settings?
Videos
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"
}
Hey everyone,
I’ve been using VS Code for a while, but I feel like I’m not taking full advantage of its customization options. I want to optimize my setup, so I’m looking for recommendations on:
Best
settings.jsonconfigurations – What tweaks have significantly improved your workflow, performance, or overall experience?Must-have extensions – Which extensions do you consider essential for productivity, debugging, or specific workflows?
I mostly work with TypeScript, JavaScript, React, Next.js, Node.js, Express, NestJS, Python, C++, .NET, and React Native, so any suggestions to those would be great. But I’m also open to general improvements that could benefit any workflow.
Would love to see what works for you all. Thanks!
Thanks in advance!
I waste SO much time getting settings right in VSCode. I'm literally going back and forth between two projects right now, one where format-on-save using black is working, and another where it isn't, which have identical settings.
Yes, I know the settings or setup can't be identical. Yes, I know I'll find it in the end. But it's miserable!
Please can folks (especially people who develop across 20+ projects, including a bunch of remote containers) share any methods or insights they have for keeping settings under control?
You can safely skip the following rant, which is uncharacteristic of my normally constructive self. But rant I must.
Why I think the Settings UX is awful:
- We can modify in the UI>Settings, in three different tabs. None of which tell you the actual setting name unless you right click to export it to json.
- We can modify in multiple different JSON files, which it would be reasonable to assume would reflect the values in the UI editor. But they're not the same.
- They can also be modified by the UI as we interact with extension popups, which don't tell us which settings they're changing or where, and we don't get to approve any change.
- Modifying in the UI may or may not change the underlying JSON (eg modifying in the workspace tab immediately changes the workspace settings file, but in remote tab it doesn't).- We can modify in the raw JSON, in three places, which may or may not trigger a reload depending on which one you change, diverging the shown editor settings from what's present.
- There doesn't seem to be a simple way to see what actual settings you have in play right now, each one has to be back-calculated.
- Extra properties in settings JSON files are allowed above those provided by VSCode and the extensions, meaning that any breaking changes in required settings don't force you to update... things just vaguely stop working.
- There's an order of precedence (Default<User<Remote<Workspace, but it doesn't apply in the event of an unmodified value in one of the higher precedence ones... which would be fine (that's how inheritance works) except unmodified values are displayed in the UI exactly the same as if they're applied, meaning you have to have a deep knowledge of how these settings are applied, and be clicking all over the place, just to see what setting is currently active in the UI.
- It's not obvious how language-specific settings get overloaded. For example, does the inheritance work within nested properties like "[python]" or do we get a complete override of that property?- There's a ton of ambiguity around which settings even apply for language specific settings. For example the MS python extension thinks it can change the formatter by editing the "[python]": { "editor.defaultFormatter": "ms-whatever"} value, which completely screws over the actual "python.formatting.provider" value.
- That same ambiguity means that once you get your setup correct, extensions can't infer that so keep nagging you to make them your default, so there's always an annoying popup.
- We can also override them in .editorconfig, don't even get me started on having yet another place to define them.
I’m new to VSC and only have experience with MATLAB (mechanical engineer). I’m trying to learn Java scrip but I’m on day two. Yesterday I was making a lot of progress, today whenever I try to run anything (hello world, math, date) a settings.json tab opens up instead of showing the output. Even the codes that worked fine yesterday are doing it. I’ve uninstalled VSC and reinstalled it and it’s still doing it. Please help!
If I open vscode settings (in JSON mode), I always see 2 side-by-side panes. If I open Workspace settings, The settings in .vscode/settings.json are on the right and on the left is a list of settings with 7,757 lines. If open User settings, User settings are on the right and on the left is 7,428 lines of settings. In Youtube tutorials, others only have one pane with workspace or user settings. Why do I have two? How do I get rid of the left one? If I edit settings in the long lists on the left, does that automatically change my workspace or user settings? (is there a way to post a photo here?)
I have a folder name called menu. This is my root folder. The menu has 2 different folders, slider and dropdown.
I want to set a different indent space in the dropdown folder by using local settings.json. Any other files that outside of the dropdown folder should be affected by User/settings.json (I believe this is a global settings.json)
So, I set the indent space to 4 in dropdown/.vscode/settings.json, 2 for User/settings.json, but when I open the menu folder in VSC and create a new file in dropdown menu, the indent space still set to 2.
Picture added for understanding easily:
Are there any tips to fix this issue?
I have a projects where I am writing software for an MCU in C and a UI . Lets say the folder structure looks like this.
MainProj/
- .vscode/
- settings.json
- tasks.json
- ProjMCU.X/
- .vscode/
- tasks.json
- src/
- ProjUI/
- .vscode/
- settings.json
- src/It is sometimes convenient for me to open just the ProjMCU.X folder or just the ProjUI folder, thats why I have .vscode directories in those folders. However, it is also sometimes convenient for me to put it all together and run tasks, and do editing in the super directory (MainProj). Is there a way for me to reference tasks and settings within the json files of the super directory?
Totally VSCode noob here... but in sublime, the project file is what holds all the project specific settings. In VSCode it looks like there are potentially 2 places for workspace settings: The workspace file, and settings.json (potentially others) inside the .vscode folder.
What actually goes where? On my work computer, I added some filename patterns to exclude from the side bar and vscode created a settings.json file inside a new .vscode folder. On my personal computer I tried the same thing and vscode just added those settings to my workspace file.
Questions about VS Code JSON
Is There Any Problem If We Deleted the all things in JSON file?
What Is JSON Settings in VS Code?
You can set the location of the global user data folder by launching from the command line with the --user-data-dir option. But I just initialized a git repo in the default user settings location and keep it in source control there.
You can add a settings file for a workspace like this :
/yourproject/.vscode/settings.json
Or use the editor and goto :Preferences->settings and select workspace settings in the top bar.
These can be checked into your project and then to source control.
Reference : https://code.visualstudio.com/docs/getstarted/settings#_creating-user-and-workspace-settings
The file is created for you by default when editing the settings in your workspace. There you can select User or Workspace settings.
You can also open the Settings editor from the Command Palette (⇧⌘P) with Preferences: Open Settings or use the keyboard shortcut (⌘,).

Hello, I was configuring vscode and I like to keep things in order, but there is something that bothers me, when a configuration returns to its default value it disappears from the settings.json file and if it changes again it appears until the last thing making it disorganized. Is there any way it won't go away?
I'm new to VS and I'm trying to do some Java programming but my settings.json has an issue and I don't know what it is. I pasted it in online json validator and it says this: Parse error on line 25:
...ers", "java.home": "C:\Program Files\Ja
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
This is the file itself:
{
"workbench.editorAssociations": {
"\*.ipynb": "jupyter-notebook"
},
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
},
"python.autoComplete.addBrackets": true,
"code-runner.runInTerminal": true,
"editor.suggest.preview": true,
"editor.inlineSuggest.enabled": true,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"tabnine.experimentalAutoImports": true,
"gitlens.advanced.messages": {
"suppressGitMissingWarning": true
},
"python.analysis.completeFunctionParens": true,
"guides.enabled": false,
"kite.showWelcomeNotificationOnStartup": false,
"files.autoSave": "afterDelay",
"explorer.confirmDelete": false,
"C\_Cpp.updateChannel": "Insiders",
"java.home": "C:\\Program Files\\Java\\jdk-17.0.2"},