Jak zmienić wcięcie w Visual Studio Code?

344

Dla każdego pliku maszynopisu kod wizualnego studia wykorzystuje automatyczne wcięcie 8 spacji. To trochę za dużo jak na mój gust, ale nie mogę znaleźć, gdzie to zmienić.

Może jest dostępny jako ustawienie, ale pod inną nazwą, ponieważ nie mogę znaleźć niczego związanego z wcięciem.

AKTUALIZACJA

Obecnie używam formatora kodu Prettier, który rozwiązuje wszystkie problemy z formatowaniem poprzez automatyczne formatowanie przy zapisie (jeśli nie ma błędu składniowego)

HMR
źródło

Odpowiedzi:

110

Możesz to zmienić na Userpoziomie globalnym lub Workspacepoziomie.

Otwórz ustawienia: Używając skrótu ctrl + ,lub kliknięcia File> Preferences> Settingsjak pokazano poniżej.

Ustawienia w menu VS Code

Następnie wykonaj następujące 2 zmiany: (wpisz tabSizew pasku wyszukiwania)

  1. Odznacz pole wyboru Detect Indentation
  2. Zmień rozmiar zakładki na 2/4 (chociaż zdecydowanie uważam, że 2 jest poprawne dla JS :))

wprowadź opis zdjęcia tutaj

Xin
źródło
1
Proszę użyć 4 spacji do wcięcia.
Bohdan Kuts
3
@BohdanKuts ha ha, to będzie niekończący się spór
Xin
Tak :) Szukałem tego i odkryłem, dlaczego stały się 2 spacjami. I dla mnie powód wydaje się nieaktualny, więc na pewno zalecę użycie 4 spacji.
Bohdan Kuts
Jest to subiektywne i nie ma prawdziwej przewagi, zachowuję 2 spacje dla niektórych typów plików, takich jak js, html i css, oraz 3 spacje dla kodu, tylko dla czytelności. W HTML i XML z 4 spacjami musisz szybko przewinąć w prawo.
Pablo Pazos
574

Na pasku narzędzi w prawym dolnym rogu zobaczysz element, który wygląda następująco: wprowadź opis zdjęcia tutaj Po kliknięciu pojawi się opcja wcięcia za pomocą spacji lub tabulatorów. Po wybraniu typu wcięcia będziesz mieć możliwość zmiany wielkości wcięcia. W przypadku powyższego przykładu wcięcie jest ustawione na 4 znaki spacji na wcięcie. Jeśli jako znak wcięcia zostanie wybrana tabulacja, zamiast Spacji zobaczysz Rozmiar tabulacji

Jeśli chcesz, aby dotyczyło to wszystkich plików, a nie poszczególnych plików, zastąp ustawienia Editor: Tab Sizei Editor: Insert Spacesw Ustawieniach użytkownika lub Ustawieniach obszaru roboczego w zależności od potrzeb

Edytuj 1

Aby przejść do ustawień użytkownika lub obszaru roboczego, przejdź do Preferencje -> Ustawienia . Sprawdź, czy korzystasz z karty Użytkownik lub Obszar roboczy w zależności od potrzeb i użyj paska wyszukiwania, aby zlokalizować ustawienia. Możesz także wyłączyć, Editor: Detect Indentationponieważ to ustawienie zastąpi to, co ustawiłeś Editor: Insert Spacesi Editor: Tab Sizekiedy jest włączone

elliot-j
źródło
Link do obrazu jest uszkodzony.
34
Zmiana editor.tabSpacesma nie zmienić odstępy we wszystkich plikach. Zmienia to tylko dla plików tworzonych w przyszłości. Nadal nie ma rozwiązania dla naprawy wszystkich plików w jednym działaniu.
Jacob Stamm
3
łał. umysł oszalały. czasami rzeczy chowają się na widoku
pingo
4
To jest bardzo nieintuicyjne. Mam już wcięcie ustawione na używanie spacji. Dlaczego muszę kliknąć opcję spacji, aby przejść do drugiego, ukrytego menu, aby ustawić liczbę spacji? Każdy inny edytor, którego użyłem, to jedno kliknięcie na szczegóły wcięcia na pasku stanu i jest dostępna opcja spacji. W VS Code muszę to sprawdzić w przepełnieniu stosu, ponieważ menu, które chcę, jest ukryte za opcją, której nie próbuję zmienić.
ian.pvd
1
za każdym razem, gdy tworzę nowy plik, zawsze przywraca domyślną wartość 4 miejsca?!?!
oldboy
142

Aby zmienić wcięcie w oparciu o język programowania :

  1. Otwórz paletę poleceń ( CtrlShiftP| MacOS: P)
  2. Preferencje: konfigurowanie ustawień język konkretnych ... (id polecenia: workbench.action.configureLanguageBasedSettings)
  3. Wybierz język programowania (na przykład TypeScript)
  4. Dodaj ten kod:

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

Zobacz także: VS Code Docs

Martin Schneider
źródło
Jak (gdzie) używa się identyfikatora polecenia? Nie widzę „Konfiguruj ustawienia specyficzne dla języka” w Preferencjach plików.
Alan Baljeu
@AlanBaljeu możesz użyć id polecenia dla skrótów klawiaturowych, rozszerzeń itp. Możesz więc przejść do Plik > Preferencje > Skróty klawiaturowe , wkleić identyfikator do danych wejściowych i przypisać na przykład Ctrl + K Ctrl + L do polecenia.
Martin Schneider
55

editor.detectIndentationOprócz odpowiedzi Elliota-J możesz także ustawić wartość false.

VSCode nadpisze twoje ustawienia editor.tabSizei editor.insertSpacesustawienia dla pliku, jeśli wykryje, że plik ma inny wzór wcięcia tabulacji lub spacji. Możesz napotkać ten problem, jeśli dodasz istniejące pliki do projektu lub dodasz pliki przy użyciu generatorów kodu, takich jak Angular Cli. Powyższe ustawienie uniemożliwia wykonanie tego przez VSCode.

RMuesi
źródło
44

Skrót formatowania kodu:

VSCode w systemie Windows - Shift + Alt + F.

VSCode na MacOS - Shift + Opcja + F.

VSCode na Ubuntu - Ctrl + Shift + I

W razie potrzeby możesz także dostosować ten skrót za pomocą ustawienia preferencji.

wybór kolumny za pomocą klawiatury Ctrl + Shift + Alt + Arrow

Sujatha Girijala
źródło
1
Shift + Alt + Fzmieniłem wszystkie wcięcia w moim pliku z 8 spacji na moje domyślne 4 spacje. Właśnie tego szukałem :)
Harry12345,
24

W moim przypadku rozszerzenieEditorConfig for VS Code ” zastępuje ustawienia VSCode. Jeśli masz zainstalowany, sprawdź plik .editorconfig w folderze głównym projektu.

Oto przykładowa konfiguracja. „Indent_size” określa liczbę spacji dla tabulacji.

# 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
Aviw
źródło
7

Uproszczone objaśnienie ze zdjęciami dla tych, którzy wyszukali w Google „Zmień wcięcie w kodzie VS”

Krok 1: Kliknij Preferencje> Ustawienia

wprowadź opis zdjęcia tutaj

Krok 2: Ustawienie, którego szukasz, to „Wykryj wcięcie”, zacznij pisać. Kliknij „Editor: Tab Size”

wprowadź opis zdjęcia tutaj

Krok 3: Przewiń w dół do „Edytor: Rozmiar tabulacji” i wpisz 2 (lub cokolwiek potrzebujesz).

wprowadź opis zdjęcia tutaj



Zmiany są automatycznie zapisywane

wprowadź opis zdjęcia tutaj

Przykład moich zmian

wprowadź opis zdjęcia tutaj

JGallardo
źródło
6

Aby ustawić wszystkie istniejące pliki i nowe pliki na identyfikację przestrzeni na 2, po prostu umieść je w pliku setupns.json (w katalogu głównym json):

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

możesz dodać typ języka konfiguracji:

"[javascript]": {
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "editor.detectIndentation":false
} 
Reculos Gerbi Neto
źródło
Obecnie używam prettier.js i wtyczki js, ponieważ dba ona o odstępy i inne wyrównanie długich linii, a także o wszystko inne.
HMR
1
Dzięki, świetna odpowiedź, najlepszy sposób dla mnie.
Swetabja Hazra
5

Jak zmienić wcięcia 4 spacji we wszystkich plikach w kodzie VS na 2 spacje

  • Otwórz wyszukiwanie plików
  • Włącz wyrażenia regularne
  • Wpisz: ( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]))w polu wyszukiwania
  • Wpisz: $1w polu zamień

Jak zmienić wcięcia 2 spacji we wszystkich plikach w kodzie VS na 4 spacje

  • Otwórz wyszukiwanie plików
  • Włącz wyrażenia regularne
  • Wpisz: ( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))w polu wyszukiwania
  • Wpisz: $1$1w polu zamień

UWAGA: Najpierw musisz włączyć PERL Regex. Oto jak:

  • Otwórz ustawienia i przejdź do pliku JSON
  • dodaj następujące elementy do pliku JSON "search.usePCRE2": true

Mam nadzieję, że ktoś to zobaczy.

przypadkowy234
źródło
1
Specjalnie dla VS Code istnieje rozszerzenie do konwersji 4 do 2 spacji.
tanius
4

Problem: Akceptowana odpowiedź nie naprawia wcięcia w bieżącym dokumencie.

Rozwiązanie: Uruchom, Format Documentaby ponownie przetworzyć dokument zgodnie z bieżącymi (nowymi) ustawieniami.

Problem: Dokumenty HTML w moich projektach są typu „Django HTML”, a nie „HTML” i nie ma dostępnego formatera.

Rozwiązanie: Przełącz je na składnię „HTML”, sformatuj je, a następnie wróć do „Django HTML”.

Problem: Formater HTML nie wie, jak obsługiwać tagi szablonu Django i cofa większość starannie zastosowanego zagnieżdżenia.

Rozwiązanie: Zainstaluj rozszerzenie Indent 4-2 , które wykonuje wcięcie ściśle, bez względu na bieżącą składnię języka (czego w tym przypadku chcę).

shacker
źródło
2

Chciałem zmienić wcięcie mojego istniejącego pliku HTML z 4 spacji na 2 spacje.

Kliknąłem przycisk „Spaces: 4” na pasku stanu i zmieniłem je na dwa w następnym oknie dialogowym.

Używam rozszerzenia „vim”. Nie wiem jak powtórzyć wcięcie bez vima

Aby ponownie wciąć mój bieżący plik, użyłem tego:

gg

=

G
Rounak
źródło
0

Dodanie: tak, możesz użyć interfejsu w prawym dolnym rogu, aby skonfigurować ustawienia przestrzeni. Ale jeśli masz istniejący kod, który nie jest sformatowany do nowego odstępu, możesz kliknąć prawym przyciskiem myszy dowolne miejsce w pliku i kliknąć Formatuj dokument . Zajęło mi trochę czasu, aby to rozgryźć, dopóki nie natknąłem się na ten problem .

Menu Formatuj dokument

Wompinalong
źródło