Jak zmusić Sublime Text do wcięcia dwóch spacji na kartę?

Czy istnieje sposób na zmuszenie Sublime Text 2 do zawsze wcięcia dwóch spacji na kartę podczas pracy z plikami Ruby?

Wiem, że wcięcia można ustawić pod opcją menu view -> indentation, ale się nie przykleja. Za każdym razem, gdy otwieram nowy plik i klikam kartę, powraca ona z powrotem do czterech spacji.

Author: Mohamad, 2012-02-28

6 answers

Jeśli chcesz go dla wszystkich plików, przejdź do Preferences -> Settings - Default/User. Ale jak wskazuje kilka komentarzy poniżej, ustawienia specyficzne dla składni mogą ograniczyć ją 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 - Syntax Specific. To powinno otworzyć okno ustawień o 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, aby otworzyć popraw plik preferencji dla tej składni.

edytowałem to, aby uwzględnić linię "detect_indentation" dla żądań w komentarzach; wcześniej używałem domyślnego / użytkownika, aby ustawić mój rozmiar karty, i nie potrzebowałem wykrywania kart, ale czy to ze względu na globalną konfigurację, czy ze względu na fakt, że rzadko otwierałem pliki z kartami, Nie wiem.

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

 806
Author: DGM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-06 06:24:47

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

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}
 159
Author: James Chevalier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-05 20:41:12

Możesz to zrobić również za pomocą linku tekstowego na dolnym pasku Sublime Text 2 (po prawej stronie), który domyślnie mówi "Rozmiar Karty 4", Kliknij go, a pojawi się okno z opcjami ustawienia rozmiaru karty od 1 spacji aż do 8 spacji i zawiera opcje konwersji tabulatorów na spacje i spacje na karty.

Wygląda tak:

Opcje karty w Sublime Text 2

 77
Author: Taskism,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-26 14:07:03

Czy Mogę zasugerować EditorConfig ? Istnieje rozszerzenie do automatycznego ładowania i zastosowania pliku .editorconfig. Następnie po prostu utwórz go w katalogu głównym projektu.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

W ten sposób Twoje ustawienia są specyficzne dla projektu i specyficzne dla pliku, jeśli używasz różnych stylów dla każdego projektu lub języka.


Oto jak wygląda mój własny.
# 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
 27
Author: Nate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-28 12:30:04

Używam pakietu Stupid Indent .

Install Package -> Stupid Indent

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

Skopiuj ustawienia (z Ruby Części) do.

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}
 7
Author: Wentao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-27 15:06:39

Podążałem za poprzednimi odpowiedziami, w tym dodałem linię detect_indentation, a moje tabulatory były nadal pięcioma spacjami. Potem zdałem sobie sprawę, że wybranie Preferences -> Settings -> More -> Syntax Specific -> User z pliku ruby otwierało Ruby on Rails.sublime-settings dla mnie, a nie Ruby.sublime-settings.

Zmieniłem nazwę pliku Ruby on Rails.sublime-settings na Ruby.sublime-settings. W końcu dwie spacje zadziałały! Poszedłem dalej i umieściłem te same ustawienia w Ruby on Rails.sublime-settings, tak dla pewności.

 1
Author: Tim Koelkebeck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 22:53:22