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