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


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.