Comment append des numéros de ligne à un fichier en cours d’édition dans vi?

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('.'))