Como sobrescrevo linhas de texto no vi / vim?

2

No vi / vim, gostaria de sobrescrever linhas de texto na página. Semelhante a sobrescrever caracteres em uma linha - eu pressiono R , depois colo e os charcters são sobrescritos, mas ao invés disso eu quero fazer o mesmo indo pela página.

Exemplo:

Eu tenho um arquivo com o seguinte texto:

 var1: 7FBzezsLKyzYmVeM
 var2: kL8RIBJVNrlEUyYV
 var3: 1FkmXFSXtH4msKnL

Eu gostaria de substituir essas linhas pelo seguinte:

 var1: 7PmuHKKRx9OYt9mR
 var2: nuRAS5dAKfUrvECJ
 var3: km11I7HuXOWuu43X

O que eu normalmente faria é excluir as linhas existentes e colar as novas linhas em seu lugar ou vice-versa.

O novo texto vem do buffer de colagem, seja ele puxado ou copiado de outro lugar.

Eu pesquisei extensivamente, mas não encontrei nenhuma referência a como fazer isso. Mesmo com macros, não consigo pensar em como eu faria isso.

Alguém já conseguiu fazer isso? Se isso não for possível, então eu sei com certeza.

    
por geedoubleya 23.09.2016 / 16:53

3 respostas

3

Por favor, tente isto:

  • copie / tire as linhas que deseja copiar
  • mude para o buffer que você deseja alterar
  • g R Ctrl-r 0 Esc

Tradução:

  • g R entra no modo de substituição visual (cf. :h gR )
  • Ctrl-r 0 - pastas do registro 0 (ver :h i_CTRL-R , :h quote0 )
  • Esc - deixa o modo de substituição.
por 23.09.2016 / 17:54
0

não sabe o que você quer dizer.

vá para a primeira linha correspondente e use

.,.+2d
r /tmp/var
  • .,.+2d apagará a linha 3 (ajuste 2 para sua necessidade)
  • r /tmp/var lerá (insira) o arquivo de modelo.
por 23.09.2016 / 16:59
0

O built-in gR (como sugerido por @SatoKatsura) é ótimo se o tamanho do antigo e o novo forem idênticos. No caso geral, isso não funciona, e uma abordagem diferente deve ser adotada. Eu preciso disso com tanta frequência, eu escrevi um plugin para simplificar e permitir a máxima velocidade: ReplaceWithRegister .

Este plugin oferece um comando two-in-one gr que substitui o texto coberto por um objeto {motion} / text, linha (s) inteira (s) ou a seleção atual pelo conteúdo de um registrador; o texto antigo é apagado no registo do buraco negro, ou seja, desapareceu. Ele manipula de forma transparente muitos casos de canto e permite uma repetição rápida por meio do comando padrão . . Caso você não goste, sua página tem links para alternativas.

    
por 26.09.2016 / 11:24

Tags