2012-02-27 20 views
414

Czy istnieje sposób na wymuszenie wysublimowanego tekstu 2, aby zawsze wciskać dwie spacje na zakładkę podczas pracy z plikami Ruby?Jak wymusić wysublimowany tekst, aby wciskać dwie spacje na tabulator?

Wiem, że wcięcie można ustawić w opcji menu view -> indentation, ale nie jest ono wyświetlane. Za każdym razem, gdy otworzę nowy plik i kliknę kartę, wróci on do czterech spacji.

+0

Sublime jest nieco inny/dziwny domyślnie. Chociaż może on zapisać plik z wieloma przestrzeniami, edytor sam usunie obie spacje, jeśli utożsamia je jako wcięcia. – William

Odpowiedz

749

Jeśli chcesz go dla wszystkie pliki, przejdź do Preferences -> Settings - Default/User. Jednak, jak wskazuje kilka uwag poniżej, ustawienia specyficzne dla składni mogą ograniczać je tylko do wybranych języków.

Aby ograniczyć tę konfigurację do plików Ruby, najpierw otwórz plik Ruby w edytorze, a następnie przejdź do Preferences -> Settings -> More -> Syntax Specific -> User. To powinno otworzyć okno ustawień nazwie Ruby.sublime-settings

Zapisz te ustawienia:

{ 
    "tab_size": 2, 
    "translate_tabs_to_spaces": true, 
    "detect_indentation": false 
} 

Powtórz dla innych typów składni otwierając plik tego typu i wracając do preferencji otworzyć plik poprawne preferencje że składnia.

Edytowałem to, aby uwzględnić wiersz "detect_indentation" dla żądań w komentarzach; Poprzednio użyłem Default/User, aby ustawić rozmiar tabulatora i nie potrzebowałem wykrywania tabulatora, ale czy to ze względu na globalną konfigurację, czy z powodu tego, że rzadko otwierałem pliki z kartami, nie wiem.

Ponowne uruchomienie nie powinno być konieczne, chociaż w niektórych przypadkach może tak być.

+11

Od wersji 2181. Możesz skonfigurować ustawienia z Preferencje -> Ustawienia - Domyślnie/Użytkownik. Najlepiej umieścić go w ustawieniach użytkownika, ponieważ jest to zamierzone podejście. –

+19

@KevinJalbert (i DGM) Właściwie powinien umieścić to w specyficznych ustawieniach składni, więc wpływa tylko na pliki Ruby. –

+4

Zwróć uwagę na wartość ** true ** i * not * "true". – earthmeLon

156

Jeśli chcesz wymusić wybrane ustawienie tabulatora, ignorując to, co prawdopodobnie już dzieje się w pliku, to powinieneś włączyć detect_indentation w swojej konfiguracji (ustawienia użytkownika lub ustawienia składni, w zależności od tego, czy chcesz je globalnie, czy też nie. per-filetype):

{ 
    "tab_size": 2, 
    "translate_tabs_to_spaces": true, 
    "detect_indentation": false 
} 
+0

Dzięki za cynk! Bez 'detector_indentation' zostałem bardzo dziwnie zachowany (wykryłem niepoprawne wcięcie i użyłem tego zamiast tego, co określiłem w moich ustawieniach). – JacobEvelyn

+0

Wykonanie tego w domyślnych ustawieniach zadziałało dla mnie. Sprawdź, czy to ustawienie już istnieje. Jeśli go dodasz, a później zostanie zadeklarowany jako prawdziwy, pozostanie ustawiony jako prawdziwy. – David

+2

Należy pamiętać, że zmiany w ustawieniach domyślnych zostaną zastąpione przez aktualizacje Sublime Text itp. Zmiany w ustawieniach użytkownika nie zostaną zastąpione. –

72

można również zrobić to z linku tekstowego w dolnym pasku Sublime Text 2 (po prawej stronie), który mówi „Zakładka Rozmiar 4” domyślnie, kliknij to i okna wyświetla opcje ustawiania wielkości tabulatora od 1 spacji do 8 spacji i zawiera opcje konwersji zakładek na spacje i spacje na tabulatory.

wygląda następująco:

Tab Options in Sublime Text 2

+3

Świetna wskazówka, ale czy wiesz, że stanie się to lepkie ustawienie? Na przykład zmiana wcięcia z górnego paska menu dotyczy tylko bieżącego otwartego pliku, a nie innych, co było moim pierwotnym problemem. – Mohamad

+5

To ** nie działa **. To dobra wskazówka, ale nie jest lepka: zamknięcie i ponowne otwarcie pliku (lub otwarcie innego pliku) przywraca wcięcie do czterech pól. – Mohamad

+1

Tak, to nie jest lepkie, to za plik. Musisz przejść do ustawień Sublime Text, aby ustawić domyślne ustawienia dla kart/spacji. – Taskism

23

mogę zaproponować EditorConfig? Istnieje extension do automatycznego ładowania i stosowania pliku .editorconfig. Następnie po prostu utwórz go w katalogu głównym projektu.

.editorconfig

[*.rb] 
indent_style = tab 
indent_size = 2 

ten sposób ustawienia są specyficzne dla projektu i plików specyficzne jeśli stosują różne style dla każdego projektu lub języka.


Oto jak wygląda mój własny .editorconfig.

# editorconfig.org 
root = true 

[*] 
indent_style = space 
indent_size = 2 
end_of_line = lf 
charset = utf-8 
trim_trailing_whitespace = true 
insert_final_newline = true 
+2

Nie chciałem zrobić z tego globalnej zmiany. To było jedyne rozwiązanie, które działało.Zrobiłem kilka badań w EditorConfig i wygląda to bardzo dobrze dla IDE, które go wspierają. –

+1

Tak się złożyło, że miałem już plik .editorconfig w moim projekcie i nawet o tym nie wiedziałem. (kątowe-cli generuje jeden) – uglycoyote

0

Podążyłem za poprzednimi odpowiedziami, w tym dodaniem linii detect_indentation, a moje karty wciąż były pięcioma spacjami. Wtedy zdałem sobie sprawę, że wybranie Preferences -> Settings -> More -> Syntax Specific -> User z pliku ruby ​​otworzyło dla mnie Ruby on Rails.sublime-settings, a nie Ruby.sublime-settings.

Zmieniono nazwę pliku Ruby on Rails.sublime-settings na Ruby.sublime-settings. W końcu działały dwie spacje! Poszedłem dalej i wprowadziłem te same ustawienia w Ruby on Rails.sublime-settings, żeby się upewnić.

3

Używam pakietu .

Install Package ->Stupid Indent

Preferences ->Package Settings ->Stupid Indent ->Setting-Users

Ustawienia kopiowania (z Ruby części) do.

+0

tak to jest to, czego potrzebuję: D –

Powiązane problemy