Vim - incrementando números em substituição

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

[ Hits: 289 ]

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 Ler e Gerar QR Code no Linux

Direcionando o browser para outra URL

Sincronizando o seu Palm no Linux

PHP - Como comparar duas strings case insensitive

Como baixar vídeos do Reddit usando um Python-Bot

Leitura recomendada

Mudando o tema do Vim - esquema de cores

Vantagens de usar o Vim ao invés do VSCode

Plugin auto-pairs no Vim

Salvar automaticamente no Vim

Habilitando sintaxe no VIM para o logstash

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts