VS Code: настройка settings.json

settings.json — основной файл конфигурации VS Code, в котором все пользовательские предпочтения хранятся в формате JSON.

Зачем нужно

Графический интерфейс Settings охватывает самые популярные опции, но settings.json позволяет настроить абсолютно всё: форматирование по типу файла, LSP-поведение, правила расширений. Знание структуры файла позволяет быстро переносить настройки, делиться ими с командой и версионировать через .vscode/settings.json.

Где используется

  • Персональная настройка редактора (User settings)
  • Командные настройки проекта (Workspace settings в .vscode/settings.json)
  • Миграция настроек на новую машину

Открытие settings.json

Ctrl+Shift+P → "Open User Settings (JSON)"   → глобальные настройки
Ctrl+Shift+P → "Open Workspace Settings (JSON)" → настройки проекта

Или вручную:
  Windows: %APPDATA%\Code\User\settings.json
  macOS: ~/Library/Application Support/Code/User/settings.json
  Linux: ~/.config/Code/User/settings.json

Полный пример settings.json для разработчика

{
  // === РЕДАКТОР ===
  "editor.fontSize": 15,
  "editor.fontFamily": "'JetBrains Mono', 'Fira Code', monospace",
  "editor.fontLigatures": true,
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.wordWrap": "on",
  "editor.lineNumbers": "on",
  "editor.minimap.enabled": false,
  "editor.rulers": [80, 120],
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": true,
  "editor.cursorBlinking": "smooth",
  "editor.smoothScrolling": true,
  "editor.stickyScroll.enabled": true,

  // === ФОРМАТИРОВАНИЕ ===
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.organizeImports": "explicit"
  },

  // По типу файла
  "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
  "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
  "[json]":       { "editor.defaultFormatter": "esbenp.prettier-vscode" },
  "[html]":       { "editor.defaultFormatter": "esbenp.prettier-vscode" },
  "[css]":        { "editor.defaultFormatter": "esbenp.prettier-vscode" },
  "[markdown]":   {
    "editor.defaultFormatter": "yzhang.markdown-all-in-one",
    "editor.wordWrap": "on"
  },
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.tabSize": 4
  },

  // === ФАЙЛЫ ===
  "files.autoSave": "onFocusChange",
  "files.encoding": "utf8",
  "files.eol": "\n",
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "files.exclude": {
    "node_modules": true,
    ".git": true,
    "dist": false
  },

  // === GIT ===
  "git.autofetch": true,
  "git.confirmSync": false,
  "git.enableSmartCommit": true,

  // === ТЕРМИНАЛ ===
  "terminal.integrated.fontSize": 14,
  "terminal.integrated.defaultProfile.windows": "Git Bash",

  // === TYPESCRIPT ===
  "typescript.updateImportsOnFileMove.enabled": "always",
  "typescript.preferences.importModuleSpecifier": "relative",
  "typescript.inlayHints.parameterNames.enabled": "literals",

  // === ПОИСК ===
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true,
    "**/*.lock": true,
    "**/.git": true
  },

  // === ПРОЧЕЕ ===
  "workbench.colorTheme": "One Dark Pro",
  "workbench.iconTheme": "material-icon-theme",
  "window.zoomLevel": 0,
  "telemetry.telemetryLevel": "off"
}

Частые ошибки

  • Редактирование settings.json с синтаксическими ошибками — VS Code молча игнорирует файл
  • Коммит user settings в репозиторий вместо workspace settings — у всех разные пути
  • "editor.formatOnSave": true без "editor.defaultFormatter" — VS Code спрашивает выбор
  • Конфликт prettier и eslint без eslint-config-prettier — двойное форматирование

Связанные темы

Ресурсы