Come sostituire quattro spazi con una scheda in Sublime Text 2?


310

inserisci qui la descrizione dell'immagine

Voglio sostituire tutti i "quattro spazi" scritti da un altro editor di testo con schede. Come posso farlo?

Risposte:


639

Nell'angolo in basso a destra sulla barra di stato, fai clic su Spaces: N(o Tab Width: N, dove N è un numero intero), assicurati che sia indicato Tab Width: 4per la conversione da quattro spazi, quindi seleziona Convert Indentation to Tabsdal menu contestuale che verrà visualizzato dal clic iniziale.

Allo stesso modo, se si desidera fare il contrario, fare clic sul Spaceso Tab Widthsulla barra di stato e selezionare dallo stesso menu.

inserisci qui la descrizione dell'immagineinserisci qui la descrizione dell'immagine


3
Mentre tutte le risposte sono corrette, questa è la più semplice! Grazie
Mohsen

1
Devo ammettere; è :) Non ho mai usato i menu di scelta rapida della barra di stato, suppongo che ho sempre pensato che fossero indicatori statici.
Ekin Koc

2
Non sono così distinti come forse dovrebbero essere, ho un paio di bug che devo presentare per i sublimi no show stopper. Redattore eccellente.
ncremins,

Puoi anche utilizzare le impostazioni in un file di progetto sublime se desideri che l'editor ricordi questa impostazione per tutti i file di un progetto
Michael,

1
@phreakhead Non sono sicuro di aver compreso appieno le tue necessità (pensi di aprire una nuova domanda?), ma se hai tradotto_tabs_to_spazi impostato su falso, quando digiti (nuovo testo) e premi tab, sarà un carattere di tabulazione . se hai un file che ha già alcuni rientri come 4 spazi (anziché schede) puoi usare l'opzione nella parte inferiore del menu nella schermata per convertire il rientro in schede.
Michael,

106

Seleziona tutto, quindi:

Windows / Linux:

Ctrl+ Shift+p

quindi digitare "rientro"


Mac:

Shift+ Command+p

quindi digitare "rientro"


Questo è il più veloce mantenendo le mani sulla tastiera. +1
eduncan911

Incredibile ... questo ti dà la possibilità di "Reindent Lines" da file come Bootstrap che include un rientro di 2 righe
Shina,

Penso che questo non faccia esattamente quello che sta chiedendo. Anche questo reindirizza le linee in modo che cambi effettivamente il rientro, e sta solo chiedendo di convertire gli spazi in schede. Comunque è una buona risposta, ma in alcuni casi può incasinare la tua rientranza (ad esempio, pensa ai template con rientro della lama).
Sergi Ramón,

Questo è meglio dal momento che funziona alla grande con il codice incollato.
SaurabhM,

45

Per configurare Sublime in modo da utilizzare sempre le schede, prova ad aggiungere quanto segue a preferenze-> impostazioni-utente:

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

Maggiori informazioni qui: http://www.sublimetext.com/docs/2/indentation.html


5
Questa è la risposta corretta, perché anche dopo aver selezionato "Rientra utilizzando spazi", tale opzione verrà ripristinata al riavvio.
mvd,

1
OP ha chiesto l'inverso. Stranamente, non esiste un'opzione per. Tab odia.
phreakhead,

26

Nel menu principale;

View -> Indentation -> Convert Indentation to Tabs / Spaces


9

Esegui una regex "Cerca" \t(barra rovesciata, una scheda) e sostituisci con quattro spazi.

Il menu principale o il menu di spaziatura della barra di stato in basso a destra fanno la stessa cosa, con meno lavoro.


3
Questo è l'inverso di ciò che il poster chiedeva
Max Nanasy,

3
@MaxNanasy Così è. Immagino che la mia antipatia per i personaggi delle schede sia così profonda che è subconscio.
Dave Newton,

2
Questa risposta è completamente irrilevante per la domanda che viene posta. Ti consigliamo di cambiarlo con la risposta corretta o di eliminare in altro modo la tua risposta.
Randy the Dev,

2
@AndrewDunn "Completamente"? Veramente? In che modo l'inverso di qualcosa potrebbe essere "completamente" non correlato? Per definizione è correlato e la correzione è ovvia. Se solo avessimo la possibilità di modificare le risposte.
Dave Newton,

6

creare una combinazione di tasti per il modo più rapido

{ "keys": ["super+alt+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }

aggiungilo a Preferenze> Key Bindings (utente) quando premi super+ alt+ tconvertirà gli spazi in tab


2

È possibile aggiungere una semplice associazione dei tasti:

Preferenza> Key binding - user:

[
    { "keys": ["super+l"], "command": "reindent"},
]

Ora seleziona la linea o il file e premi: comando + l


0

Se si desidera applicare questa modifica in modo ricorsivo a tutti i file in un directoy, è possibile utilizzare il modale Trova> Trova nei file ...

Trova in File modale

Modifica Non l'ho evidenziato nell'immagine, ma devi fare clic sul pulsante. * A sinistra per far interpretare Sublime il campo Trova come regex / Modifica

Modifica 2 Ho trascurato di aggiungere un inizio di ancoraggio stringa al regex. Lo sto correggendo di seguito e aggiornerò l'immagine quando ne avrò la possibilità / Modifica

La regex nel campo Trova ^[^\S\t\n\r]{4}corrisponderà ai caratteri dello spazio bianco in gruppi di 4 (esclusi i caratteri di tabulazione e di nuova riga). Il campo di sostituzione \tindica che si desidera sostituirli con le schede.

Se fai clic sul pulsante a destra del campo Dove, vedrai le opzioni che ti aiuteranno a indirizzare la tua ricerca, sostituendola. Add FolderL'opzione ti consentirà di selezionare la cartella da cui desideri effettuare una ricerca ricorsiva. L' Add Include Filteropzione ti consentirà di limitare la ricerca ai file di una determinata estensione.

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.