Introdução

Se assim como eu você não gosta de ter que instalar plugins no Neovim para coisas que deveriam ser simples, eu te mostro como resolver expressões matemáticas usando uma simples macro e atalho no teclado.

Observação: Feito no Neovim v0.11.4, entretanto, o recurso existe a anos e funciona em versões anteriores…

Neovim tem uma “calculadora” nativa

Abra uma instância do neovim e enquanto estiver no modo inserir aperte <C-r>= (CTRL + r então =). Você verá que o Neovim irá abrir uma linha de comando onde você pode resolver expressões matemáticas. Você já deve saber onde isso vai dar…

Calculando expressões matemáticas

Para resolver expressões matemáticas no Neovim, é necessário seguir os mesmos princípios e símbolos utilizados no JavaScript e Python por exemplo (ou como… qualquer outra linguagem de programação?).

Por exemplo, para calcular o resultado de 28 vezes 13.2, utiliza-se o símbolo *:

28 x 13,2 // Errado
28 * 13.2 // Correto

O primeiro exemplo é incorreto porque usa x ao invés de * como símbolo de multiplicação, e , para casas decimais ao invés de ..

Atalhos

Você deve estar se perguntando: Eu preciso abrir a calculadora toda vez que quiser fazer algum cálculo?. A resposta é não. Basta criar um atalho nos arquivos de configuração do Neovim, dentro do init.lua ou algum módulo de atalhos por exemplo.

Criando o atalho

O atalho a seguir estará disponível no modo visual. O que ele faz é… basicamente rodar em sequência alguns comandos por você, assim como uma macro.

vim.keymap.set(
  'v',
  '<leader>g=',
  'c<C-r>=<C-r>-<cr>',
  { desc = 'Calcular expressão matemática (substitui a seleção com o resultado)' }
)

Vamos olhar o que cada comando faz…

  • c (mudar): Deleta o texto, salva no registrador e inicia o modo inserir.
  • <C-r>= (Abre a calculadora): Abre a calculadora na linha de comando.
  • <C-r>- (colar): Insere o texto na calculadora.
  • <cr> (confirma): Tecla enter na calculadora do Neovim.

Simples, não? Depois disso, o Neovim irá colocar o resultado da expressão matemática em seu arquivo. Agora, sempre que quiser calcular uma expressão matemática no Neovim, basta teclar <leader>g= enquanto estiver com a expressão selecionada.

Alguns poréns

Esse atalho tem alguns pontos negativos…

  • Funciona somente para expressões em uma única linha (pois usamos - como registrador), expressões em múltiplas linhas precisam de outra abordagem.
  • O separador de decimais deve ser o ., sem vírgulas na expressão (o exemplo mostra intencionalmente o uso incorreto nas casas decimais)
  • Talvez você prefira usar g= como atalho, reduzindo a quantidade de teclas mas irá indisponibilizar o formatador padrão do Neovim.

Conclusão

Por que complicar as coisas e “poluir” o seu Neovim para resolver problemas simples? 1


  1. Terry A. Davis — “Um idiota admira a complexidade; um gênio admira a simplicidade.” (YouTube, ~18:57) [source: https://youtu.be/gBE6glZNJuU?t=1137]. ↩︎