Come posso forzare Sublime Text a indentare due spazi per scheda?


504

C'è un modo per forzare Sublime Text 2 a indentare sempre due spazi per scheda quando si lavora con i file Ruby?

So che il rientro può essere impostato view -> indentationnell'opzione di menu, ma non si attacca. Ogni volta che apro un nuovo file e premo la scheda, torna a quattro spazi.


Sublime è leggermente diverso / strano per impostazione predefinita. Sebbene possa salvare il file con più spazi, l'editor elimina automaticamente entrambi gli spazi se lo identifica come rientro.
Lime,

Risposte:


899

Se lo desideri per tutti i file, vai a Preferences -> Settings - Default/User. Ma come indicato da diversi commenti di seguito, le impostazioni specifiche di sintassi possono limitarlo solo alle lingue scelte.

Per limitare questa configurazione ai file Ruby, apri prima un file Ruby nell'editor, quindi vai a Preferences -> Settings - Syntax Specific. Questo dovrebbe aprire una finestra delle impostazioni denominataRuby.sublime-settings

Salva queste impostazioni:

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

Ripetere l'operazione per qualsiasi altro tipo di sintassi aprendo un file di quel tipo e tornando alle preferenze per aprire il file delle preferenze corretto per quella sintassi.

Ho modificato questo per includere la riga "detect_indentation" per le richieste nei commenti; In precedenza ho utilizzato Predefinito / Utente per impostare le dimensioni della mia scheda e non ho avuto bisogno del rilevamento delle schede, ma non è noto se ciò sia dovuto alla configurazione globale o al fatto che raramente ho aperto file con schede.

Il riavvio non dovrebbe essere necessario, sebbene in alcuni casi possa esserlo.


11
Dalla build 2181. Puoi configurare le impostazioni da Preferenze -> Impostazioni - Predefinito / Utente. Meglio metterlo nelle impostazioni utente in quanto questo è l'approccio previsto.
Kevin Jalbert,

20
@KevinJalbert (e DGM) In realtà dovrebbe metterlo nelle impostazioni specifiche della sintassi, quindi influisce solo sui file Ruby.
Paul Hoffer,

6
Si noti che il valore è vero e non "vero".
earthmeLon

1
Ciò è particolarmente utile poiché la documentazione del sito Web di Sublime Text suggerisce erroneamente l'utilizzo di camelCase invece di caratteri di sottolineatura nei tasti di impostazione ... ancora. ( sublimetext.com/docs/indentation )
Eric Goldberg

@EricGoldberg - Non sono sicuro di come sei arrivato a quella pagina di documentazione, ma se vai su sublimetext.com > Supporto e in Documentazione, fai clic sul link Sublime Text 2, verrai portato su sublimetext.com/docs/2 - da lì, puoi trovare i documenti sul rientro e i tasti di impostazione usano correttamente il trattino basso: sublimetext.com/docs/2/indentation.html
jbyrd

166

Se si desidera forzare l'impostazione della scheda prescelta, ignorando ciò che probabilmente sta già succedendo nel file, è necessario includere detect_indentationnella configurazione (le impostazioni dell'utente o le impostazioni specifiche della sintassi, a seconda che si desideri globale o per tipo di file):

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

Grazie per il consiglio! Senza detect_indentationessere spento stavo ottenendo un comportamento molto strano (stava rilevando il rientro in modo errato e usandolo al posto di quello che avevo specificato nelle mie impostazioni).
JacobEvelyn,

Farlo con le impostazioni predefinite ha funzionato per me. Assicurati di vedere se l'impostazione esiste già. Se lo aggiungi ed è dichiarato successivamente vero, rimarrà impostato come vero.
David

3
Tenere presente che le modifiche alle Impostazioni predefinite verranno sovrascritte da aggiornamenti di Sublime Text, ecc. Le modifiche alle Impostazioni utente non verranno sovrascritte.
James Chevalier,

6
GRAZIE!! "detect_indentation":falseè fondamentale altrimenti le altre impostazioni vengono ignorate. finalmente!
zzzeek,

È un buon punto ma il tuo esempio è indentato in modo inappropriato ;-)
snow6oy

88

Puoi anche farlo con il collegamento di testo nella barra in basso di Sublime Text 2 (sul lato destro) che dice "Dimensione scheda 4" per impostazione predefinita, fai clic su quello e viene visualizzata una finestra con le opzioni per impostare la dimensione della scheda da 1 spazio fino a 8 spazi e include opzioni per convertire le schede in spazi e gli spazi in schede.

Somiglia a questo:

Opzioni della scheda in Sublime Text 2


3
Ottimo consiglio, ma sai se diventa un ambiente appiccicoso? Ad esempio, la modifica del rientro dalla barra dei menu in alto si applica solo al file aperto corrente e non ad altri, che era il mio problema originale.
Mohamad,

5
Questo non funziona . È un buon consiglio, ma non è appiccicoso: la chiusura e la riapertura del file (o l'apertura di un altro file) ripristina il rientro in quattro spazi.
Mohamad,

1
Sì, non è appiccicoso, è per file. Devi andare nelle impostazioni di Sublime Text per configurare le impostazioni predefinite per schede / spazi.
Taskismo,

Questo ha risolto il mio problema in Sublime Text 3. Grazie!
Adrian,

29

Posso suggerire EditorConfig ? Esiste un'estensione per caricare automaticamente e applicare il .editorconfigfile. Quindi creane uno nella radice del tuo progetto.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

In questo modo, le impostazioni sono specifiche del progetto e specifiche del file se si utilizzano stili diversi per ciascun progetto o lingua.


Ecco .editorconfigcome appare il mio .

# 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
Non volevo renderlo un cambiamento globale. Quindi questa è stata l'unica soluzione che ha funzionato. Ho fatto alcune ricerche su EditorConfig e sembra molto bello per gli IDE che lo supportano.
Neil Monroe,

1
È successo che avevo già un .editorconfig nel mio progetto e non lo sapevo nemmeno. (
angular

9

Uso il pacchetto Stupid Indent .

Install Package -> Stupid Indent

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

Copia le impostazioni (della Rubyparte) in.

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}

Sì, questo è quello di cui ho bisogno: D
Dragutescu Alexandru,

Eccezionale. Grazie mille :)
Krithika Gopalakrisnan,

ATTENZIONE . Le impostazioni predefinite e personalizzate Stentid Indent impongono la sovrascrittura delle impostazioni di Sublime Text e EditorConfig . Grazie.
Саша Черных,

1

Ho seguito le risposte precedenti, inclusa l'aggiunta della riga detect_indentation, e le mie schede erano ancora cinque spazi. Poi mi sono reso conto che selezionare Preferences -> Settings -> More -> Syntax Specific -> Userda un file ruby ​​non si stava aprendo Ruby on Rails.sublime-settingsper me Ruby.sublime-settings.

Ho rinominato il mio Ruby on Rails.sublime-settingsfile in Ruby.sublime-settings. Finalmente le schede a due spazi funzionavano! Sono andato avanti e ho inserito anche le stesse impostazioni Ruby on Rails.sublime-settings, per essere sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.