70 votes

Remplacez par le contenu du registre ou des lignes d’ailleurs dans le fichier dans Vim

J'utilise Vim et je souhaite remplacer un texte de substitution par une longue chaîne couvrant plusieurs lignes, qui est déjà écrite ailleurs dans le fichier.

Est-il possible de remplacer un motif par le contenu d'un registre? Quelque chose comme

 :%s/foo/<contents of register A>
 

Sinon, est-il possible de remplacer par une gamme de lignes? quelque chose comme

 :%s/foo/<content of lines from 10 to 15>
 

96voto

David Wolever Points 34304

Selon http://vim.wikia.com/wiki/Search%5Fand%5Freplace Il apparaît:

:%s/foo/\=@a/g

Aussi, en appuyant sur <c-r>a insérez le contenu du registre a.

Cool -- je n'ai jamais su que. Bonne question.

Quelques autres choses à faire avec <c-r>: http://vimdoc.sourceforge.net/htmldoc/undo.html#CTRL-R

25voto

Mykola Golubyev Points 21210
:%s/foo/\=getline(10, 15)/g

:%s/foo/\=join(getline(10, 15))/g

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X