Visual Studio Code - konwertuj spacje na karty

149

Mam w projekcie zarówno pliki TypeScript, jak i HTML, w obu plikach karty są konwertowane na spacje.

Chcę wyłączyć automatyczną konwersję i upewnić się, że mój projekt ma tylko karty.

Edytować:

Przy tym ustawieniu wydaje się działać w plikach HTML, ale nie w plikach TypeScript.

{
  "editor.insertSpaces": false
}
Matan Yadaev
źródło
Nie rozumiem, dlaczego IDE domyślnie konwertuje karty na spacje. Gdybym chciał spacji, stuknąłbym spację 4 razy dla każdego wcięcia ... jak dziki.
Joshua Schlichting

Odpowiedzi:

260

Istnieją 3 opcje w .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.detectIndentationwykryje to w twoim pliku, musisz go wyłączyć. Jeśli to nie pomogło, sprawdź, czy nie masz ustawień o wyższym priorytecie. Na przykład, gdy zapiszesz go w ustawieniach użytkownika, może zostać nadpisany przez ustawienia Workspace, które znajdują się w folderze twojego projektu.

Aktualizacja:

Możesz po prostu otworzyć Plik » Preferencje » Ustawienia lub użyć skrótu:

CTRL+ , (Windows, Linux)

+ , (Mac)

Aktualizacja:

Teraz masz alternatywę do ręcznej edycji tych opcji.
Kliknij selektor Spaces: 4 w prawym dolnym rogu edytora:
Ln44, płk.  [Spacje: 4].  UTF-8 z BOM.  CTRLF.  HTML.  :)

Jeśli chcesz przekonwertować istniejące ws na kartę, zainstaluj rozszerzenie z Marketplace
EDYCJA:
Aby przekonwertować istniejące wcięcia ze spacji na tabulatory, naciśnij Ctrl+ Shift+P i wpisz:

>Convert indentation to Tabs

Spowoduje to zmianę wcięcia dokumentu na podstawie zdefiniowanych ustawień na Tabulatory.

v-andrew
źródło
1
@Viragos settings.json
v-andrew
2
Jak uruchomić to polecenie dla wszystkich plików w moim obszarze roboczym.
Vijender Kumar
138

Aby zmienić ustawienia zakładki, kliknij obszar tekstowy po prawej stronie tekstu Ln / Col na pasku stanu w prawym dolnym rogu okna VSCode.

Nazwa może być Tab Sizelub Spaces.

Pojawi się menu ze wszystkimi dostępnymi akcjami i ustawieniami.

wprowadź opis obrazu tutaj

Eric Bole-Feysot
źródło
3
W moim przypadku zmienia to tylko te ustawienia dla konkretnego pliku, który obecnie przeglądam. Pozostałe pliki w projekcie zachowują swoje stare ustawienia. Jak ustawić to uniwersalnie?
Kyle Vassella
Zwykle zastępuję wszystkie moje pliki naraz, jeśli zajdzie taka potrzeba, wyszukując w projekcie proste wyrażenie regularne `{4}` i zamieniam na \ t (dla tabulatorów). Zwykle także zerknij na dopasowania, aby upewnić się, że nic nie zepsuje się tak jak wielowierszowe literały łańcuchowe itp. Oczywiście zastosuj te ustawienia, aby nowe wcięcia również były pożądanymi znakami!
kozak
29

Ctrl+ Shift+ P, a następnie „Zamień wcięcia na tabulatory”

Carlsborg
źródło
14

Jeśli chcesz używać tabulatorów zamiast spacji

Spróbuj tego:

  1. Przejdź do FilePreferencesSettingslub po prostu naciśnij Ctrl + ,
  2. Na pasku ustawień wyszukiwania u góry wstaweditor.insertSpaces
  3. Zobaczysz coś takiego: Editor: Insert Spaces i prawdopodobnie będzie zaznaczone. Po prostu odznacz to, jak pokazano na obrazku poniżej

Wydawca: Wstaw spacje

  1. Załaduj ponownie kod programu Visual Studio (naciśnij F1➤ wpisz reload window➤ naciśnij Enter)

Jeśli to nie zadziała, spróbuj tego:

Prawdopodobnie wynika to z zainstalowanej wtyczki JS-CSS-HTML Formatter

(Możesz to sprawdzić, przechodząc do FilePreferencesExtensionslub po prostu naciskając Ctrl + Shift + X , na liście Włączone znajdziesz JS-CSS-HTML Formatter )

Jeśli tak, możesz zmodyfikować tę wtyczkę:

  1. Naciśnij F1➤ wpisz Formatter config➤ naciśnij Enter(otworzy plik formatter.json)
  2. Zmodyfikuj plik w ten sposób:
 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. Zapisz (przejdź do FileSavelub po prostu naciśnij Ctrl + S )
  2. Załaduj ponownie kod programu Visual Studio (naciśnij F1➤ wpisz reload window➤ naciśnij Enter)
Alex Logvin
źródło
Jeśli chcesz spacje zamiast tabulatorów, zmodyfikuj formatter.jsonplik: umieść jedną spację w dowolnym cudzysłowie zamiast \t(Tak "\t"stało się " ") i umieść 4 w miejscu 1 . Więc możesz przyjść tak "indent_size": 4, "indent_char": " " "indent_size": 4, "indentCharacter": " ", "indent_char": " ", "indent_size": 4, "indent_char": " ", "indent_character": " "
Alex Logvin,
1
Brakowało mi kroku RELOAD WINDOW. Frustrujące było przejście przez proces zaznaczania pól i manipulowania ustawieniami 3 razy, aby nie wprowadzać żadnych zmian, kiedy wszystko, co musiałem zrobić, to przeładować okno. Dzięki za wskazówkę!
Rin i Len
8

W moim przypadku problem polegał na zainstalowaniu rozszerzenia JS-CSS-HTML Formatter po styczniowej aktualizacji. Właściwością domyślną indent_charjest spacja. Odinstalowałem go i dziwne zachowanie ustało.

Vinicios Torres
źródło
O tak, to był właściwy problem dla mnie. spędzać dużo czasu na majstrowaniu przy ustawianiu w kodzie VS. ostatecznie wyłączenie tego rozszerzenia rozwiązało problem.
Avijeet
8

Sprawdź to z oficjalnego ustawienia 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
źródło
7

Poniższe ustawienia działają dobrze dla mnie,

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

Powyższe ustawienia będą odzwierciedlać i stosowane do wszystkich plików. Nie musisz ręcznie wciskać / formatować każdego pliku.

Rohan Kumar
źródło
3

Plik -> Preferencje -> Ustawienia lub po prostu naciśnij Ctrl+ ,i wyszukaj spacje , a następnie wyłącz tę opcję:

wprowadź opis obrazu tutaj

Musiałem ponownie otworzyć plik, aby zmiany odniosły skutek.

lama12345
źródło
1
  1. Podświetl swój kod (w pliku)
  2. Kliknij opcję Rozmiar karty w prawym dolnym rogu okna aplikacji Rozmiar zakładki w prawym dolnym rogu obrazu okna aplikacji
  3. Wybierz odpowiednią opcję Konwertuj wcięcie na tabulatory Wybierz odpowiedni obraz Konwertuj wcięcie na tabulatory
RealScatman
źródło
1

Jeśli chcesz zmienić zakładki na spacje w wielu plikach, ale nie chcesz otwierać ich pojedynczo, odkryłem, że równie dobrze działa po prostu użycie opcji Znajdź i zamień z lewego paska narzędzi.

W pierwszym polu ( Find) skopiuj i wklej kartę z kodu źródłowego.

W drugim polu ( Replace) wprowadź liczbę spacji, których chcesz użyć (np. 2 lub 4).

Jeśli naciśniesz ...przycisk, możesz określić katalogi do uwzględnienia lub zignorowania (np src/Data/Json.).

Na koniec sprawdź podgląd wyników i naciśnij Zamień wszystko . Może to mieć wpływ na wszystkie pliki w obszarze roboczym.

kvanberendonck
źródło
0
{
  "editor.insertSpaces": true
}

True pracuje dla mnie.

ilovethedrama
źródło