
No vi/vim, gostaria de substituir as linhas de texto que descem na página. Semelhante a substituir caracteres em uma linha - pressiono R
e colo e os caracteres são substituídos, mas em vez disso quero fazer o mesmo descendo a página.
Exemplo:
Eu tenho um arquivo com o seguinte texto:
var1: 7FBzezsLKyzYmVeM
var2: kL8RIBJVNrlEUyYV
var3: 1FkmXFSXtH4msKnL
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 seus lugares, ou vice-versa.
O novo texto vem do buffer de colagem, arrancado ou copiado de outro lugar.
Pesquisei bastante, mas não consigo encontrar nenhuma referência sobre como fazer isso. Mesmo com macros, não consigo pensar em como faria isso.
Alguém conseguiu fazer isso? Se isso não for possível, tudo bem, eu tenho certeza.
Responder1
Por favor, tente isto:
- copie/arranque as linhas que deseja copiar
- mude para o buffer que deseja alterar
- gRCtrl-r0Esc
Tradução:
- gRentra no modo de substituição visual (cf.
:h gR
) - Ctrl-r0- cola do registro
0
(veja:h i_CTRL-R
,:h quote0
) - Esc- sai do modo de substituição.
Responder2
não tenho certeza do que você quer dizer.
vá para a primeira linha correspondente e use
.,.+2d
r /tmp/var
.,.+2d
irá deletar a linha 3 (ajuste 2 conforme sua necessidade)r /tmp/var
irá ler (inserir) o arquivo de modelo.
Responder3
O embutido gR
(conforme sugerido por @SatoKatsura) é ótimo se o comprimento do antigo e do novo for idêntico. No caso geral, isso não funciona e uma abordagem diferente deve ser adotada. Preciso disso com tanta frequência que escrevi um plugin para simplificar e permitir velocidade máxima:Substituir por registro.
Este plugin oferece um comando dois em um gr
que substitui o texto coberto por um {motion} / objeto de texto, linha(s) inteira(s) ou a seleção atual pelo conteúdo de um registro; o texto antigo é excluído do registro do buraco negro, ou seja, desaparece. Ele lida de forma transparente com muitos casos extremos e permite uma repetição rápida por meio do .
comando padrão. Caso não goste, sua página traz links para alternativas.