No Vim, como posso copiar de várias linhas? (não um intervalo);

20

Suponha que eu tenha

1 - funct1
2- funct 2
3 - funct 3 
4 line 4

como posso copiar a linha 1 e 3 (não um intervalo de linhas) e colá-las, por exemplo, na linha 8? Se eu fizer isso de maneira com | arg como ( 1y|3y ), eu arranjaria linhas para vários registradores, certo? Mas como posso colocar vários registros de uma só vez?

    
por Whats Myname 28.04.2016 / 12:49

3 respostas

33

Você pode acrescentar a um registrador em vez de apagá-lo usando a letra maiúscula em vez da letra minúscula.

Por exemplo:

:1y a      # copy line 1 into register a (erases it beforehand)
:3y A      # copy line 3 into register a (after its current content)
8G  # go to line 8
"ap        # print register a
    
por 28.04.2016 / 13:05
1

Você pode usar o comando :copy , que pode ser abreviado como :t :

:1t8
:3t8

Se você deseja copiar um intervalo de linhas (por exemplo, todas as linhas de 1 a 3), é possível fazer assim:

:1,3t8
    
por 28.04.2016 / 15:02
0
1Gyy7Gp #use 7 if you wish to paste the line at 8
3Gyy8Gp #use 8 if you wish to paste the line at 9
    
por 29.04.2016 / 03:50

Tags