2010-08-13 14 views
40

Qualche idea su come eliminare tutti gli spazi e le schede alla fine di tutte le mie righe nel mio codice utilizzando vim? A volte uso comandi per aggiungere cose alla fine delle mie linee, ma a volte, a causa di questi spazi inattesi (cioè, inserisco questi spazi inavvertitamente durante la codifica), che non hanno alcuno scopo, questi comandi non eseguono il diritto lavoro ... quindi mi piacerebbe sbarazzarmi degli spazi vuoti una volta per tutte usando un comando vim. Grazie in anticipo!Elimina tutti gli spazi e le schede alla fine delle righe

risposta

99

In vim:

:%s/\s\+$// 

Spiegazione:

  • : comando
  • % si applicano a tutto il file
  • s cercare e sostituire
  • /\s\+$/ regex per uno o più caratteri di spaziatura fol lowed alla fine di una linea
  • // valore di sostituzione di una stringa vuota
+1

'\ s \ + $' è l'espressione regolare e una stringa vuota è la sostituzione. '/' è semplicemente un separatore. Puoi usare ad es. '_' al suo posto. – strager

+0

Grazie ... Conosco la sintassi, non sapevo però per i caratteri dello spazio bianco! Comunque, funziona :) Accetterò la tua risposta il più presto possibile. – Nigu

+0

@strager: ne sono a conoscenza; ma è molto più semplice rappresentare una stringa vuota quando ci sono dei delimitatori attorno ad essa. Il fatto che due caratteri '/' siano inclusi sia nella parte regex sia nel valore di sostituzione dovrebbe probabilmente essere un indizio del fatto che non fanno parte in particolare di entrambi. ;) – Amber

13

uso questo funzione:

func! DeleteTrailingWS() 
    exe "normal mz" 
    %s/\s\+$//ge 
    exe "normal `z" 
endfunc 

Leader, w per rimuovere finali spazi bianchi

noremap <leader>w :call DeleteTrailingWS()<CR> 

Rimuovi gli spazi bianchi finali durante il salvataggio di un file python:

autocmd BufWrite *.py :call DeleteTrailingWS() 
+0

E per i neofiti che usano il sistema Linux, inserisci questa funzione nel tuo ~ /.vimrc file. –

+0

Per me uso 'leader + w' per salvare, questo mi impedirà di farlo, quindi ho aggiunto' w' alla fine della funzione! –

Problemi correlati