Код Visual Studio: формат не використовує налаштування відступу


143

Під час використання Format Codeкоманди в коді Visual Studio вона не вшановує мої відступи ( "editor.tabSize": 2). Замість цього використовується розмір вкладки 4. Будь-які ідеї, чому це відбувається?

Дякую!


Яка мова? Форматування делегата Visual Studio Code до мовного форматера. Деякі форматери дійсно дотримуються настройки відступу. Наприклад, C #, якою керує OmniSharp, і має бути налаштований за допомогою omnisharp.json
Ian Yang

На це мені знадобилося багато часу: я мав .cs-файл із змішаними вкладками та пробілами і хотів відформатувати його з усіма вкладками (b / c більшість рядків мала вкладки). Я спробував різні значення параметрів за допомогою "Формат документа" та "Вибір формату", але не пощастило. Нарешті я знайшов дію "Перетворити відступ на вкладки" (див. Зображення у відповіді @ Малекі), і це зробило те, що я хотів зробити. (Я також нещодавно виявив ctrl-shift-p! ... так, я новачок у коді VS)
KevinVictor

Відповіді:


229

Кількість пробілів, які будуть використані для форматування, взято з іншого місця. Я використовую версію 1.0, і це я зробив, щоб виправити це (я припускаю, що ви використовуєте пробіли замість вкладок):

У нижній частині редактора праворуч натисніть "Пробіли: #":

рядок стану справа

Тоді вгорі з’явиться меню. Виберіть "Відступ за допомогою пробілів":

виберіть тип відступу

Нарешті, ви можете вибрати, на скільки пробілів потрібно відступити ваші файли.

виберіть розмір вкладки

Наступного разу, коли ви форматуєте файл, ви зможете отримати налаштований інтервал.


28
Цей параметр не використовується при застосуванні автоматичного формату (клацніть правою кнопкою миші -> Код формату). Він завжди використовує 4 пробіли.
kiml42

Вам потрібно обидва - налаштувати свої особисті налаштування для робочої області чи редактора (або обох). Нові файли підбирають це налаштування та показують, наприклад, "2" у рядку стану відповідно до цих знімків екрана. Тоді ви можете автоформатувати. Для існуючих файлів спочатку встановіть у налаштуваннях робочої області / редактора «використовувати вкладки» або «використовувати пробіли» та встановіть кількість пробілів, після чого ви можете виконати описаний вище метод для автоматичного форматування наявних файлів.
rmcsharry

5
Встановіть і налаштування користувача, і робочої області, встановіть його в нижній панелі, знову відкрийте файл - все ще автоформатування використовує 4 пробіли ...
Jared

3
Довелося вийти та перезапустити vscode після встановлення стандартних параметрів користувача та робочої області для налаштувань. Тільки тоді вона перестала намагатися використовувати 4 пробіли у своїх файлах JS.
Джон Петтітт

11
@Jared Я думаю, що ви використовуєте JS-CSS-HTMLплагін. У такому випадку натисніть F1і виберіть формат і встановіть там відступ. Здається, перекриває всі варіанти, обговорені вище.
Атіф Мухаммед Амеенуддін

112

Visual Studio Code виявляє поточний відступ за замовчуванням і використовує це - ігноруючи .editorconfig

Встановіть також значення "editor.detectIndentation" на значення false

(Файли -> Налаштування -> Налаштування)

скріншот


Якщо це трапиться, у вас, ймовірно, є непослідовне відступ у файлі. У мене був файл з вкладками скрізь, за винятком кількох рядків з двома пробілами (хто знає чому), який виявився як вкладки, але розміром вкладки 2.
isanae

49

Якщо відповідь @ Малекі для вас не працює, перевірте, чи є .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робочій області чи налаштуваннях користувача.


5
Мені довелося перезапустити VSCode, щоб зміни вступили в силу в IDE.
JOpuckman

3
У моєму випадку це насправді було викликано .editorconfigфайлом у моїй домашній папці. Якось це змушує VSCode ігнорувати будь-які налаштування для робочої області. Дуже дратує.
xji

20

Якщо ви використовуєте плагін (у моєму випадку Vetur, для vue.js), вони можуть встановити власні налаштування форматування вкладок.

Відкрийте свої налаштування, знайдіть "формат" і перегляньте відповідні налаштування плагіна, які можуть перезаписати глобальний формат вкладки. Це працювало для мене; як тільки я оновив налаштування вкладки Vetur, щоб відповідати моїм уподобанням (4-ти вкладки в моєму випадку), форматування документів .vue почало працювати належним чином:

введіть тут опис зображення


Це правда, в моєму випадку мені потрібно було також встановити розмір вкладки в налаштуваннях розширення Prettier.
tonix

Варто зауважити, що SCSS Formatterплагін, наприклад, використовує власні налаштування, тому вам потрібно перейти, Settings > Extensions > SCSS Formatter > Use Tabsщоб змусити його використовувати, наприклад, вкладки.
SmartyP

13

Для себе ця проблема була викликана використанням prettierплагіна VSCode, не маючи гарнішого конфігураційного файлу в робочій області.

Відключення плагіна виправило проблему. Можливо, це також можна було б виправити, спираючись на гарнішу конфігурацію.


1
Для мене це був плагін "Прикрасити".
Меттью Сміт

У мене була така ж проблема з "Clang-Format" та конфігураційним файлом ".clang-format".
repkap11

6

Швидше за все, у вас встановлено деяке розширення форматування, наприклад формат JS-CSS-HTML .

Якщо це так, то просто відкрийте командну палітру, наберіть «Форматтер» та виберіть Formatter Config. Потім відредагуйте значення за "indent_size"вашим бажанням.

PS Не забудьте після редагування перезапустити Visual Studio Code :)


6

наведені нижче налаштування вирішили мою проблему

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

він працює, якщо ви працюєте з файлами лише з 2 пробілами!
Dominux

2

Якщо ви прийшли сюди з google через відступ вкладки, це також може бути тому, що на вкладці "Tab Moves Focus" увімкнено. Він знаходиться внизу праворуч, і якщо у вас достатньо великий монітор, ви можете пропустити його, незважаючи на те, що він виділений.

введіть тут опис зображення

Клацніть Зелена зона або Ctrl + M, щоб зупинити її. Я не впевнений, що його можна повністю відключити, і знову не знаю, чому редактор коду хотів би возитися з чимось на зразок відступу.


2

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

Виявляється, у мене був .editorconfigу батьківській директорії dir, в який я помістив усі свої нові кодові проекти, і він вказав вкладку Розмір 4. Видалення цього файла виправило мою проблему.


1

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

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

Виправлення? Перезапустіть VSCode. Він повинен повернутися зі статусом відступу, який показує щось не так (у моєму випадку 4). Для мене мені довелося змінити налаштування, а потім зберегти його, щоб фактично змінити, але це, мабуть, через мою editor.formatOnSaveнастройку.

Я не зрозумів, чому це відбувається, але для мене це зазвичай, коли я редагую вкладений об’єкт у файлі JS. Це раптом зробить дуже дивне відступ всередині об’єкта, навіть якщо я працюю в цьому файлі деякий час, і це відступ просто чудово.


0

Плагін VSCode Vetur; що використовується для додатків VueJS, це змінило налаштування для мене.

Налаштування vetur.format.options.tabSize до моєї бажаної кількості пробілів зробило його роботою.



-1

Вимкнути всі плагіни (тоді ввімкніть один за одним і підтвердити)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.