VS Code is language-agnostic and filled in with extensions. Settings are easy to share with a team, and most tutorials are written against it, which makes it a good first editor.

Install

  brew install --cask visual-studio-code
winget install Microsoft.VisualStudioCode
  

To use code . from a terminal, run Shell Command: Install 'code' command in PATH from the command palette (⌘⇧P / Ctrl+Shift+P).

Six shortcuts to learn first

ActionmacOSWindows/Linux
Command palette⌘⇧PCtrl+Shift+P
Quick open a file⌘PCtrl+P
Go to symbol⌘⇧OCtrl+Shift+O
Search everywhere⌘⇧FCtrl+Shift+F
Multi-cursor (same word)⌘D repeatedlyCtrl+D
Move a line⌥↑ / ⌥↓Alt+↑ / Alt+↓

Knowing the command palette alone lets you find everything else by name.

First settings to change

⌘⇧P → Preferences: Open User Settings (JSON):

  {
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": { "source.fixAll": "explicit" },
  "editor.rulers": [100],
  "editor.bracketPairColorization.enabled": true,
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "explorer.compactFolders": false,
  "workbench.editor.enablePreview": false,
  "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font"
}
  
  • formatOnSave is the single biggest thing you can do to eliminate formatting nits from code review.
  • enablePreview: false stops a tab from being replaced every time you click a file.

Keep extensions minimal

ExtensionPurpose
ESLint / PrettierJS and TS linting and formatting
Python (Microsoft)Python language server and debugger
Error LensShows errors inline on the offending line
GitLensLine-level blame and history
EditorConfigApplies shared indentation rules
DockerDockerfile support and container management

More extensions means slower startup. Check Developer: Show Running Extensions periodically and remove what you don’t use.

Sharing settings with a team

Commit .vscode/settings.json and .vscode/extensions.json and everyone who opens the repository gets the same formatting rules and extension recommendations.

  // .vscode/extensions.json
{ "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] }
  

Remote development

The Remote - SSH extension lets you edit code on a server as if it were local. To develop inside a container, use Dev Containers with a .devcontainer/devcontainer.json. Both cut down sharply on environment-drift problems.

Next

If you’d rather edit without leaving the keyboard → Neovim

Last updated 19 Aug 2026, 00:00 UTC. history