Ad blocker interference detected!
Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers
Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.
Here is how to define and use a calculator, using embedded Python.
These two lines go in your vimrc:
:command! -nargs=+ Calc :py print <args> :py from math import *
Now use it inside Vim:
:Calc 2**10+5,2**16,2**128 1029 65536 340282366920938463463374607431768211456 :Calc sin(pi/2), log(10) 1.0 2.302585
You have to have Vim compiled with Python support, and have Python on your machine†. Use
:version to see which features are included in your Vim.
If you don't have Python support in your Vim, but do have a python command, use this instead
command! -nargs=+ Calc :!python -c "from math import *; print <args>"
You also get complex numbers and other goodies. Google for Python and math. Here is an example from complex math:
:py from cmath import * :Calc exp(pi*1j) , " Euler famous identify e^i.pi = -1" (-1+1.22460635382e-016j) :Calc sum(range(1,100+1)), "Gauss' famous identity sum(1,100)" 5050
These days, Vim Python support in Windows is usually via a dll, installed separately from Vim:
+python/dyn. Go to http://python.org/ to get the Python installer.
To check whether you have Python software that Vim can use (either statically linked or dynamically findable), do
:echo has('python') — 0 (zero) means "no", anything else (normally 1) means "yes".
If your Vim (7.2 or later) is compiled with +float, you can do scientific calculations in Vim even without Python.
- Use the numeric operators (except %) and floating point functions defined by Vim, see
- Exponentiation is pow(base,exponent), not
- :echo gives you 6-digit precision by default, use printf() for user-specified precision, up to about 15 significant digits on an Intel PC (I don't know how many on a Mac PPC or an an IBM System-z).
- If you can lay hands on (or compile) a Vim patched with Bill McCarthy's additional floating-point functions (#7 in the list), you won't need to know trigonometric formulas for "missing" functions such as tan(), asin(), atan2() etc., and you'll be able to use
exp(1)rather than a literal value for e.