Jak zmienić tryb wcięcia w Atom?

194

Nie byłem w stanie tego rozgryźć. Atom wydaje się używać spacji jako domyślnego trybu wcięcia. Wolę jednak mieć zakładki. Sublime Text ma wbudowaną funkcję przełączania i konwertowania wcięć.

Ktoś dowiedział się, jak zmienić tryb wcięcia Atom?

Niektóre zrzuty ekranu z Sublime Text:

Otwarte menu Sublime Text Menu wcięcia wysublimowanego tekstu

Jon Koops
źródło
4
do konwersji wcięcia możesz wykonać wyszukiwanie wyrażeń regularnych i zamień je, a następnie użyj \ t, aby znaleźć lub wstawić tabulatory.
mer10z_tech
1
czy istnieje prosty sposób na zmianę bieżącego kodu na 4 z trybu wcięcia 2?
Charlie Parker,
1
Korzystam z wtyczki automatycznego wykrywania wcięć, która nie tylko automatycznie skonfiguruje klawisz tab, aby robić wszystko, co jest już w pliku, ale wyświetla tryb wcięcia w lewym dolnym rogu.
while1fork
@CharlieParker Idź do preferencji, kliknij kartę edytora i ustaw Wcięcie na 4.
Craig
Uwaga: Atom domyślnie pokazuje i przemierza spacje takie jak tabulatory! Zobacz odpowiedź tparkera tutaj: stackoverflow.com/a/46333677/1599699
Andrew

Odpowiedzi:

218

Zobacz Miękkie zakładki i Długość zakładki w Ustawienia> Ustawienia edytora .

Aby szybko przełączać tryby wcięcia, możesz użyć Ctrl-Shift-P i wyszukać Edytor: Przełącz miękkie tabulatory .

blom
źródło
1
Jak powiedział @zamber, jeśli automatyczne wcięcie strony nie powoduje zmiany ustawień wcięcia, otwórz ją ponownie i spróbuj ponownie.
Victor S
58
Podobnie jak uwaga dodatkowa - miękkie tabulatory to spacje jako tabulatory, twarde tabulatory to tabulatory. Również jeśli ustawienia nie są ponownie sprawdzane, spróbujCtrl-Shift-P Editor: Toggle Soft Tabs
ivan-k
2
Chciałbym dodać, że ŻADNE z rozwiązań w tym wątku nie działało, dopóki nie zamieniłem na czcionkę o jednolitym odstępie. Po zamianie na czcionkę o jednolitym odstępie wypróbowałem każdą metodę i wszystkie rzeczywiście działają. Mam nadzieję, że to pomoże komuś w przyszłości ...
Native Coder
czy istnieje prosty sposób na zmianę bieżącego kodu na 4 z trybu wcięcia 2?
Charlie Parker,
Muszę przyznać, że nie widzę żadnych korzyści z NIEużywania czcionki o stałej szerokości podczas kodowania.
Frank Bailey
65

Przejdź do Plik -> Ustawienia

Istnieją tutaj 3 różne opcje.

  1. Miękkie zakładki
  2. Długość zakładki
  3. Typ zakładki

Przeprowadziłem testy i doszedłem do tych wniosków na temat tego, co każdy z nich robi.

Miękkie tabulatory - włączenie tej opcji oznacza, że ​​domyślnie będzie używać spacji (tj. Dla nowych plików).

Długość tabulatora - jak szeroki jest wyświetlany znak tabulatora lub ile spacji jest wstawianych dla tabulatora, jeśli włączone są tabulatory miękkie.

Typ zakładki - określa tryb wcięcia, który ma być używany dla istniejących plików. Jeśli ustawisz na auto, użyje istniejącego wcięcia (tabulatory lub spacje). Ustawienie go na miękki lub twardy spowoduje wymuszenie spacji lub tabulatorów niezależnie od istniejącego wcięcia. Najlepiej pozostawić to na auto.

Uwaga: Soft = spacje, hard = tab

developerbmw
źródło
Możesz także mówić o Atomic Soft Tabs ?
neeh
3
czy istnieje prosty sposób na zmianę bieżącego kodu na 4 z trybu wcięcia 2?
Charlie Parker,
1
Dziękujemy za pomoc w wyjaśnieniu niektórych żargonów używanych przez Atom do zrozumienia tego problemu.
MiFiHiBye
23

Dodaj to do swojego ~/.atom/config.cson

editor:
    tabLength: 4
Leif Gruenwoldt
źródło
15

OS X:

  1. Idź do Atom -> prefrenceslubCMD + ,

  2. Przewiń w dół i wybierz „Długość tabulatora” , który wolisz.

wprowadź opis zdjęcia tutaj

Powiedział Chołow
źródło
11

Możesz spróbować przejść do „Atom> Preferencje> Edytor” i ustawić Długość tabulacji na 4.

wprowadź opis zdjęcia tutaj

To jest dla Mac. W przypadku systemu Windows musisz znaleźć odpowiednie menu.

Craig
źródło
7

Dodanie tutaj odpowiedzi @Manbroski , która zadziałała dla mnie:

próbować Ctrl-Shift-P Editor: Toggle Soft Tabs

OscarRyz
źródło
6

Późnym przyjęciem, ale czystym sposobem na zrobienie tego dla każdego projektu, jest dodanie pliku .editorconfig do katalogu głównego projektu. Oszczędza Ci konieczności zmiany ustawień Atomu podczas pracy nad kilkoma projektami jednocześnie.

To jest przykład bardzo podstawowej konfiguracji, której obecnie używam. Działa dla Atom, ST itp.

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2
ConorLuddy
źródło
Prawie wyrzuciłem Atom całkowicie, dopóki tego nie zobaczyłem. Ustawienia config.cson wydają się absolutnie nic nie robić dla istniejących plików. Dzięki!
killthrush
3

Jest to wbudowane w rdzeń: Zobacz Settings ⇒ Tab Typei wybierz auto:

Po ustawieniu na „auto” edytor automatycznie wykrywa typ tabulacji na podstawie zawartości bufora (używa pierwszej wiodącej spacji w wierszu bez komentarza) lub używa wartości ustawienia Soft Tabs, jeśli automatyczne wykrywanie kończy się niepowodzeniem.

Możesz także zajrzeć do pakietu Auto Detect Indentation . Z dokumentów:

Automatycznie wykryj wcięcie otwartych plików. Przygląda się każdemu otwartemu plikowi i ustawia specyficzne dla pliku ustawienia kart (twarde / miękkie karty, długość tabulacji) na podstawie zawartości pliku, zamiast zawsze używać domyślnych ustawień edytora.

Możliwe, że atom skonfigurował użycie 4 spacji dla tabulatorów, ale otworzy projekt szyny, który domyślnie ma 2 spacje. Bez tego pakietu musiałbyś zmienić ustawienia tabstop na całym świecie, aby uniknąć niespójnych odstępów między wierszami w plikach.

jcuenod
źródło
Jeśli używasz „auto” i robi się to źle (w moim przypadku postanowiono użyć spacji, gdy chcę tabulatory, w tym konkretnym pliku), w jaki sposób (z szybkim menu lub naciśnięciem klawisza, nie zagłębiając się w ustawienia) zmieniasz zdanie? Nie sądzę, że automatyczne wykrywanie zakończyło się niepowodzeniem, po prostu źle to zrozumiałem. Nie wpisuje dla mnie twardej karty. Wszędzie przeprowadzałem wyszukiwanie i zamianę, ale nadal klawisz tabulacji wstawia 4 spacje.
Ed Randall,
Nie użyłbym tego, search-and-replaceużyłbym palety poleceń convert spaces to tabs(lub czegoś takiego). Myślę, że to działało dla mnie w przeszłości.
jcuenod
3

Właśnie miałem ten sam problem i żadna z powyższych sugestii nie zadziałała. W końcu spróbowałem odznaczyć „Atomowe miękkie karty” w menu Ustawienia edytora, które działało.

tparker
źródło
O! To właśnie to oznacza! Zastanawiałem się, dlaczego moje klawisze strzałek przeskakiwały spacje, kiedy nie było ich \tw aktach ...
Andrew
2

Jeśli używasz Babel, możesz również chcieć zaktualizować swój pakiet „Language Babel”. Dla mnie, mimo że ustawiłem Długość tabulacji na 2 w ustawieniach głównego edytora, to samo ustawienie w konfiguracji Language Babel zastępowało ją 4.

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

Upewnij się, że masz odpowiednią gramatykę, jest tam „Gramatyka JavaScript Babel ES6”, „Gramatyka języka-babel-rozszerzenie” oraz „Wyrażenie regularne”. Prawdopodobnie chcesz zaktualizować je wszystkie, aby były spójne.

Mike M.
źródło
2

Kontrola kart daje niezłą kontrolę w sposób podobny do opisanego w twoim pytaniu.

Również dla programistów JavaScript ładna jest długość tabulatora ESLint do używania konfiguracji ESLint.

Lub jeśli używasz .editorconfigdo definiowania reguł wcięcia specyficznych dla projektu, istnieje EditorConfig

Brett Zamir
źródło
1

Jeśli globalne ustawienia wcięcia tabulacji / spacji nie odpowiadają już Twoim potrzebom (np. Pracujesz ze starszymi kodami bazowymi o różnych formatach wcięcia i musisz szybko przełączać się między nimi, a automatyczne wykrywanie nie działa), możesz wypróbować tabulator -kontrola wtyczki, która powiela funkcjonalność menu na twoim zrzucie ekranu.

Ed Halferty
źródło
1

Kiedy automatyczne wykrywanie atomu pomogło beznadziejnie pomylić i odmówiło mi wpisania dosłownego znaku Tab, w końcu znalazłem rozszerzenie „Force-Tab” - co dało mi kontrolę. Chciałem zachować klawisz shift dla tabulacji, więc ustaw ctrl-tab, aby wstawić twardą kartę. W mojej mapie klawiszy dodałem:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'

Ed Randall
źródło
1

Jeśli używasz wersji 1.21.1:

  1. Kliknij Pakiety / Ustawienia Widok / Otwórz
  2. Wybierz „Edytor” na lewym panelu bocznym
  3. Przewiń w dół, aż zobaczysz „Długość zakładki”
  4. Edytuj wartość. Lubię ustawić na 4.

Teraz wystarczy zamknąć aktywny panel kart i gotowe.

Caiuby Freitas
źródło
0

Wszystkie najpopularniejsze odpowiedzi tutaj są świetnymi odpowiedziami i będą włączać spacje dla kart, ale we wszystkich brakuje jednej rzeczy. Jak zastosować spacje zamiast tabulatorów do istniejącego kodu.

Aby to zrobić, po prostu wybierz cały kod, który chcesz sformatować, a następnie przejdź do Edycja-> Linie-> Auto wcięcie, a wszystko naprawi.

Alternatywnie możesz po prostu wybrać cały kod, który chcesz sformatować, a następnie użyć Ctrl Shift P i wyszukać Auto wcięcie. Po prostu kliknij go w wynikach wyszukiwania, a wszystko naprawi.

ajpieri
źródło
0

Zmiana konfiguracji specyficznej dla języka

Zmieniłem domyślne ustawienia kart i nadal nie miało to wpływu podczas edycji moich plików, które były plikami Python. Nie zmieniło się również, gdy zmodyfikowałem ustawienie „*” w ~ / .atom / config.cson. Nie mam dobrego wytłumaczenia dla żadnego z nich.

Jednak gdy dodałem następujące elementy do pliku config.cson, mogłem zmienić tabulację w moich plikach Python na 2 spacje:

'.source.python':
  editor:
    tabLength: 2

Dzięki temu zasobowi dla rozwiązania: Klawisz Tab nie szanuje długości tabulatora

MK Hunter
źródło