Substitua uma linha pela linha que tenho no buffer do vi

Substitua uma linha pela linha que tenho no buffer do vi

Eu ccou ddpara copiar uma linha em meu buffer de colagem. Então vou para um novo local.

Quero substituir uma linha que vejo. Então eu digito p Down dd.

Existe uma maneira mais fácil (menos pressionamentos de tecla)?

Responder1

Você pode digitar Vpara selecionar a linha e, em seguida, psubstituí-la.

Responder2

Outra maneira de fazer isso seria"_ddp

"_ddexclui a linha atual do buffer nulo. Isso não escreve demais o que você acabou de copiar, o que achei útil muitas vezes! Ele pcola a linha que você copiou anteriormente.

Pode não ser mais curto em termos de teclas digitadas, mas saber que esta é uma opção pode ser muito útil!

Responder3

Angus e Thor têm respostas curtas, então aqui estão algumas explorações bônus.

Se por algum motivo você quiser deletar antes de colar, você pode aproveitar os registros numerados. O "0registro contém o texto arrancado pelo último you Y, mas não excluído. Os registros "1through "9armazenam as últimas 9 exclusões/cortes que você fez. Então:

  • Se você arrancou com yy, você poderia substituir por dd"0P.
  • Se você cortar com ddou cc, poderá substituir por dd"2P. (Não dd"1Pporque os ddpreenchimentos "1.)

Tente :help "0obter informações mais detalhadas.

Responder4

Suponha que você queira substituir a linha 1 por 3 do que poderia fazer:1m3|2d

Isso efetivamente move a linha 1 para a linha 3 e remove a linha 2 (ou seja, a antiga linha 3)

informação relacionada