Você pode usar "Myy
(letra maiúscula M) para acrescentar ao registrador m. Isso permite que você escreva um comando global para arrancar todas as linhas correspondentes a def.*$
e arrancar todas as linhas no registro m. Então tudo que você precisa fazer é colar o registrador m para obter o conteúdo "mp
:g/def.*$/normal "Myy
O comando global acima diz para você encontrar todas as linhas que correspondem ao padrão def.*$
e executar o comando "Myy
no modo normal.
No entanto, isso tem um problema. O que acontece se o registrador m não estiver vazio quando você iniciar. Bem, você vai acabar com o que você colocou no registro da última vez, além de todas as coisas que você adicionou.
Para esvaziar o registro, você pode usar para definir o registro para a string vazia.
:let @m=''
Então no vim você digitaria
:let @m=''
:g/def.*$/normal "Myy
Para pegar tudo o que combina def.*$
no registro m.