Vim Tips Wiki
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
FANDOM
Fan Central
BETA
Games
Anime
Movies
TV
Video
Wikis
Explore Wikis
Community Central
Start a Wiki
Don't have an account?
Register
Sign In
Sign In
Register
Vim Tips Wiki
1,649
pages
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
Editing
Scientific calculator
Back to page
Edit
Edit source
View history
Talk (0)
Edit Page
Scientific calculator
We recommend that you
log in
before editing. This will allow other users to leave you a message about your edit, and will let you track edits via your
Watchlist
.
Creating an account
is quick and free.
The edit appears to have already been undone.
Anti-spam check. Do
not
fill this in!
{{TipImported |id=1235 |previous=1234 |next=1237 |created=2006 |complexity=basic |author= |version=6.0 |rating=145/49 |category1=Python |category2= }} Here is how to define and use a calculator, using embedded Python. These two lines go in your [[vimrc]]: <pre> :command! -nargs=+ Calc :py print <args> :py from math import * </pre> Now use it inside Vim: <pre> :Calc 2**10+5,2**16,2**128 1029 65536 340282366920938463463374607431768211456 :Calc sin(pi/2), log(10) 1.0 2.302585 </pre> You have to have Vim compiled with Python support, and have Python on your machine[[#dll|β ]]. Use <code>:version</code> 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 <pre> command! -nargs=+ Calc :!python -c "from math import *; print <args>" </pre> You also get complex numbers and other goodies. Google for Python and math. Here is an example from complex math: <pre> :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 </pre> ==References== *http://docs.python.org/lib/module-cmath.html *http://mathworld.wolfram.com/EulerFormula.html ===dll=== These days, Vim Python support in Windows is usually via a dll, installed separately from Vim: <code>:version</code> shows <code>+python/dyn</code>. 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 <code>:echo has('python')</code> β 0 (zero) means "no", anything else (normally 1) means "yes". ==Comments== If your Vim (7.2 or later) is compiled with {{help|+float|prefix=no}}, you can do scientific calculations in Vim even without Python. * Use the numeric operators (except %) and floating point functions defined by Vim, see ** {{help|expr5}} ** {{help|expr6}} ** {{help|expr7}} ** {{help|function-list}} and scroll down to <code>Floating point computation</code> * Exponentiation is {{help|pow()|pow(|prefix=no}}base,exponent), not <code>**</code> * {{help|:echo|prefix=no}} gives you 6-digit precision by default, use {{help|printf()|prefix=no}} 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 [http://groups.google.com/group/vim_dev/web/vim-patches 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 <code>acos(-1)</code> rather than <code>4*atan(1)</code> for ''Ο'', <code>exp(1)</code> rather than a literal value for ''e''. :β [[User:Tonymec|Tonymec]] 03:27, May 5, 2010 (UTC) :*These extra floating point functions will be part of Vim 7.3. They were included in the pre-release on [http://code.google.com/p/vim/source/detail?r=a8afba7027ae49fa057927ffc00cbdf76a76a4ba May 21, 2010]. [[User:JamesVega|JamesVega]] 18:53, May 21, 2010 (UTC)
Summary:
Please note that all contributions to the Vim Tips Wiki are considered to be released under the CC-BY-SA
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Help
(
view source
)
Template:Navigation
(
view source
)
Template:TipImported
(
view source
)
Follow on IG
TikTok
Join Fan Lab