При использовании команды Format Code в Visual Studio Code мои настройки отступа не учитываются ("editor.tabSize": 2). Вместо этого используется размер табуляции 4. Есть идеи, почему это происходит?

Спасибо!

AndyPerlitch

Ответов: 19

Ответы (19)

Скорее всего, у вас установлено какое-то расширение форматирования, напримерПрограмма форматирования JS-CSS-HTML.

Если это так, просто откройте палитру команд, введите «Formatter» и выберите Formatter Config. Затем отредактируйте значение "indent_size" по своему усмотрению.

П.С. Не забудьте перезапустить Visual Studio Code после редактирования :)

Visual Studio Code detects the current indentation per default and uses this - ignoring the .editorconfig

Установите также "editor.detectIndentation" на false

(Файлы -> Настройки -> Настройки)

screenshot

Количество пробелов, используемых для форматирования, берется из другого места. Я использую версию 1.0, и вот что я сделал, чтобы исправить это (я предполагаю, что вы используете пробелы вместо табуляции):

Внизу редактора справа нажмите «Пробелы: #»:

status bar on the right

Тогда вверху появится меню. Выберите «Отступ с использованием пробелов»:

select indentation type

Наконец, вы можете выбрать, на сколько пробелов вы хотите, чтобы ваши файлы были отступами.

select tab size

В следующий раз, когда вы форматируете файл, вы сможете получить заданный вами интервал.

Для меня эта проблема была вызвана использованием плагина prettier VSCode без наличия файла конфигурации prettier в рабочей области.

Отключение плагина устранило проблему. Это также, вероятно, можно было исправить, полагаясь на более красивую конфигурацию.

Если вы используете плагин (в моем случае Vetur для vue.js), они могут устанавливать свои собственные настройки форматирования вкладок.

Откройте свои настройки, найдите «формат» и просмотрите соответствующие настройки плагина, которые могут перезаписывать глобальный формат вкладок. Это сработало для меня; как только я обновил настройки вкладки Vetur, чтобы они соответствовали моим предпочтениям (в моем случае вкладки 4-го размера), форматирование документов .vue начало работать правильно:

enter image description here

Если вы кодируете C / C ++:

  1. Файл> Настройки> Настройки или [Ctrl + Shift + P]
  2. Найдите "Настройки UI"
  3. Искать "c_cpp formatting"
  4. Измените механизм форматирования с "clangFormat" на "vcFormat"

Тогда все, что изменено в "c_cpp> vc format", будет активировано.

Скриншот

Для новых зрителей у меня была такая же проблема с файлами YAML с некорректным отступом. Но вы все равно можете изменить это в настройках!

  • Перейдите в Файл> Настройки> Настройки
  • Искать "размер табуляции"
  • В настройке [yaml] нажмите Изменить в settings.json

TabSizeSettings

  • Измените значение editor.tabsize на необходимое количество пробелов!

Settings.json


К вашему сведению, они не добавляют настройки для определенных типов файлов: см. Здесь # 58995

настройки ниже решили мою проблему

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

Отключить все плагины (затем включить один за другим и проверить)

Ни одно из вышеперечисленных решений у меня не сработало, поэтому я поискал в файлах всю свою пользовательскую папку на предмет «tabSize». В конце концов я нашел тот, который отменял мои настройки в «Настройках» и всегда применялся для (вновь) открытых файлов:

"[python]": {
    "editor.detectIndentation": false,
    "editor.insertSpaces": true,
    "editor.tabSize": 4
},

У меня был файл «.editorconfig» в родительском каталоге (ионный проект) со значением «indent_size = 2», и он переопределял любые значения, которые я выбираю для своего рабочего пространства! Как только я его изменил, моя проблема была решена.

У меня была аналогичная проблема - что бы я ни делал, мне не удавалось добиться, чтобы размер табуляции оставался равным 2, даже если это было в моих пользовательских настройках - в конечном итоге это произошло из-за расширения EditorConfig. Он ищет файл .editorconfig в вашем текущем рабочем каталоге и, если он не находит его (или тот, который он находит, не указывает root = true), он будет продолжайте просматривать родительские каталоги, пока не найдете его.

Оказывается, у меня был .editorconfig в родительском каталоге каталога, в который я поместил все свои новые проекты кода, и он указал tabSize равный 4. Удаление этого файла устранило мою проблему.

Плагин VSCode Vetur; используемый для приложений VueJS, для меня переопределил настройку.

Установка vetur.format.options.tabSize на мое предпочтительное количество пробелов заставила его работать.

Также убедитесь, что ваши настройки рабочего пространства не имеют приоритет над вашими пользовательскими настройками. Пользовательский интерфейс не делает очевидным, какие настройки вы редактируете, и "Файл> Настройки> Настройки" по умолчанию имеют настройки пользователя, хотя настройки рабочего пространства имеют приоритет над пользовательскими настройками.

enter image description here

Вы также можете напрямую редактировать настройки рабочего пространства: /.vscode/settings.json

Если ответ @ Maleki не работает для вас, проверьте, есть ли у вас файл .editorconfig в папке вашего проекта.

Например, Angular CLI генерирует его с новым проектом, который выглядит так

# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

Здесь необходимо изменить indent_size, поскольку кажется, что это переопределит что-либо в вашем рабочем пространстве .vscode или пользовательских настройках.

Если вы пришли сюда из Google, потому что вкладка не имеет отступа, это также может быть из-за того, что "Вкладка перемещает фокус". Он находится внизу справа, и если у вас достаточно большой монитор, вы можете пропустить его, несмотря на то, что он выделен.

enter image description here

Щелкните зеленую область или Ctrl + M, чтобы остановить его. Я не уверен, что его можно полностью отключить, но опять же, я не знаю, почему редактор кода может возиться с чем-то вроде отступов.

Как показывают некоторые ответы, есть пара настроек, таких как «detectIndentation, insertSpaces и tabSize», которые все контролируют, как работает отступ, но что-то, о чем большинство из них не упоминают (включая верхний ответ), это то, что эти настройки могут быть переопределены в соответствии с вашими пользовательскими настройками, и в этом случае их изменение не имеет значения.

Если вам интересно, как проверить, так ли это с вашим vscode, просто еще раз проверьте, есть ли у вас в скобках рядом с именем настройки следующее: image highlighting text in parentheses next to Tab Size setting

В этом случае просто щелкните ссылку Пользователь и измените настройку во вновь открытой вкладке настроек пользователя, и вы увидите, что ваши изменения вступили в силу.

У меня иногда бывает такая же проблема. VSCode просто внезапно потеряет рассудок и полностью проигнорирует любую настройку отступа, о которой я говорю, даже если он весь день делал отступы в одном и том же файле.

У меня editor.tabSize установлено значение 2 (а также editor.formatOnSave установлено значение true). Когда VSCode портит файл, я использую параметры в нижней части редактора, чтобы изменить тип и размер отступа, надеясь, что что-то сработает, но VSCode настаивает на фактическом использовании размера отступа 4.

Исправление? Перезапустите VSCode. Он должен вернуться со статусом отступа, показывающим что-то не так (в моем случае 4). Что касается меня, мне пришлось изменить настройку, а затем сохранить ее, чтобы действительно внести изменения, но это, вероятно, из-за моей настройки editor.formatOnSave.

Я не понял, почему это происходит, но для меня это обычно, когда я редактирую вложенный объект в файле JS. Он внезапно сделает очень странные отступы внутри объекта, хотя я некоторое время работал с этим файлом, и отступы были очень хорошими.

Я думаю, vscode использует autopep8 для форматирования .py по умолчанию.

«PEP 8 - Руководство по стилю кода Python | Python.org»

Согласно этому сайту, следующее может объяснить, почему vscode всегда использует 4 пробела.

Используйте 4 пробела на каждый уровень отступа.

2022 WebDevInsider