Question

Je veux ajouter * à la fin de chaque ligne dans vim.

J'ai essayé en vain le code

:%s/\n/*\n/g
Était-ce utile?

La solution

:%s/$/\*/g

devrait fonctionner. Devrait donc :%s/$/*/g comme Mr. Wiggles souligne correctement.

Autres conseils

Même plus courte que la commande: recherche:

:%norm A*

est ce que cela signifie:

 %       = for every line
 norm    = type the following commands
 A*      = append '*' to the end of current line

Aussi:

:g/$/norm A*

Aussi:

gg<Ctrl-v>G$A*<Esc>

Je pense que l'utilisation du mode bloc visuel est une méthode plus efficace et plus polyvalent pour faire face à ce genre de chose. Voici un exemple:

Ceci est la première ligne.
C'est la deuxième.
Le troisième.

Pour insérer « Bonjour tout le monde. » (+ Espace presse-papier) à la fin de chacune de ces lignes:

  • un caractère dans la première ligne, appuyez sur Ctrl-V (ou Ctrl-Q si Ctrl-V est une pâte).
  • Appuyez sur pour étendre le J.-J. bloc visuel sur trois lignes.
  • Appuyez sur $ pour étendre le bloc visuel à la fin de chaque ligne. appuyez sur A puis espace puis tapez Bonjour tout le monde. + Puis Esc.

Le résultat est:

Ceci est la première ligne. Bonjour tout le monde.
C'est la deuxième. Bonjour tout le monde.
Le troisième. Bonjour le monde.

(exemple de http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines )

Si tu veux ajouter Bonjour tout le monde à la fin de chaque ligne:

:%s/$/HelloWorld/

Si vous voulez faire cela pour dire nombre précis de la ligne, de 20 à 30 utilisation:

:20,30s/$/HelloWorld/

Si tu veux le faire au début de chaque ligne puis utilisez:

:20,30s/^/HelloWorld/

... et à préfixer (ajouter le début) chaque ligne avec *,

%s/^/*/g

Vous ne avez pas vraiment besoin de la g à la fin. Il devient donc:

:%s/$/*

Ou si vous voulez juste le * à la fin, dites lignes 14-18:

:14,18s/$/*

ou

:14,18norm A*

L'une des options est:

  

:g/$/s//*

trouvera tous les point d'ancrage de fin de ligne et de le remplacer par *. Je dis « substitut » mais, en réalité, il est plus d'une append puisque l'ancre est une chose particulière plutôt que d'un caractère régulier. Pour plus d'informations, consultez puissance de g - Exemples

.
:%s/\n/*\r/g

Votre premier est correct nulle part ailleurs, mais Vim doit avoir différentes newline manutention pour une raison quelconque.

%s/\s*$/\*/g

fera l'affaire, et d'assurer des espaces en tête sont ignorés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top