Jak wykluczyć pliki z „formatowania przy zapisie” w VSCode?

109

Obecnie w ustawieniach VSCode można skonfigurować format przy zapisywaniu w następujący sposób:

"editor.formatOnSave": true

Chcę wykluczyć niektóre rozszerzenia plików, na przykład tylko format JavaScript, ale nie pliki HTML.

gabrielAnzaldo
źródło
Na komputerze Mac użyj Ctrl + K Shift + SW systemie Linux użyjCtrl + K S
Joost van der Laan

Odpowiedzi:

190

Możesz użyć ustawień specyficznych dla języka, aby włączyć go tylko dla określonego języka, np. JavaScript:

"[javascript]": {
    "editor.formatOnSave": true
}

Aby wyłączyć to dla określonego języka, możesz zmienić globalne ustawienie domyślne truei połączyć je z określonym językiem false:

"editor.formatOnSave": true
"[javascript]": {
    "editor.formatOnSave": false
}

Zwróć uwagę, że ustawienia specyficzne dla języka są oparte na identyfikatorach języków, a nie bezpośrednio na rozszerzeniach plików. Pojawiło się otwarte żądanie funkcji, które pozwala również na ustawienia specyficzne dla rozszerzenia pliku .

W przypadkach, gdy identyfikator języka nie jest wystarczająco konkretny, "files.associations"można go użyć do zmiany mapowania plików z określonym rozszerzeniem i / lub w określonym katalogu na inny identyfikator, ale wpłynie to również na podświetlanie składni, uzupełnianie kodu itp. Na przykład działałoby to, aby wyłączyć formatowanie plików JavaScript w outkatalogach, ale będą one traktowane jako zwykły tekst:

"[javascript]": {
    "editor.formatOnSave": true
},
"files.associations": {
    "**/out/**/*.js": "plaintext"
}
Gama11
źródło
bardzo dobra odpowiedź. jednak czy możliwe jest zastosowanie formatu przy zapisywaniu w określonym module lub folderze Pythona? ... obejście, które otworzyłem ten moduł w jego własnych oknach vscode.
kerbrose
Jedną wadą ustawiania, powiedzmy, *.inplików jako zwykłego tekstu ( "files.associations": { "*.in": "plaintext" }jest to, że wyłącza podświetlanie kodu. Czy istnieje sposób na wyłączenie formatowania *.inplików, ale powiedz mu, aby wyróżniał jako określony język?
Cole Johnson,
40

Jeśli natknąłeś się na to pytanie, tak jak ja, ponieważ zostałeś przekierowany z powodu tego pytania VSCode: wyłącz formatowanie określonego pliku (lub rozszerzenia), które mówi, że jest to duplikat (nie czuję, bo chciałem to dla konkretnego pliku) i szukasz „jednorazowego” rozwiązania:

VS Code ma skrót „teraz” (nie wiem od kiedy) do zapisywania pliku bez formatowania wymienionego pod poleceniem workbench.action.files.saveWithoutFormatting- Domyślne przypisanie klawiszy powinno być

CTRL + K CTRL + SHIFT + S 

(po prostu przytrzymaj wciśnięty klawisz CTRL, a następnie wpisz K + SHIFT + S).

W systemie OS X domyślne przypisanie klawiszy to

CMD + k następnie wciśnij s

Александр Фишер
źródło
2
Nie wiedziałem o tym. Dzięki! Mogę więc mieć włączoną opcję „FormatOnSave”, ale jeśli nadal chcę zapisać plik bez jego sformatowania, trzymam wciśnięty klawisz Ctrl, a następnie naciskam K + Shift + S Po prostu próbowałem. Niesamowite!
abhijit
2
w Ctrl + ks
systemie
0

W systemie Mac i Linux użyj Ctrl + K S

W systemie Windows użyj Ctrl + K Ctrl + Shift + S

Aby sprawdzić skróty klawiaturowe VS Code: Ctrl + K, Ctrl + S(tak, prawie takie same jak powyżej) i wyszukaj „zapisz bez formatowania”

Joost van der Laan
źródło