Як я можу налаштувати коефіцієнт конверсії вкладку в простір?


852

Як налаштувати коефіцієнт перетворення «вкладку-простір» під час використання коду Visual Studio?

Наприклад, зараз у HTML видається два пробіли на натискання TAB, але в TypeScript він створює 4.

Відповіді:


1359

За замовчуванням Visual Studio Code спробує відгадати ваші параметри відступу залежно від файлу, який ви відкриєте.

Ви можете вимкнути відгадування через "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

1
Ей, Гассе, чи ти будеш готовий вказати мені на файл, де здогадки неправильні? Будь ласка, поділіться тим, як ви налаштували ці два налаштування (tabSize & insertSpaces) та що б ви очікували отримати. Дякую! :)
Олексій Діма

5
Я налаштував обидва налаштування на "авто", і поведінка не така, як я очікував (хоча я б не пішов так далеко, щоб назвати це "неправильно"). Я не знаю , що файл повинен бути змінений , щоб підтримати мою конвенцію, але я відкрив квиток UserVoice для цього , як це було запропоновано в відповідь на питання # 30057721
GUSS

4
Чи є також можливість встановити за замовчуванням для нових порожніх файлів? У цьому сценарії мало що здогадуватися, і я думаю, що VSCode за замовчуванням використовувати пробіли (що я не віддаю перевагу) ...
Stijn de Witt

Fwiw, також є параметр налаштувань робочого місця, щоб ви могли встановити іншу поведінку за проектом, що перекриває налаштування користувача. 2 ¢
рюш

1
Спасибі рюші. Чи є спосіб змінити tabSizeмову? наприклад, під час редагування декількох файлів на різних мовах в одній робочій області (наприклад, Ruby, JavaScript, CSS тощо) - Ruby буде 2пробілами, але CSS буде 4... як правило.
Якоб Барнард

692

Я використовую версію 1.21, але, думаю, це може стосуватися і більш ранніх версій.

Погляньте на праву нижню частину екрана. Ви повинні побачити те , що говорить Spacesабо Tab-Size.

Шахта показує пробіли, →

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

  1. Клацніть на пробіли (або розмір вкладки )
  2. Виберіть Відступ за допомогою пробілів або Відступ за допомогою вкладок
  3. Виберіть потрібну кількість пробілів або вкладок.

Це працює лише на документ, а не на весь проект. Якщо ви хочете застосувати його у всьому проекті, вам також потрібно додати його "editor.detectIndentation": falseдо налаштувань користувача.


як робиться №3? Після вибору №2, схоже, не існує способу просто "вибрати кількість пробілів ... вам подобається". Дякую.
Chris22

Я весь час думав: "Це ненависть якось можлива ..." Це пояснює, як.
vlz

189

Ну, якщо вам подобається спосіб розробника, Visual Studio Code дозволяє вам вказати різні типи файлів для tabSize. Ось приклад мого settings.jsonчотирьох пробілів за замовчуванням та двох просторів JavaScript / JSON:

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

  // This one forces the tab to be **space**
  "editor.insertSpaces": true
}

PS: Ну, якщо ви не знаєте, як відкрити цей файл (спеціально в новій версії Visual Studio Code), ви можете:

  1. Редуктор з лівого низу →
  2. Налаштування → вгорі праворуч Відкрийте Установки

 

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


105

За замовчуванням Visual Studio Code автоматично визначає відступ поточного відкритого файлу. Якщо ви хочете вимкнути цю функцію і зробити всі відступи, наприклад, два пробіли, зробіть наступне в налаштуваннях користувача або в налаштуваннях робочої області.

{
    "editor.tabSize": 2,

    "editor.detectIndentation": false
}

57

Ми можемо керувати розміром вкладки за типом файлу за допомогою EditorConfig та його EditorConfig для розширення коду VS. Тоді ми можемо зробити Alt+ Shift+ Fконкретними для кожного типу файлів.

Установка

ext install EditorConfig

Приклад конфігурації

.editorconfig

[*]
indent_style = space

[*.{js,ts,json}]
indent_size = 2

[*.java]
indent_size = 4

[*.go]
indent_style = tab

settings.json

EditorConfig замінює всі параметри settings.json для редактора. Не потрібно міняти editor.detectIndentation.


Про що це extви говорите (будь ласка, відповідайте, редагуючи свою відповідь, а не тут, у коментарях (як це доречно))? Якийсь Node.js? Яка платформа?
Пітер Мортенсен

12

Якщо ви використовуєте більш гарне розширення у Visual Studio Code, спробуйте додати це до файла settings.json:

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

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

8

У Visual Studio Code версії 1.31.1 або новішої версії (я думаю): Як і sed Alex Alex Dima , ви можете легко налаштувати це за допомогою цих параметрів

  • Windows у меню ФайлНалаштуванняНалаштування користувача або використовуйте короткі клавіші Ctrl+ Shift+P
  • Mac у меню КодНалаштуванняНалаштування або ,

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

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


7

Ви хочете переконатися, що ваш configconfig не суперечить конфігурації налаштувань вашого користувача чи робочої області, тому що я просто роздратовано думав, що налаштування файлів налаштувань не застосовуються, коли моя конфігурація редактора скасовує ці зміни.


7

Це lonefy.vscode-js-css-html-formatterвинен. Відключіть його та встановіть HookyQR.beautify.

Тепер на збереженні ваші вкладки не будуть перетворені.



4

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

Ctrl+ P, Введіть → налаштування користувача, додайте:

"prettier.tabWidth": 4

4

Якщо прийнята відповідь на цю публікацію не працює, спробуйте:

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

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


4

Вже є багато хороших відповідей наших улюблених членів громади. Я насправді хотів додати вкладку розміру коду C # і знайшов цю тему. Я знайшов багато рішень, і офіційні документи VS Code є приголомшливими. Я просто хочу поділитися своїм налаштуванням C #:

"[csharp]": {
    "editor.insertSpaces": true,
    "editor.tabSize": 4
},

просто скопіюйте та вставте вище код у settings.jsonфайл та збережіть. Дякую


1
Так, це шлях, якщо ви хочете встановити інший формат для певної мови. Мені подобається використовувати вкладки з tabWidth = 2, але autopep8 це ненавидить.
Абхішек Касредді

2

Файл меню → НалаштуванняУстановки

Додати до налаштувань користувача:

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

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


2

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

Станом на 2017 рік я знайшов ще одне рішення, яке працює на мові. Visual Studio Code не використовував належних розмірів вкладок або параметрів місця для Elixir , тому я виявив, що можу змінити налаштування для всіх файлів Elixir.

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

Це спрацювало чудово, і тепер усі файли мов Elixir використовують належний розмір та вкладку.


1

Мені довелося зробити багато редагувань налаштувань, як і попередні відповіді, тому я не знаю, що змусило його працювати після багатьох змін.

Нічого не працювало , поки я не закрив і openen мій IDE, але останні три речі , які я зробив Вимикає lonefy.vscode-js-css-html-formatter, "html.format.enable": true,і перезапустити Visual Studio.

{
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "workbench.colorTheme": "Default Light+",
    "[html]": {
        "editor.defaultFormatter": "vscode.html-language-features",
        "editor.tabSize": 2,
        "editor.detectIndentation": false,
        "editor.insertSpaces": true
    },
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true,
    "editor.tabSize": 2,
    "typescript.format.insertSpaceAfterConstructor": true,
    "files.autoSave": "afterDelay",
    "html.format.indentHandlebars": true,
    "html.format.indentInnerHtml": true,
    "html.format.enable": true,
    "editor.detectIndentation": false,
    "editor.insertSpaces": true,
}

0

Якщо це для Angular 2, а CLI генерує файли, які ви хотіли б відформатувати іншим чином, ви можете редагувати ці файли, щоб змінити те, що створюється:

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

Не рекомендується масово, оскільки оновлення npm видалить вашу роботу, але це заощадило мені багато часу.


0

Я намагався змінити редактор .tabSizeна 4, але .editorConfigпереосмислює всі налаштування, які я вказав, тому не потрібно змінювати будь-яку конфігурацію в налаштуваннях користувача. Вам просто потрібно відредагувати .editorConfig файл:

set indent_size = 4

-1

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

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

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