Как изменить отступ в коде Visual Studio?


345

Для каждого машинописного файла код Visual Studio использует автоматический отступ в 8 пробелов. Это слишком много, на мой вкус, но я не могу найти, где это изменить.

Может быть, это доступно как настройка, но под другим именем, так как я не могу найти ничего, связанного с отступом.

ОБНОВИТЬ

В настоящее время я использую средство форматирования кода Преттиера, и это решает все проблемы форматирования путем автоматического форматирования при сохранении (если нет синтаксической ошибки)

Ответы:


115

Вы можете изменить это на глобальном Userуровне или Workspaceуровне.

Откройте настройки: С помощью клавиш ctrl + ,или щелчки File> Preferences> , Settingsкак показано ниже.

Настройки в меню VS Code

Затем выполните следующие 2 изменения: (введите tabSizeв строке поиска)

  1. Снимите флажок Detect Indentation
  2. Измените размер вкладки на 2/4 (хотя я твердо считаю, что 2 подходит для JS :))

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


1
Пожалуйста, используйте 4 пробела для отступа.
Богдан Куц

4
@ BohdanKuts ха-ха, это будет бесконечный аргумент
Синь

Да :) Я сделал некоторый поиск для этого и нашел, почему это стало 2 пробелами. И мне кажется, что причина устарела, поэтому я рекомендую использовать 4 пробела.
Богдан Куц

1
Это субъективно и не имеет реального преимущества, я оставляю 2 пробела для некоторых типов файлов, таких как js, html и css, и 3 пробела для кода, просто для удобства чтения. В HTML и XML с 4 пробелами вам нужно очень скоро прокрутить вправо.
Пабло Пасос

574

На панели инструментов в правом нижнем углу вы увидите элемент, который выглядит следующим образом: введите описание изображения здесь Нажав на него, вы получите возможность сделать отступ с помощью пробелов или табуляции. После выбора типа отступа у вас будет возможность изменить размер отступа. В приведенном выше примере отступ равен 4 пробелам на отступ. Если в качестве символа отступа выбрана вкладка, то вместо размера вкладки вы увидите пробелов

Если вы хотите, чтобы это применялось ко всем файлам, а не к отдельным файлам, переопределите настройки Editor: Tab Sizeи в Editor: Insert Spacesнастройках пользователя или в настройках рабочей области. зависимости от ваших потребностей

Редактировать 1

Чтобы перейти к настройкам пользователя или рабочей области, перейдите в « Настройки» -> « Настройки» . Убедитесь, что вы находитесь на вкладке « Пользователь» или « Рабочая область », в зависимости от ваших потребностей, и используйте панель поиска, чтобы найти настройки. Вы также можете отключить, так Editor: Detect Indentationкак этот параметр переопределит то, для чего вы установили, Editor: Insert Spacesи Editor: Tab Sizeкогда он включен


Ссылка на изображение не работает.

34
Изменение editor.tabSpacesже не изменить интервал во всех файлах. Это только изменяет это для созданных в будущем файлов. Там все еще нет решения для исправления всех файлов в одном действии.
Джейкоб Стамм,

3
Вот это да. сумасшедший иногда вещи просто прячутся на виду
pingo

4
Это супер не интуитивно понятно. У меня уже есть отступ для использования пробелов. Почему мне нужно нажать на опцию пробелов, чтобы перейти во второе скрытое меню, чтобы установить количество пробелов? Любой другой редактор, который я использовал, - это один клик на деталях отступа в строке состояния, и есть опция количества пробелов. В VS Code мне нужно посмотреть на переполнение стека, потому что нужное меню скрыто за опцией, которую я не пытаюсь изменить.
ian.pvd

1
Кажется, он всегда возвращается к значению 4 по умолчанию каждый раз, когда я создаю новый файл?!?!
старик,

143

Чтобы изменить отступ на основе языка программирования :

  1. Откройте палитру команд ( CtrlShiftP| macOS:P )
  2. Предпочтения: Конфигурировать специфичные для языка настройки ... (идентификатор команды:workbench.action.configureLanguageBasedSettings )
  3. Выберите язык программирования (например, TypeScript)
  4. Добавьте этот код:

    "[typescript]": {
        "editor.tabSize": 2
    }
    

Смотрите также: VS Code Docs


Как (где) использовать идентификатор команды? Я не вижу «Конфигурировать специфичные для языка настройки» в разделе «Настройки файла».
Алан Бальеу

@AlanBaljeu, вы можете использовать идентификатор команды для сочетаний клавиш, расширений и т. Д. Таким образом, вы можете перейти к меню « Файл» > « Установки» > « Сочетания клавиш» , вставить идентификатор для ввода и назначить, например, Ctrl + K Ctrl + L для команды.
Мартин Шнайдер,

55

Вы также можете установить editor.detectIndentation значение false в дополнение к ответу Эллиота-J.

VSCode перезапишет ваши настройки editor.tabSizeи editor.insertSpacesнастройки для каждого файла, если обнаружит, что файл имеет другой шаблон отступа для табуляции или пробелов. Вы можете столкнуться с этой проблемой, если добавляете существующие файлы в свой проект или добавляете файлы с помощью генераторов кода, таких как Angular Cli. Вышеуказанная настройка не позволяет VSCode сделать это.


44

Ярлык форматирования кода:

VSCode в Windows - Shift + Alt + F

VSCode на MacOS - Shift + Option + F

VSCode в Ubuntu - Ctrl + Shift + I

Вы также можете настроить этот ярлык, используя настройки предпочтений, если это необходимо.

выбор колонки с клавиатуры Ctrl + Shift + Alt + Arrow


1
Shift + Alt + Fизменил все отступы в моем файле с 8 пробелов на мои 4 пробела по умолчанию. Как раз то, что я искал :)
Harry12345

24

В моем случае « EditorConfig для VS Code» » переопределяет настройки VSCode. Если он установлен, проверьте файл .editorconfig в корневой папке проекта.

Вот пример конфигурации. «Indent_size» устанавливает количество пробелов для вкладки.

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

7

Упрощенное объяснение с картинками для тех, кто погуглил "Изменить отступ в VS Code"

Шаг 1: Нажмите Настройки> Настройки

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

Шаг 2: Параметр, который вы ищете, «Обнаружить отступ», начните вводить его. Нажмите на «Редактор: Размер вкладки»

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

Шаг 3: Прокрутите вниз до «Редактор: Размер вкладки» и введите 2 (или что вам нужно).

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



Изменения автоматически сохраняются

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

Пример моих изменений

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


6

Чтобы установить для всех существующих файлов и новых файлов пространство с идентификатором 2, просто поместите его в файл settingns.json (в корне json):

"[typescript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features",
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
        "editor.detectIndentation":false
 }

Вы можете добавить тип языка конфигурации:

"[javascript]": {
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "editor.detectIndentation":false
} 

В эти дни я использую prettier.js и плагин js, так как он заботится о пробелах и других перестройках длинных линий, а также о большинстве всего остального.
HMR

1
Спасибо, отличный ответ, лучший способ для меня.
Swetabja Hazra

5

Как превратить 4 пробела во всех файлах в VS Code в 2 пробела

  • Поиск открытого файла
  • Включить регулярные выражения
  • Введите: ( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]))в поле поиска
  • Введите: $1в поле замены

Как превратить 2 пробела во всех файлах в VS Code в 4 пробела

  • Поиск открытого файла
  • Включить регулярные выражения
  • Введите: ( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))в поле поиска
  • Введите: $1$1в поле замены

ПРИМЕЧАНИЕ. Сначала необходимо включить PERL Regex. Это как:

  • Откройте настройки и перейдите в файл JSON
  • добавьте следующее в файл JSON "search.usePCRE2": true

Надеюсь, кто-то видит это.


1
Специально для VS Code также есть расширение для преобразования 4 в 2 пробела.
Танус

4

Проблема: принятый ответ фактически не исправляет отступ в текущем документе.

Решение: Запустите Format Documentдля повторной обработки документа в соответствии с текущими (новыми) настройками.

Проблема: документы HTML в моих проектах имеют тип «Django HTML», а не «HTML», и нет доступного форматера.

Решение: переключите их на синтаксис «HTML», отформатируйте их, а затем переключитесь обратно на «Django HTML».

Проблема: средство форматирования HTML не знает, как обрабатывать теги шаблонов Django, и отменяет большую часть моего тщательно примененного вложения.

Решение: Установите расширение Indent 4-2 , которое выполняет отступы строго, без учета текущего синтаксиса языка (что я и хочу в этом случае).


2

Я хотел изменить отступ моего существующего HTML-файла с 4 пробелов на 2 пробела.

Я нажал кнопку «Пробелы: 4» в строке состояния и изменил их на два в следующем диалоговом окне.

Я использую расширение vim. Я не, как сделать отступ без VIM

Для повторного отступа моего текущего файла я использовал это:

gg

=

G

0

Добавление: да, вы можете использовать нижний правый интерфейс для настройки параметров пространства. Но если у вас есть код, который не отформатирован с новым интервалом, вы можете щелкнуть правой кнопкой мыши в любом месте файла и выбрать « Формат документа» . Мне понадобилось время, чтобы понять это, пока я не наткнулся на этот вопрос .

Меню «Формат документа»

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.