J’ai du texte et j’utilise :number
en mode commande pour obtenir le numéro dans chaque ligne et en plus, je veux aussi avoir ce numéro à la sortie enregistrée. Quelle méthode / commande puis-je utiliser pour y parvenir?
Utilisez la puissance des utilitaires Unix avec la puissance du filtrage vi. Il existe plusieurs utilitaires qui numérotent les fichiers texte: nl (1) , mais aussi cat (1) (en supposant qu’il supporte l’option non-POSIX -n
). Lorsque vous êtes dans vi
, exécutez cette commande pour filtrer le fichier entier via cat -n
:
:%!cat -n
Vous pouvez aussi utiliser
:%!nl
mais notez que nl
par défaut ne numérote pas les lignes vides, alors que cat
fait. Pour numéroter toutes les lignes avec nl
, utilisez
:%!nl -ba
Utilisez la commande nl .
c’est à dire
nl out.txt
Vous pouvez utiliser cette astuce vim :
%s/^/\=printf('%-4d', line('.'))