Vim - incrementando números em substituição

Publicado por Fábio Berbert de Paula em 12/11/2024

[ Hits: 775 ]

Blog: https://fabio.automatizando.dev

 


Vim - incrementando números em substituição



Vivendo e aprendendo! Uso Vim a aproximadamente 25 anos e hoje aprendi algo novo.

Vamos lá! Supondo que tenho uma lista numerada de centenas de itens e quero adicionar um novo item entre o item 93 e 94. Como fazer isso?

...
90. Banana
91. Maçã
92. Pêra
93. Uva
94. Abacaxi
95. Laranja
96. Morango
...

Então logo depois de "Uva" eu quero adicionar "Pêssego". A lista ficaria assim:

...
90. Banana
91. Maçã
92. Pêra
93. Uva
94. Pêssego
94. Abacaxi
95. Laranja
96. Morango
...

Porém eu não quero ter que renumerar todos os itens a partir do 94. Como fazer isso? A resposta é simples! Vamos utilizar um comando de substituição do Vim.

Entre no modo visual e selecione a partir do item 94 até o final da lista. Em seguinda digite o comando de substituição:

:'<,'>s/^\d\+/\=submatch(0)+1/

Onde:
  • '<,'> é a faixa de linhas selecionadas, o Vim irá adicionar automaticamente.
  • s é o comando de substituição.
  • ^\d\+ é a expressão regular que casa com o número no início da linha, ou seja, \d é um dígito e \+ é um ou mais.
  • \=submatch(0)+1 é a expressão que será substituída. submatch(0) é o número encontrado e +1 é a soma de 1.

Pronto! Todos os itens a partir do 94 foram renumerados automaticamente.

Outras dicas deste autor

Como exportar um container Docker para outra máquina

Como converter áudio em texto usando OpenIA

Como gravar uma ISO no pendrive/USD externo

Steam no Debian 10 Buster

MongoDB Community Edition 4.2 no Debian 10 Buster

Leitura recomendada

Vim - substituindo somente no bloco selecionado

Vim - fazer JOIN de múltiplas linhas

Vim - juntar múltiplas linhas em uma só (JOIN)

Vim - apagar linhas vazias

Compilando a última versão do Vim no Fedora 33

  

Comentários
[1] Comentário enviado por maurixnovatrento em 11/01/2025 - 16:40h

Dica muito útil.
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts