Por que p colar uma linha copiada após a linha atual, em vez de após a palavra atual?

12

Suponha que eu tenho as seguintes quatro linhas:

line1
line2
line3
line4

Agora, se eu for line1e fizer um yyque copie a linha e depois for iniciar line3e colar usando 'p', eu obteria

...
line3
line1
line4
....

Por que colar line1depois line3em uma nova linha?

No entanto, minha inicial foi porque o caractere de nova linha $ foi anexado à linha3 e, quando pressionei pvim, foi considerada line3$uma palavra para que ela colasse depois line3$. No entanto, parece que meu entendimento estava errado. Porque se eu fizer isso line3 $e depois fizer um pno início da linha, eu obtenho o mesmo resultado.

Por que pcriar uma nova linha e colar em uma nova linha depois line3?

James Franco
fonte

Respostas:

20

Quando você excluiu a linha usando dd, você executou uma linewise excluir.

O pcomando cola após a posição do cursor. Como o registro padrão foi preenchido com conteúdo em linha, isso significa que ele será colado após a linha em que o cursor estiver ativado.

Se você tivesse excluído o conteúdo da linha de maneira caracterizada (por exemplo, 0D), o registro seria característico e, portanto, colado após o caractere no qual o cursor estava.

Em geral, o comportamento deve seguir o que é esperado de um excluir / puxar e colar. No entanto, é possível modificar o -wiseness de um registro usando getreg () / setreg () .

Tenha cuidado ao fazer isso, no entanto. Dado o seu exemplo inicial, simplesmente alterar o registro para caractere não remove a nova linha que fazia parte da exclusão. Apenas muda como a pasta ocorre.


Para obter recomendações sobre o cenário específico de excluir uma linha inteira, mas colá-la por caracteres, consulte esta postagem .

jamessan
fonte