2013-02-08 21 views

risposta

478

Ecco un trucco in Sublime Text 2 o 3 per convertire la spaziatura di rientro in un documento.

TL; DR:

Conversione da 2 posti a 4 posti:

garantire larghezza scheda è impostato su 2. Convertire il vostro rientro 2-spazio per le schede, passare alla larghezza scheda 4, e quindi riconvertire il rientro in spazi.

La descrizione dettagliata:

Vai a:

View -> Indentation

Dovrebbe essere visualizzato:

  • Indent using spaces [x]
  • Tab width: 2

Seleziona:

  • Convert Indentation to Tabs

quindi selezionare:

  • Tab width: 4
  • Convert Indentation to Spaces

Fatto.

+4

Grazie! : D Salvato un sacco di tempo. Nota. Puoi anche fare "trova: spazio-spazio => seleziona tutto => scheda" – Automatico

+10

Ho creato una macro per sublime che fa tutto questo per te https://gist.github.com/joshmfrankel/5707020. Divertiti :-) –

+1

Funziona anche per ST3. – jolt

9

ho trovato, nella mia mente, una soluzione più semplice rispetto Magne:

Su Mac:

"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after. 

su Windows o altre piattaforme cambiano cmd+f e alt+enter con qualunque sia il vostro find e select all tasti di scelta rapida sono.

Nota: questo metodo è soggetto a "errori" se si dispone di più di uno spazio nel codice. È quindi meno sicuro del metodo di Magne, ma è più veloce (almeno per me).

+0

Non ho potuto farlo funzionare come tale, ma ho usato il principio e ho appena fatto un trova e sostituisci (cmd-option-F su Mac) e sostituisce "" (4 spazi) con "" (2 spazi). E ha funzionato! – evanbikes

+0

Ho trovato un altro modo per farlo ora, ma è specifico per la lingua. Se si dispone di un plug-in di formattazione come "RubyFormat", è possibile semplicemente impostare la dimensione della scheda desiderata e quindi eseguire una riformattazione del codice. Nel caso di 'RubyFormat' sarebbe' cmd + shift + R'. – Automatico

5

Se trovate cercare e sostituire più veloce da usare, è possibile utilizzare una regex sostituire in questo modo:

Find (regex): (^|\G) {2} (Invece di "{2}"<space>{2} si può solo scrivere due spazi Utilizzato qui per chiarezza.)

Sostituire con 4 spazi, o qualsiasi altra cosa, come \t.

69

in realtà ho trovato è meglio per la mia sanità mentale di avere le preferenze degli utenti da definire in questo modo:

"translate_tabs_to_spaces": true, 
"tab_size": 2, 
"indent_to_bracket": true, 
"detect_indentation": false 

Il detect_indentation: false è particolarmente importante, in quanto costringe Sublime per onorare queste impostazioni in ogni file, al contrario di le impostazioni View -> Indentation.

Se si desidera ottenere fantasia, è anche possibile definire una scorciatoia da tastiera per automaticamente ri-trattino il codice (YMMV) incollando il seguente in Sublime -> Preferences -> Key Binding - User:

[ 
    { "keys": ["ctrl+i"], "command": "reindent" } 
] 

e di visualizzare gli spazi:

"indent_guide_options": ["draw_active"], 
"trim_trailing_white_space_on_save": true, 
"ensure_newline_at_eof_on_save": true, 
"draw_white_space": "all", 
"rulers": [120], 
7

Mentre molti dei suggerimenti funzionano durante la conversione di 2 -> 4 spazio. Mi sono imbattuto in alcuni problemi durante la conversione di 4 -> 2.

Ecco quello che ho finito per usare:

Sublime Text 3/Packages/User/to-2.sublime-macro

[ 
    { "args": null, "command": "select_all" }, 
    { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" }, 
    { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" }, 
    { "args": { "set_translate_tabs": true }, "command": "expand_tabs" }, 
    { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" } 
] 
5

ho scritto un plugin per esso. Puoi trovarlo here o cercare "ReIndent" nel controllo del pacchetto. Principalmente fa la stessa cosa che ha scritto Kyle Finley, ma in modo conveniente con scorciatoie per la conversione tra 2 e 4 e viceversa.

+0

Questo è grandioso, grazie! – Zach

2

si deve aggiungere il codice al tuo combinazioni di tasti personalizzate:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} } 

premendo CTRL + F12, sarà reindent il file a una dimensione di scheda 4. Se si desidera un formato scheda diversa, è basta cambiare il numero "valore". Il formato è un semplice json.

+0

Mi piace grazie! Ho aggiunto 2 e 4 in questo modo: '{" keys ": [" ctrl + f10 "]," command ":" set_setting "," args ": {" setting ":" translate_tabs_to_spaces "," value ": 2}} , {"chiavi": ["ctrl + f11"], "comando": "set_setting", "args": {"impostazione": "tab_size", "valore": 2}}, {"chiavi": ["ctrl + f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4}}, ' – JREAM

Problemi correlati