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ć?

Mohsen
źródło

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

ncremins
źródło
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”

Projektant stron internetowych
źródło
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

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

Ekin Koc
źródło
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.

Dave Newton
źródło
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

Ibrahim Benzer
źródło
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

star18bit
źródło
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.

Bobby A.
źródło