vim-crunch
vim-crunch copied to clipboard
A calculator inside Vim
crunch
crunch makes calculations in Vim more accessible by providing an operator to evaluate mathematical expressions, loosening Vim's math syntax, and forcing integers into floating point numbers.
Usage
Mode | Key Mapping | Description |
---|---|---|
normal | g={motion} | Evaluate the text that {motion} moves over |
normal | g== | Evaluate the current line |
visual | g= | Evaluate the highlighted expressions |
-
:[range]Crunch[!]
- Evaluates the current visual selection or provided range and adds result
to the end of the line(s) With the [!] crunch does not append the result
but replaces the provided range or visual selection with the result this
behavior can be reversed by setting
g:crunch_result_type_append
= 0
- Evaluates the current visual selection or provided range and adds result
to the end of the line(s) With the [!] crunch does not append the result
but replaces the provided range or visual selection with the result this
behavior can be reversed by setting
-
:Crunch
- Provides a prompt in the command for you to enter your mathematical expression. The result is then available to be pasted from the default register.
-
:Crunch {expression}
- Where {expression} is some mathematical expression to be evaluated. The result is then available to be pasted from the default register.
Requirements
- selection.vim
- Vim compiled with
+float
feature
Math With Looser Syntax
The following chart shows the looser math syntax provided with crunch, compared to the default math syntax.
Feature | With crunch | Without crunch |
---|---|---|
Implied Multiplication | ||
cos(0)cos(0) = 1 | cos(0)*cos(0) = 1.0 | |
2sin(1) = 1.682942 | 2*sin(1) = 1.682942 | |
sin(1)2 = 1.682942 | sin(1)*2 = 1.682942 | |
(23)(32) = 36 | (23)(3*2) = 36 | |
2(3*2) = 12 | 2*(3*2) = 12 | |
Integer to Float Conversion | ||
1/2 = 0.5 | 1.0/2.0 = 0.5 | |
.25*4 = 1 | 0.25*4 = 1.0 | |
Decimals w/o Leading Zeros | ||
.5/2 = 0.25 | 0.5/2 = 0.25 | |
.25*4 = 1 | 0.25*4 = 1.0 | |
Removed Zeros In Result | ||
0.25*4 = 1 | 0.25*4 = 1.0 | |
pow(2,8) = 256 | pow(2,8)= 256.0 |