Respostas:
Use um registro em maiúsculas ao puxar (copiar):
"Ay
"Adiz para anexar ao aregisto, ao contrário do "aque substituir o conteúdo do aregisto.
Depois de copiar tudo para o registro, você pode colar tudo de uma vez com:
"ap
qaq. Alternativamente, se você quiser apenas para evitar ter junk anterior lá, você pode copiar a sua primeira palavra usando o menor registro de caso: "ay. Lembre-se, ae Aconsulte o mesmo registro, eles apenas afetam como as coisas são adicionadas.
Você também pode definir seu próprio operador personalizado, que puxaria incrementalmente qualquer objeto de texto ou texto coberto por um movimento:
fu! Incremental_yank(type, ...) abort
if a:type ==# 'char'
norm! `[v`]y
elseif a:type ==# 'line'
norm! '[V']y
elseif a:0
norm! gvy
endif
call setreg('z', @".(a:type ==# 'char' ? ' ' : ''), 'a' . getregtype('"'))
call setreg('"', @z, getregtype('z'))
endfu
nno <silent> zy :<C-U>set opfunc=Incremental_yank<CR>g@
xno <silent> zy :<C-U>call Incremental_yank(visualmode(), 1)<CR>
nno <silent> zyy :<C-U>set opfunc=Incremental_yank<Bar>exe 'norm! '.v:count1.'g@_'<CR>
nno <silent> zyc :<C-U>let [@", @z] = ['', '']<CR>p
Neste exemplo, 4 ligações de teclas estão instaladas:
zy operador normal para puxar incrementalmente um objeto de texto ou movimentozyy operador semelhante que trabalha em linhaszy operador semelhante que trabalha na seleção visualzyccomando normal para esvaziar os registros "e z; útil antes de começar a puxar uma sequência de textosCom ele, você pode:
zyiwa primeira palavra e repita a operação com o comando dot nas próximaszyya primeira e repita a operação com o comando dot nas próximaszycada uma delasO código atual confunde o zregistro, se você preferir usar outro registro, como xpor exemplo, você pode alterar as seguintes linhas:
call setreg('z', @", 'a' . getregtype('"')) call setreg('x', @", 'a' . getregtype('"'))
^ ^
call setreg('"', @z, getregtype('z')) → call setreg('"', @x, getregtype('x'))
^ ^ ^ ^
nno <silent> zyc :<C-U>let [@", @z] = ['', '']<CR>p nno <silent> zyc :<C-U>let [@", @x] = ['', '']<CR>p
^ ^
Para mais informações, veja:
:h g@
:h getregtype()
:h setreg()
/^#\s.\+e depois fazer, zyvpor exemplo!