Come correggere / convertire il rientro dello spazio nel testo sublime?

Esempio: se ho un documento con 2 indentazione di spazio e voglio che abbia 4 indentazione di spazio, come posso convertirlo automaticamente usando l’editor di testo sublime?

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

TL; DR:

Conversione da 2 spazi a 4 spazi:

Assicurati che la larghezza della scheda sia impostata su 2. Converti i rientri a 2 spazi in tabs, passa alla larghezza 4 della scheda e quindi converti nuovamente il rientro in spazi.

La descrizione dettagliata:

Vai a:

View -> Indentation

Dovrebbe essere letto:

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

Selezionare:

  • Convert Indentation to Tabs

Quindi selezionare:

  • Tab width: 4
  • Convert Indentation to Spaces

Fatto.

In realtà ho scoperto che è meglio per il mio equilibrio avere le preferenze dell’utente come definite 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 ad onorare queste impostazioni in ogni file, al contrario delle impostazioni View -> Indentation .

Se vuoi essere elegante, puoi anche definire una scorciatoia da tastiera per ri-indentare automaticamente il tuo codice (YMMV) incollando quanto segue in Sublime -> Preferences -> Key Binding - User :

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

e per visualizzare lo spazio bianco:

 "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], 

Ho trovato, nella mia mente, una soluzione più semplice di 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 piattaforms cambia cmd+f e alt+enter qualsiasi cosa find e select all tasti di scelta rapida.

Nota: questo metodo è sobject 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).

Mentre molti dei suggerimenti funzionano durante la conversione di 2 -> 4 spazio. Ho incontrato alcuni problemi durante la conversione di 4 -> 2.

Ecco cosa 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" } ] 

Se trovi la ricerca e la sostituzione più veloce da usare, potresti usare una regex replace in questo modo:

Trova (regex): (^|\G) {2} (Invece di “{2}” {2} puoi semplicemente scrivere due spazi. Usato qui per chiarezza.)

Sostituisci con 4 spazi, o quello che vuoi, come \t .

Ho scritto un plugin per questo. Puoi trovarlo qui 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.

Devi aggiungere questo codice ai tuoi binding di tasti personalizzati:

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

premendo ctrl + f12, il file verrà reindirizzato a una dimensione di tabulazione di 4. se si desidera una dimensione di tabulazione diversa, sarà sufficiente modificare il numero di “valore”. Il formato è un semplice json.

La cosa più facile che ho fatto è stata,

ha cambiato la mia indentazione in tab

e ha risolto il mio problema.

Puoi fare lo stesso,

agli spazi

così come per le tue necessità.

Citato l’istantanea dello stesso.

inserisci la descrizione dell'immagine qui