Tente transformar a coisa toda em um comando gigante normal!
:
:argdo norm! /ABCD\_[^a-zA-Z]<C-v><CR>qaq:g//norm! "A3Y<C-v><CR>ggVG"ap
Usar <C-v><cr>
permite inserir um retorno de carro literal. Isso resolve seu problema, mas ainda há muitas coisas sobre sua abordagem que não são ideais.
Por exemplo:
-
Não é necessário procurar por algo e, em seguida, usar
:g//
. Em vez disso, use apenas:g/ABCD\_[^a-zA-Z]
. -
Você pode usar
\_A
em vez de\_[^a-zA-Z]
-
Não há necessidade de fazer o comando global executar um comando normal. Em vez disso, faça um comando ex e você não precisará limpar o registro 'a'. Então, faça
:g/ABCD\_A/3ay
.
Colocando tudo isso junto, recomendo
:argdo norm! :g/ABCD\_A/3ya<C-v><CR>ggVG"ap