Pular para o conteúdo

Vim - incrementando números em substituição

Dica publicada em Linux / Vim
Fábio Berbert de Paula fabio
Hits: 1.243 Categoria: Linux Subcategoria: Vim
  • Indicar
  • Impressora
  • Denunciar

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.

wikit - Wikipédia no seu terminal

Como suprimir a emissão de luz azul da tela via linha de comando

SQL: Combinando INSERT + SELECT para duplicação de registros

Busca Reversa no Mongo Shell

Instalando Docker no Debian 10 Buster

Emulador de terminal no Vim

Instalar o VIM 9.1 no Debian 12

Resolvendo o problema de acentuação em Português no VIM

Vim - implemente um "substituir tudo" no modo BOSS

Vim - criando padrões personalizados de syntax highlight

Contribuir com comentário

Entre na sua conta para comentar.