Não é fácil encontrar um bom título para o meu problema.
Estou ciente de inserir na frente de um bloco de texto:
Ctrl- v selecione o tipo de linhas I texto ESC
Agora eu gostaria de fazer isso, mas também substituindo uma parte da minha seleção de blocos. Atualmente estou fazendo duas operações
Ctrl- v selecione o bloco x voltar ao início
Seguido pela sequência que mencionei acima.
Existe uma maneira de combinar essas duas operações selecionando ( Ctrl- v) o bloco apenas uma vez?
Aqui está um pequeno exemplo:
Eu gostaria de transformar o seguinte bloco
1 text
2 text
3 text
4 text
5 text
para dentro
new text
new text
new text
new text
new text
fazendo apenas uma "operação".
visual-mode
replace
Patrick B.
fonte
fonte
Respostas:
Digitar capós selecionar seu bloco em vez de xremoverá o texto no bloco de seleção e entrará no modo de inserção. Depois de digitar algo e sair do modo de inserção, você deve ter a mesma alteração em todas as linhas.
Tentar
Ctrl- v- selecione o bloco - c- insira o que for -Esc
fonte
Imagine uma linha de três letras maiúsculas diferentes, como a acima.
^V
selecionando o acima, não pude alterar todosA
na última letra da linha devido a linhas de comprimento desiguais. As letras maiúsculas anteriores funcionaram bem com:s/\%V1/T/g
"A letra maiúscula anterior era um T feito dos anos 1. Mude/T/
para o que for.Porém, selecionar a última letra de bloco mostrada acima, apenas mudou todos os '1s para' A's ao ponto dos A *, e o restante permaneceu um.
* A linha mais curta.
Para fazer todas as linhas do mesmo comprimento, preenchi-as com espaços. (Eu sou novo no vim, por isso tenho certeza de que um script melhor poderia ser escrito.)
Nota: O pico do A começou na linha 2.
Depois disso,
:s/\%V1/T/g
trabalhou como anunciado na última letra de bloco da linha.PS: Li que a
execute
linha acima deve funcionar sem os pontos, mas não funcionou para mim.fonte