Copiando / colando no VIM sem sobregravar registrador

2

Não consegui descobrir isso ...

Então eu geralmente gosto de selecionar uma palavra (digamos, albatross ) e copiá-la para um registrador usando v i w < kbd> y , que - pelo que entendi - copia para o registrador * .

Então eu quero colar novamente sobre outra palavra ( sparrow ), então eu farei v i w p .

Mas muitas vezes eu quero colar a palavra original ( albatross ) em mais uma palavra ( osprey ), mas quando tento repetir meus comandos anteriores, o valor colado sai como sparrow , não %código%. Isso, eu sei, é porque quando o texto é excluído antes de ser colado, ele é copiado para o albatross register, sobrescrevendo * com albatross .

Eu pensei que poderia contornar isso usando registros nomeados, então eu tentei copiar com v i w " 1 y e colando com v i w " 1 p , mas isso apenas reproduz meu problema original com o sparrow register usando o * register.

Para todos vocês ninjas VIM por aí, o que estou fazendo de errado? Eu gostaria de poder rapidamente arrancar algum texto arbitrário (de preferência usando o "1 register, pois ele me salva dois pressionamentos de teclas) e colar esse valor original * vezes depois em qualquer ponto no documento.

Como algo assim é feito com eficiência?

    
por neezer 03.05.2012 / 19:43

2 respostas

2

Você deve usar os registros "a to "z (named), em vez dos registros numerados, que armazenam as exclusões anteriores automaticamente.

    
por 03.05.2012 / 19:52
5

O 0 register mantém o último texto capturado, portanto, depois de arrancar algum texto, você poderá colá-lo repetidamente com "0p . Para mais sobre isso, veja

:help quote0
    
por 03.05.2012 / 20:05

Tags