Как настроить коэффициент преобразования табуляции в пространство?

Как настроить коэффициент преобразования табуляции в пространство при использовании кода Visual Studio?

Например, прямо сейчас в HTML он производит два пробела за нажатие TAB, но в TypeScript он выдает 4.

Ответ 1

По умолчанию код Visual Studio будет пытаться угадать ваши параметры отступа в зависимости от файла, который вы открываете.

Вы можете отключить угадывание отступов через "editor.detectIndentation": false.

Вы можете легко настроить это с помощью этих трех настроек для Windows в меню Файл → Настройки → Настройки пользователя и для Mac в меню Код → Настройки → Настройки или ⌘,

// The number of spaces a tab is equal to. This setting is overridden
// based on the file contents when 'editor.detectIndentation' is true.
"editor.tabSize": 4,

// Insert spaces when pressing Tab. This setting is overriden
// based on the file contents when 'editor.detectIndentation' is true.
"editor.insertSpaces": true,

// When opening a file, 'editor.tabSize' and 'editor.insertSpaces'
// will be detected based on the file contents. Set to false to keep
// the values you've explicitly set, above.
"editor.detectIndentation": false

Ответ 2

Я использую версию 1.21, но я думаю, что это может относиться и к более ранним версиям.

Посмотрите на нижнюю правую часть экрана. Вы должны увидеть что-то, что говорит Spaces или Tab-Size.

Мое пространство показывает, → enter image description here

  1. Нажмите на Spaces (или Tab-Size)
  2. Выберите Indent Using Spaces или Indent using Tabs
  3. Выберите количество пробелов или вкладок, которые вам нравятся.

Это работает только для одного документа, но не для всего проекта. Если вы хотите применить его для всего проекта, вам также необходимо добавить "editor.detectIndentation": false в ваши пользовательские настройки.

Ответ 3

Хорошо, если вам нравится способ разработчика, Visual Studio Code позволяет вам указать другой тип файла для tabSize. Вот пример моего settings.json с 4 пробелами по умолчанию и пробелами JavaScript/JSON 2:

{
  // I want my default to be 4, but JS/JSON to be 2
  "editor.tabSize": 4,
  "[javascript]": {
    "editor.tabSize": 2
  },
  "[json]": {
    "editor.tabSize": 2
  }
}

PS: Если вы не знаете, как открыть этот файл (особенно в новой версии vscode), вы можете:

left-bottom gearSettings → Прокрутите вниз и нажмите Edit in settings.json

Ответ 4

По умолчанию код Visual Studio автоматически определяет отступ текущего открытого файла. Если вы хотите отключить эту функцию и сделать все отступы, например, два пробела, вы должны сделать следующее в настройках пользователя или рабочей области.

{
    "editor.tabSize": 2,

    "editor.detectIndentation": false
}

Ответ 5

Мы можем контролировать размер вкладки по типу файла с помощью EditorConfig и его расширения кода Visual Studio. Затем мы можем сделать Alt + Shift + F специфичными для каждого типа файлов.

Монтаж

ext install EditorConfig

Пример конфигурации

.editorconfig

[*]
indent_style = space

[*.{cs,js}]
indent_size = 4

[*.json]
indent_size = 2

settings.json

EditorConfig переопределяет любой файл settings.json, настроенный для редактора. Нет необходимости изменять editor.detectIndentation.

Ответ 6

Вы хотите убедиться, что ваш editorconfig не конфликтует с вашей конфигурацией настроек пользователя или рабочей области, так как я просто немного расстроился, думая, что настройки файлов настроек не применялись, когда это была моя конфигурация редактора, отменив эти изменения.

Ответ 7

Это lonefy.vscode-js-css-html-formatter. Отключите его и установите HookyQR.beautify.

Теперь при сохранении ваши вкладки не будут преобразованы.

Ответ 8

Если вы используете более красивое расширение в vscode, попробуйте добавить его в файл settings.json:

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

"prettier.tabWidth": 4,
"prettier.useTabs": true  // this made it finally work for me 

Ответ 9

В правом нижнем углу у вас есть пробелы: пробелы: 2

Там вы можете изменить отступ в соответствии с вашими потребностями: Параметры отступа

Ответ 10

Если принятый ответ на этот пост не работает, попробуйте:

У меня был EditorConfig для Visual Studio Code, установленный в моем редакторе, и он продолжал переопределять мои пользовательские настройки, которые были установлены для отступа файлов, используя пробелы. Каждый раз, когда я переключался между вкладками редактора, мой файл автоматически вставлялся с вкладками, даже если я конвертировал отступы в пробелы !!!

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

Ответ 11

В VSC версии 1.31.1 или более (я думаю). Понравился седький Алекс Дима. Вы можете легко настроить это с помощью этих настроек для

  • Windows в меню Файл → Настройки → Настройки пользователя или используйте короткие клавиши ctr + shift + p
  • Mac в меню Код → Настройки → Настройки или ⌘,

enter image description here

enter image description here

Ответ 12

Файл меню → Настройки → Настройки

Добавить в настройки пользователя:

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

затем щелкните правой кнопкой мыши по вашему документу, если он уже открыт, и выберите "Формат документа", чтобы ваш существующий документ следовал этим новым настройкам.

Ответ 13

@alex-dima решение с 2015 года изменит размеры вкладок и пространства для всех файлов, а решение @Tricky с 2016 года изменит только настройки для текущего файла.

С 2017 года я нашел другое решение, которое работает на основе языка. Код Visual Studio не использовал правильные размеры вкладок или настройки пространства для Elixir, поэтому я обнаружил, что могу изменить настройки для всех файлов Elixir.

Я щелкнул по языку в строке состояния ( "Elixir" в моем случае), выберите "Настроить" языковые настройки "Эликсир"... "и отредактировал языковые настройки, специфичные для Elixir. Я просто скопировал настройки" editor.tabSize "и" editor.insertSpaces" из настроек по умолчанию слева (я так рад, что они показаны), а затем изменил их справа.

Он отлично поработал, и теперь все файлы языка Elixir используют правильные размеры и размеры вкладок.

Ответ 14

При использовании TypeScript ширина вкладки по умолчанию всегда равна двум, независимо от того, что написано на панели инструментов. Вы должны установить "prettier.tabWidth" в настройках пользователя, чтобы изменить его.

Ctrl + P, Тип → Настройки пользователя, добавить:

"prettier.tabWidth": 4

Ответ 15

Если это для Angular 2, и CLI генерирует файлы, которые вы хотели бы по-разному отформатировать, вы можете отредактировать эти файлы, чтобы изменить то, что генерируется:

npm_modules/@angular/cli/blueprints/component/files/__path__/*

Не рекомендуется массово, так как обновление npm удалит вашу работу, но сэкономило мне много времени.

Ответ 16

Я попытался изменить редактор .tabSize на 4, но .editorConfig переопределяет любые настройки, которые я указал, поэтому нет необходимости изменять какие-либо настройки в пользовательских настройках. Вам просто нужно отредактировать файл.editorConfig:

set indent_size = 4

Ответ 17

Является ли приоритет этих настроек User--> Рабочая область → Папка?

Я спрашиваю, потому что опция Detect Indentation доступна на всех трех уровнях. В настоящее время я отключил его на всех трех уровнях, чтобы быть в безопасности, но хочу знать, было ли это просто излишним с моей стороны, и установки на уровне пользователя было бы достаточно.

Ответ 18

Вы можете просто щелкнуть по клавиатуре cmnd или cntrl, она откроет страницу настроек, а затем прокрутить вниз, вы должны увидеть размер вкладки.

Ответ 19

Пользователь3550138 правильный. lonefy.vscode-js-css-html-formatter переопределяет все параметры, указанные в других ответах. Однако вам не нужно отключать или удалять его, так как он может быть настроен.

Полные инструкции можно найти, открыв боковую панель расширений и нажав на это расширение, и оно отобразит инструкции по настройке в рабочей области редактора. По крайней мере, это делает для меня в Visual Studio Code версии 1.14.1.