Je veux ajouter *
à la fin de chaque ligne dans Vim.
J'ai essayé le code sans succès
:%s/\n/*\n/g
Je veux ajouter *
à la fin de chaque ligne dans Vim.
J'ai essayé le code sans succès
:%s/\n/*\n/g
Réponses:
:%s/$/\*/g
devrait marcher. Il :%s/$/*/g
en va de même comme MrWiggles le souligne correctement.
g
indicateur n'est pas nécessaire.
Encore plus court que la commande: search:
:%norm A*
Voilà ce que cela signifie:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
I*
plutôt que vous 0i*
fera économiser une touche.
:
, cela pré-remplira la commande avec :'<,'>
laquelle vous pourrez ensuite effectuer:'<,'>norm A*
I
plutôt -:%norm I*
Aussi:
:g/$/norm A*
Aussi:
gg<Ctrl-v>G$A*<Esc>
g
est une global
commande qui fait quelque chose avec chaque ligne correspondante. $
correspond à chaque ligne. Ce pourrait être aussi ^
ou .*
. La norme exécute les commandes que vous utilisez normalement en mode commande. A*
Signifie donc ajouter *
à la fin de la ligne.
Je pense que l'utilisation du mode bloc visuel est une méthode meilleure et plus polyvalente pour faire face à ce type de chose. Voici un exemple:
This is the First line.
This is the second.
The third.
Pour insérer "Bonjour tout le monde". (espace + presse-papiers) à la fin de chacune de ces lignes:
Le résultat est:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(exemple de Vim.Wikia.com )
jj
on peut frapper G
pour passer à la dernière ligne. Ceci est utile dans les fichiers volumineux, où appuyer j
jusqu'à ce que vous atteigniez la dernière ligne n'est pas pratique.
Vous n'avez pas vraiment besoin du g
à la fin. Cela devient donc:
:%s/$/*
Ou si vous voulez juste *
la fin, dites les lignes 14-18:
:14,18s/$/*
ou
:14,18norm A*
... et ajouter (ajouter le début de) chaque ligne avec *,
%s/^/*/g
Une option est:
:g/$/s//*
Cela trouvera chaque ancre de fin de ligne et la remplacera par *
. Je dis "substitut" mais, en fait, c'est plus un ajout car l'ancre est une chose spéciale plutôt qu'un caractère régulier. Pour plus d'informations, voir Puissance de g - Exemples .
:% s / \ n / * \ r / g
Votre premier est correct ailleurs, mais Vim doit avoir un traitement de nouvelle ligne différent pour une raison quelconque.
:s///
,\n
correspond à un caractère nul. La section:help sub-replace-special
est pertinente.