Jak zamienić cztery spacje na tabulatory w Sublime Text 2?


310

wprowadź opis zdjęcia tutaj

Chcę zastąpić wszystkie „cztery spacje” napisane przez inny edytor tekstu tabulatorami. Jak mogę to zrobić?

Odpowiedzi:


639

W prawym dolnym rogu paska stanu kliknij Spaces: N(lub Tab Width: N, gdzie N jest liczbą całkowitą), upewnij się, że mówi Tab Width: 4o konwersji z czterech spacji, a następnie wybierz Convert Indentation to Tabsz menu kontekstowego, które pojawi się od pierwszego kliknięcia.

Podobnie, jeśli chcesz zrobić odwrotnie, kliknij tekst Spaceslub Tab Widthna pasku stanu i wybierz z tego samego menu.

wprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutaj


3
Chociaż wszystkie odpowiedzi są poprawne, ta jest najłatwiejsza! Dzięki
Mohsen

1
Muszę przyznać; tak jest :) Nigdy nie korzystałem z menu kontekstowych paska stanu, chyba zawsze myślałem, że to wskaźniki statyczne.
Ekin Koc

2
Nie są tak wyróżniające się, jak być może powinny, mam kilka błędów, które muszę zgłosić, aby wysublimować brak przystanków. Doskonały redaktor.
ncremins

Możesz także skorzystać z ustawień w pliku wzniosłego projektu, jeśli chcesz, aby edytor zapamiętał to ustawienie dla wszystkich plików w projekcie
Michael

1
@ phreakhead Nie jestem pewien, czy w pełni rozumiem twoją potrzebę (rozważ otworzenie nowego pytania?), ale jeśli masz translate_tabs_to_spaces ustawione na false, to kiedy piszesz (nowy tekst) i naciskasz tab, będzie to znak tabulatora . jeśli masz plik, który ma już niektóre wcięcia jako 4 spacje (zamiast tabulatorów), możesz użyć opcji u dołu menu w zrzucie ekranu, aby przekonwertować wcięcia na tabulatory.
Michael

106

Wybierz wszystko, a następnie:

Windows / Linux:

Ctrl+ Shift+p

następnie wpisz „wcięcie”


Prochowiec:

Shift+ Command+p

następnie wpisz „wcięcie”


Jest to najszybszy, trzymając ręce na klawiaturze. +1
eduncan911

Niesamowite ... daje to opcję „Reindent Lines” z plików takich jak Bootstrap, który ma wcięcie 2
liniowe

Myślę, że to nie robi dokładnie tego, o co prosi. Powoduje to również ponowne przewinięcie wierszy, więc faktycznie zmienia wcięcie, a on pyta tylko o przekształcenie spacji w tabulatory. W każdym razie jest to dobra odpowiedź, ale w niektórych przypadkach może zepsuć wcięcie (na przykład szablony z wcięciem ostrza).
Sergi Ramón

Jest to lepsze, ponieważ działa świetnie z wklejonym kodem.
SaurabhM

45

Aby skonfigurować Sublime tak, aby zawsze używał kart, spróbuj dodać następujące ustawienia do preferencji-> ustawienia-użytkownik:

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

Więcej informacji tutaj: http://www.sublimetext.com/docs/2/indentation.html


5
To poprawna odpowiedź, ponieważ nawet po wybraniu opcji „Wcięcie za pomocą spacji” ta opcja zostanie zresetowana przy ponownym uruchomieniu.
mvd

1
OP poprosił o odwrotność. Co dziwne, nie ma opcji. Nienawidzę kart.
phreakhead

26

W menu głównym;

View -> Indentation -> Convert Indentation to Tabs / Spaces


9

Wykonaj wyrażenie „Szukaj” wyrażenia regularnego \t(odwrotny ukośnik-t, tabulator) i zamień na cztery spacje.

Albo menu główne, albo menu odstępów na pasku stanu po prawej stronie robi to samo, mniej pracując.


3
To jest odwrotność tego, o co pytał plakat
Max Nanasy,

3
@MaxNanasy Tak to jest. Wydaje mi się, że moja niechęć do znaków tabulatora jest tak głęboka, że ​​podświadomość.
Dave Newton

2
Ta odpowiedź jest całkowicie nieistotna dla zadawanego pytania. Rozważ zmianę na prawidłową odpowiedź lub usunięcie odpowiedzi w inny sposób.
Randy the Dev,

2
@AndrewDunn „Całkowicie”? Naprawdę? Jak odwrotność czegoś może być „całkowicie” niezwiązana? Z definicji jest to powiązane, a poprawka jest oczywista. Gdybyśmy tylko mieli możliwość edytowania odpowiedzi.
Dave Newton

6

utwórz skrót klawiszowy w najszybszy sposób

{ "keys": ["super+alt+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }

dodaj to do Preferencje> Wiązania klawiszy (użytkownik) po naciśnięciu super+ alt+ tspowoduje to zamianę spacji na tabulatory


2

Możesz dodać łatwe przypisywanie klawiszy:

Preferencje> Powiązanie klawiszy - użytkownik:

[
    { "keys": ["super+l"], "command": "reindent"},
]

Teraz wybierz linię lub plik i naciśnij: Command + l


0

Jeśli chcesz rekurencyjnie zastosować tę zmianę do wszystkich plików w directoy, możesz użyć modalu Znajdź> Znajdź w plikach ...

Znajdź w modalne Pliki

Edycja Nie wyróżniłem go na obrazie, ale musisz kliknąć przycisk. * Po lewej stronie, aby Sublime zinterpretował pole Znajdź jako wyrażenie regularne / Edytuj

Edycja 2 Zaniedbałem dodanie początku wyrażenia zakotwiczenia do wyrażenia regularnego. Poprawiam to poniżej i zaktualizuję obraz, gdy otrzymam szansę / edytuj

Wyrażenie regularne w polu Znajdź ^[^\S\t\n\r]{4}będzie pasować do białych znaków w grupach po 4 (z wyłączeniem tabulatorów i znaków nowej linii). Pole zamiany \twskazuje, że chcesz je zastąpić tabulatorami.

Jeśli klikniesz przycisk po prawej stronie pola Gdzie, zobaczysz opcje, które pomogą Ci ukierunkować wyszukiwanie, zamień. Add Folderopcja pozwoli ci wybrać folder, z którego chcesz rekurencyjnie wyszukiwać. Ta Add Include Filteropcja pozwoli ci ograniczyć wyszukiwanie do plików o określonym rozszerzeniu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.