2010-08-13 3 views
40

Une idée sur la façon de supprimer tous les espaces et tabulations à la fin de toutes mes lignes dans mon code en utilisant vim? J'utilise parfois des commandes pour ajouter des choses à la fin de mes lignes, mais parfois, à cause de ces blancs inattendus (c'est-à-dire, je mets ces blancs par inadvertance pendant le codage), qui ne servent à rien, ces commandes ne fonctionnent pas travail ... donc je voudrais me débarrasser des blancs une fois pour toutes en utilisant une commande vim. Merci d'avance!Supprimer tous les espaces et tabulations à la fin de mes lignes

Répondre

99

En vim:

:%s/\s\+$// 

Explication:

  • : commande
  • % appliquent à fichier entier
  • s de recherche et de remplacement
  • /\s\+$/ regex pour un ou plusieurs espaces fol lowed à la fin d'une ligne
  • // valeur de remplacement d'une chaîne vide
+1

'\ s \ + $' est l'expression régulière et une chaîne vide est le remplacement. '/ est simplement un séparateur. Vous pouvez utiliser par exemple '_' à sa place. – strager

+0

Merci ... Je suis familier avec la syntaxe, je ne savais pas pour les caractères d'espaces blancs cependant! Quoi qu'il en soit, cela fonctionne :) J'accepterai votre réponse dès que possible. – Nigu

+0

@strager: J'en suis conscient; mais il est beaucoup plus facile de représenter une chaîne vide quand vous avez des délimiteurs autour. Le fait que deux caractères '/' soient inclus à la fois dans la partie regex et la valeur de remplacement devrait probablement être une indication qu'ils ne font pas partie de l'une ou de l'autre. ;) – Amber

13

J'utilise cette fonction:

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

Leader, w pour supprimer les espaces blancs arrière

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

Supprimez les espaces blancs de fin lors de l'enregistrement d'un fichier python:

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

Et pour les débutants en utilisant le système Linux, mettre cette fonction dans votre ~ /.vimrc fichier. –

+0

Pour moi, j'utilise 'leader + w' pour sauvegarder, cela m'empêchera de le faire, donc j'ai ajouté' w' à la fin de la fonction! –

Questions connexes