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


11

E poi di rientrare automaticamente dopo quello? Ho provato a copiare il codice da una schermata del terminale all'altra, ma la tabulazione è stata incasinata.

Non sapevo come chiamare questa funzionalità, quindi è stato difficile per me trovarlo su google (che generalmente restituiva cose relative a come impostare le dimensioni della scheda, che purtroppo non era quello che cercavo).



1
Sto votando per chiudere questa domanda come fuori tema perché si tratta di uno strumento di programmazione. Domande su strumenti sono più adatti a StackOverflow , o in questo caso, Vi.SE . Tuttavia, questa domanda è troppo vecchia per migrare.

1
Sto votando per chiudere questa domanda in quanto fuori tema, perché è circa l'uso di uno strumento specifico e avrebbe dovuto essere chiesto su Stack Overflow o (se richiesto ora) vi.se .

Risposte:


9

Vim ha un retabcomando che ti consente di tabulare o non tabellare il tuo documento. Utilizza impostazioni come tabstope expandtab. Quindi, se si desidera sostituire le schede con spazi, è possibile effettuare le seguenti operazioni:

:%retab

Vedere la retabdocumentazione per tutti i dettagli.

Caveat Emptor : sostituisce anche le schede che NON sono all'inizio di una riga. Pertanto, se si utilizzano le schede rigide nel mezzo delle stringhe, anche queste verranno sostituite.


3
In generale, è considerata una cattiva idea includere comunque una scheda vera in una stringa. Può ancora succedere, ma \tè preferibile, solo per evitare questo tipo di problemi.
Spencer Rathbun,

6

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

Inoltre, potresti voler specificare i tabstops. Spesso nel codice sorgente creato da altri, il codice è scritto con tabstops impostati su 4 o addirittura 2. Prima di eseguire il :%retabcomando, provare con diversi tabstops. Provare

: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 caratteri TAB appropriati, utilizzare

:set noet
:%retab!

1

Con un-tab, intendi cambiare le schede in spazi? In tal caso, sostituire gli spazi per le schede nell'intero buffer in questo modo:

:%s/^I/    /g

Sono quattro spazi sul lato destro della sostituzione, ma puoi farne qualunque numero tu voglia. Per ottenere il ^Icarattere di tabulazione letterale , puoi premere ^Vseguito dal tasto Tab.

Puoi rientrare di nuovo il rientro con il =comando. Per rientrare di nuovo l'intero contenuto del buffer, utilizzare questi comandi:

gg
=G

Questo ti porta in cima, quindi rientra tutto in fondo.


-1: Sostituire una scheda con un numero fisso di spazi non è quasi mai utile. Cambierà l'aspetto di qualsiasi riga contenente una scheda preceduta da una non-scheda.
Kevin Cline,
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.