Vim Tips Wiki
m (Remove redundant trailing spaces+ minor clean)
(Remove html character entities)
Line 15: Line 15:
 
These two lines go in your [[vimrc]]:
 
These two lines go in your [[vimrc]]:
 
<pre>
 
<pre>
:command! -nargs=+ Calc :py print &lt;args&gt;
+
:command! -nargs=+ Calc :py print <args>
 
:py from math import *
 
:py from math import *
 
</pre>
 
</pre>
Line 32: Line 32:
 
If you don't have Python support in your Vim, but do have a python command, use this instead
 
If you don't have Python support in your Vim, but do have a python command, use this instead
 
<pre>
 
<pre>
command! -nargs=+ Calc :!python -c "from math import *; print &lt;args&gt;"
+
command! -nargs=+ Calc :!python -c "from math import *; print <args>"
 
</pre>
 
</pre>
   

Revision as of 00:06, 30 September 2008

Tip 1235 Printable Monobook Previous Next

created May 20, 2006 · complexity basic · author Anon · version n/a


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 reduce(lambda a,b:a+b,range(1,100+1)), "Gauss' famous identity sum(1,100)"
5050

References

dll

These days, Vim Python support in Windows is usually via a dll, installed separately from Vim: :version shows +python/dyn. Go to http://python.org/ to get the Python installer.

Comments