Преобразование пробелов в табуляции

140

Я пишу TypeScriptи HTMLфайлы, и табуляции преобразуются в пробелы.

В моем TypeScriptпроекте каждая вкладка преобразуется в пробелы, я хочу отключить ее и использовать табуляцию вместо пробелов.

Это мои настройки:

{
  "editor.insertSpaces": false
}

РЕДАКТИРОВАТЬ 1:

В .htmlфайлах вроде работает , а в .tsфайлах нет.

Матан Едаев
источник

Ответы:

249

Есть 3 варианта в .vscode/settings.json:

// The number of spaces a tab is equal to.
"editor.tabSize": 4,

// Insert spaces when pressing Tab.
"editor.insertSpaces": true,

// When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
"editor.detectIndentation": true

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

Обновить:

Вы можете просто открыть Файл » Настройки » Настройки или использовать ярлык:

CTRL+ , (Windows, Linux)

+ , (Mac)

Обновить:

Теперь у вас есть альтернатива редактированию этих параметров вручную.
Нажмите на селектор Spaces: 4 в правом нижнем углу редактора:
Ln44, Col.  [Пробелов: 4].  UTF-8 с спецификацией.  CTRLF.  HTML.  :)

Если вы хотите преобразовать существующий ws в вкладку, установите расширение из Marketplace
РЕДАКТИРОВАТЬ:
чтобы преобразовать существующий отступ из пробелов в табуляцию, нажмите Ctrl+ Shift+P и введите:

>Convert indentation to Tabs

Это изменит отступ для вашего документа в соответствии с заданными настройками на вкладки.

v-андрей
источник
1
@Viragos settings.json
v-andrew
2
Как запустить эту команду для всех файлов в моей рабочей области.
Виджендер Кумар,
135

Чтобы изменить настройки вкладки, щелкните текстовую область справа от текста Ln / Col в строке состояния в правом нижнем углу окна vscode.

Имя может быть Tab Sizeили Spaces.

Появится меню со всеми доступными действиями и настройками.

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

Эрик Боле-Фейсот
источник
3
Для меня это изменяет эти настройки только для конкретного файла, который я просматриваю в данный момент. Остальные файлы проекта сохраняют свои старые настройки. Как бы вы установили его универсально?
Кайл Васселла
Обычно я заменяю все свои файлы сразу, если мне нужно, выполняя поиск в проекте простого регулярного выражения `{4}` и заменяя его на \ t (для вкладок). Обычно также просматривайте совпадения, чтобы убедиться, что ничто не сломается, как многострочные строковые литералы и т. Д. Очевидно, примените эти настройки, чтобы ваши новые отступы также были желаемыми символами!
казак
26

Ctrl+ Shift+ P, затем "Преобразовать отступ в табуляцию"

carlsborg
источник
13

Если вы хотите использовать табуляции вместо пробелов

Попробуй это:

  1. Перейдите к FilePreferencesSettingsили просто нажмите Ctrl + ,
  2. В панели настроек поиска сверху вставьтеeditor.insertSpaces
  3. Вы увидите что-то вроде этого: Редактор: Вставить пробелы, и это, вероятно, будет проверено. Просто снимите флажок, как показано на изображении ниже

Редактор: Вставить пробелы

  1. Перезагрузите код Visual Studio (нажмите F1➤ введите reload window➤ нажмите Enter)

Если это не сработало, попробуйте следующее:

Вероятно из-за установленного плагина JS-CSS-HTML Formatter

(Вы можете проверить это, перейдя к FilePreferencesExtensionsили просто нажав Ctrl + Shift + X , в списке Enabled вы найдете JS-CSS-HTML Formatter )

Если да, вы можете изменить этот плагин:

  1. Нажмите F1➤ type Formatter config➤ нажмите Enter(откроется файл formatter.json)
  2. Измените файл следующим образом:
 4|    "indent_size": 1,
 5|    "indent_char": "\t"
——|
24|    "indent_size": 1,
25|    "indentCharacter": "\t",
26|    "indent_char": "\t",
——|
34|    "indent_size": 1,
35|    "indent_char": "\t",
36|    "indent_character": "\t"
  1. Сохраните его (перейдите к FileSaveили просто нажмите Ctrl + S )
  2. Перезагрузите код Visual Studio (нажмите F1➤ введите reload window➤ нажмите Enter)
Алекс Логвин
источник
Если вам нужны пробелы вместо табуляции, измените formatter.jsonфайл: поставьте один пробел в кавычки вместо \t(Так "\t"стало " ") и поставьте 4 там, где вы видите 1 . Итак, вы могли бы быть такими "indent_size": 4, "indent_char": " " "indent_size": 4, "indentCharacter": " ", "indent_char": " ", "indent_size": 4, "indent_char": " ", "indent_character": " "
Алекс Логвин
1
Шаг RELOAD WINDOW был тем, чего мне не хватало. Разочаровано, что я трижды ставил флажки и возился с настройками, чтобы никаких изменений не было, когда все, что мне нужно было сделать, это перезагрузить окно. Спасибо за чаевые!
Рин и Лен
8

В моем случае проблема заключалась в расширении JS-CSS-HTML Formatter, установленном после январского обновления. Свойство по умолчанию indent_char- пробел. Я удалил его, и странное поведение прекратилось.

Винисиос Торрес
источник
О да, это была актуальная проблема для меня. потратить много времени на настройку кода VS. наконец, отключение этого расширения решило проблему.
Avijeet
8

Проверьте это в официальной настройке vscode:

// Controls whether `editor.tabSize#` and `#editor.insertSpaces` will be automatically detected when a file is opened based on the file contents.
"editor.detectIndentation": true,

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

// Config the editor that making the "space" instead of "tab"
"editor.insertSpaces": true,

// Configure editor settings to be overridden for [html] language.
"[html]": {
    "editor.insertSpaces": true,
    "editor.tabSize": 2,
    "editor.autoIndent": false
}
Xin
источник
7

Ниже настройки мне подходят,

"editor.insertSpaces": false,
"editor.formatOnSave": true, // only if you want auto fomattting on saving the file
"editor.detectIndentation": false

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

Рохан Кумар
источник
3

Файл -> Настройки -> Настройки или просто нажмите Ctrl+ ,и найдите пробелы , а затем просто отключите эту опцию:

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

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

lama12345
источник
1
  1. Выделите свой код (в файле)
  2. Нажмите Размер вкладки в правом нижнем углу окна приложения. Размер вкладки в нижнем правом углу изображения окна приложения
  3. Выберите соответствующий преобразовать отступ в табуляцию Выберите соответствующее изображение Преобразовать отступ в табуляцию
RealScatman
источник
1

Если вы хотите заменить вкладки на пробелы во многих файлах, но не хотите открывать их по отдельности, я обнаружил, что это работает одинаково хорошо, просто используя параметр « Найти и заменить» на самой левой панели инструментов.

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

Во втором поле ( Replace) введите количество пробелов, которое вы хотите использовать (например, 2 или 4).

Если вы ...нажмете кнопку, вы можете указать каталоги, которые нужно включить или игнорировать (т.е. src/Data/Json).

Наконец, проверьте предварительный просмотр результатов и нажмите « Заменить все» . Это может повлиять на все файлы в рабочей области.

kvanberendonck
источник
0
{
  "editor.insertSpaces": true
}

True работает для меня.

ilovethedrama
источник