Cole uma linha de corte inteira no final de outra linha no vim

5

Eu cortei uma linha com dd e, em seguida, quero colar a linha inteira no final de outra linha. Mas o problema é que, porque o dd corta a linha inteira, ele provavelmente também inclui o caractere de nova linha.

E quando eu colo via p , ele automaticamente coloca na próxima linha. E se eu fizer Shift + p , ele será colocado antes da linha que estou tentando colar.

Então, há uma maneira de colar toda a linha que eu cortei no final de uma linha?

    
por rasen58 18.09.2016 / 06:35

4 respostas

3

Para cortar uma linha sem nova linha, você pode pressionar d$ ou D da localização do cursor. Para colá-lo no final de outra linha, você pode ir até o final e pressionar p . No caso, se você não conseguir colar a linha como esperado, pode ir até o final da linha onde deseja colar. Em seguida, pressione i e, em seguida, pressione <C-R> (Control-R) e " (aspas duplas). Seu texto cortado ou copiado recentemente será colado.

    
por 18.09.2016 / 11:11
2

Depois de colar a sua linha depois da atual por meio de p , basta pressionar outro j na linha anterior para unir as duas linhas, eliminando assim o seu avanço indesejado. .

    
por 21.09.2016 / 11:06
1

A melhor solução que posso imaginar agora é:

A<C-r>+

Isso significa: ativar o modo de inserção no final da linha e colar o conteúdo do registro + .

Ele também colará nova linha. dd está simplesmente operando em linhas completas (abreviação de 1dd ).

    
por 18.09.2016 / 11:03
1

De fato, muitas vezes, o caso de uso é o seguinte: você deseja excluir uma linha completa (incluindo a nova linha, por isso d$ / D não funciona, como deixar uma linha vazia), mas cole no final ou dentro de alguma linha existente, sem criar um novo.

Meu plug-in UnconditionalPaste fornece vários mapeamentos que convertem automaticamente o conteúdo do registro para o caso de uso desejado . Seu exemplo seria dd , mova para a linha de segmentação, $gcp . gcp é o mapeamento para colar de caracteres .

    
por 19.09.2016 / 12:53