web-dev-qa-db-fra.com

Supprimer tous les espaces arbitraires avant une ligne dans Vim

J'ai écrit un plugin où il s'agit d'analyser une balise XML. Le contenu de la balise est en retrait et lorsque je copie la chaîne analysée dans le fichier, il devient comme

    Example line
        This is part of the parsed line
        Thats goes one
    End of line

Ce que je veux, c'est supprimer tous les espaces devant ces lignes, le texte final devrait être 

Example line
This is part of the parsed line
Thats goes one
End of line

J'ai essayé d'utiliser = mais cela ne fonctionne pas comme je le souhaite. Comment puis-je faire cela avec un minimum de touches? 

41
Fatih Arslan

Pour formater une ligne à gauche, j'utilise :left. Utilisez ce format un fichier entier:

:%le
119
Peter Rincker

Une simple recherche/remplacement s/^\s*// devrait faire l'affaire, mais ce n'est probablement pas la version minimale.

11
Lukáš Lalinský

Personnellement, je sélectionnerais visuellement les lignes avec V, puis utiliserais 99< pour pousser le texte le plus à gauche possible.

9
Randy Morris

Que dis-tu de ça:

:%s/^ *//

Ou cherchez-vous une solution vim-script?

4
chris

Tapez juste d suivi de w suivi de j au début de chaque ligne.

4
Simon

Pour supprimer les espaces et les tabulations initiaux aux numéros de ligne spécifiés (par exemple des lignes 5 à 10),

:5,10s/^\s*//
1
MayurKubavat

La recherche/substitution suggérée par Lukáš Lalinský ou l'approche %le dans la page wikia est probablement la méthode que je ferais, mais vous pouvez également faire une autre alternative:

:%< 99

Comme moyen rapide de déplacer l’ensemble du fichier (%) 99 fois vers la gauche.

0
DrAl

Une autre méthode consiste à utiliser la commande normale :h :normal-range 

:%norm d^

Cela va à la colonne 0 dans chaque ligne (% ) et supprime ( d ) du premier caractère non blanc ( ^ ).

C’est un peu plus facile à saisir en tant que réponse acceptée, mais permet une extension facile si vous avez un scénario plus complexe en tête, tel que la suppression de commentaires supplémentaire ou autre:

:%norm d^I# 

Résultant en:

#Example line
#This is part of the parsed line
#Thats goes one
#End of line
0
Sebastian Müller

Supprimer tous les espaces consécutifs: :%s/ */ /g

Cela m'a été utile de partir de:

$screen-xs-min:              480px;
$screen-sm-min:              768px;
$screen-md-min:                992px;
$screen-lg-min:                  1200px;

À:

$screen-xs-min: 480px;       
$screen-sm-min: 768px;       
$screen-md-min: 992px;           
$screen-lg-min: 1200px;                                                                                                 
0
Dorian