C'è un modo per svuotare automaticamente tutto nel tuo file sorgente usando un comando? [chiuso]

10

E poi per ri-indent automaticamente dopo? Ho provato a copiare il codice da uno schermo di terminale all'altro, ma la tabulazione è stata incasinata.

Non sapevo come chiamare questa funzionalità, quindi è stato difficile trovarlo su google (che in genere riportava le cose relative a come impostare la dimensione della scheda, che non era quello che cercavo sfortunatamente).

    
posta Dark Templar 23.09.2011 - 01:41
fonte

3 risposte

8

Vim ha un comando retab che ti permette di tabificare o disassociare il tuo documento. Usa impostazioni come tabstop e expandtab . Quindi, se vuoi sostituire le schede con spazi, puoi fare quanto segue:

:%retab

Vedi la documentazione di retab per i dettagli completi.

Caveat Emptor : sostituisce anche le schede NOT all'inizio di una riga. Pertanto, se si utilizzano schede rigide nel mezzo di stringhe, verranno sostituiti anche.

    
risposta data 23.09.2011 - 02:01
fonte
5

Per espandere @ la risposta di Kaleb (non ho ancora la rappresentante da commentare), prima di eseguire il comando retab, dovrai :set expandtab (set et) . Altrimenti il retab non sostituirà le schede con spazi.

In aggiunta, potresti voler specificare i tabstop. Spesso nel codice sorgente creato da altri, il codice viene scritto con tabstop impostati su 4 o su 2. Prima di eseguire il comando :%retab , sperimentare con tabstops diversi. Prova

:set ts=8 (the default)
:set ts=4 
:set ts=2  

per vedere quale impostazione ha più senso.

Per tornare indietro (sostituendo gli spazi con i caratteri TAB appropriati, utilizzare

:set noet
:%retab!
    
risposta data 23.09.2011 - 03:08
fonte
1

Di non-tab, intendi cambiare tab in spazi? In tal caso, sostituisci gli spazi per le schede nell'intero buffer in questo modo:

:%s/^I/    /g

Sono quattro spazi sul lato destro della sostituzione, ma puoi farlo indipendentemente dal numero che desideri. Per ottenere il carattere letterale ^I tab, puoi premere ^V seguito dal tasto Tab.

Puoi ri-indentare con il comando = . Per ri-indentare l'intero contenuto del buffer, utilizzare questi comandi:

gg
=G

Questo ti porta in cima, quindi reindita tutto fino in fondo.

    
risposta data 23.09.2011 - 01:59
fonte

Leggi altre domande sui tag