dans vim, comment ajouter / insérer du texte avec argdo?
Question
Il y a le " ;: un " commande, mais c’est multi-ligne, et argdo vous redemande le texte pour chaque fichier.
Les documents mentionnent la commande globale (g / pat / commande) qui utilisera une version alternative de ": a " qui se termine par une nouvelle ligne au lieu de ". " sur une ligne (vous pouvez inclure des nouvelles lignes en les échappant avec & "; \ &";). Mais je n'ai pas réussi à faire en sorte que cela fonctionne.
Le seul moyen que j'ai vu consiste à extraire d'abord le texte à ajouter à un registre nommé, puis à utiliser:
:argdo put x " where x is the register
J'espère quelque chose comme
:argdo append myTextHere
La solution
Je ne sais pas trop où vous essayez d'insérer le texte dans le tampon. Si vous le souhaitez après la ligne en cours:
:argdo exe 'normal osometext'
Insertion de texte avec des sauts de ligne:
:argdo exe "normal osometext\<CR>anewline"
Autres conseils
Pour ajouter du texte après la ligne 10:
:argdo call append(10, "hello world")
Pour ajouter du texte à la ligne 10:
:argdo call setline(10, getline(10)."textappended")
Tirer un texte dans vim le mettra dans le tampon par défaut, qui est "
. Vous pouvez coller ce tampon en mode insertion, par exemple en tapant <C-R>"
. Donc tout ce dont vous avez besoin est argdo put "