[Date Index]
[Thread Index]
[Author Index]
A new general-purpose interactive front end
*To*: mathgroup at smc.vnet.net
*Subject*: [mg16019] A new general-purpose interactive front end
*From*: Timo Felbinger <timof at uranos.quantum.physik.uni-potsdam.de>
*Date*: Sat, 20 Feb 1999 02:52:07 -0500
*Organization*: University of Potsdam
*Sender*: owner-wri-mathgroup at wolfram.com
Hello,
for quite some time, I have been looking for an alternative
interactive front end for Mathematica, and some weeks ago I
had the idea to use Vim (a free vi clone written by Bram
Moolenaar) for that purpose.
It seems to be working now (though still in alpha stage),
and everyone who
- uses Mathematica,
- isn't satisfied with the standard Notebook interface, but
- likes vi (or any vi-clone),
might have a look at it at
http://www.quantum.physik.uni-potsdam.de/TF/ml2vim.html
There you will find two different packages:
- A small auxiliary program `ml2vim' which "translates"
between Vim and the Mathematica kernel; you need the
mathlink developer's kit (usually part of every (?)
Mathematica distribution), version 3, to compile it;
- The patched sources of Vim 5.4c. This package contains
the full source of Vim, enhanced by code to allow Vim
to be used as a front end, in addition to the usual
functionality as a text editor.
---------- ---------- ------------------
| | -------> | | -------> | Mathematica |
| Vim | ASCII | ml2vim | mathlink | kernel |
| | <------ | | <------ | |
---------- ---------- -----------------
Some features:
- You have the superior editing capabilities of a high-end
programmer's editor at your fingertips; no mouse is required
(though there are rumors that Vim can even be used with a
mouse, if you really want to).
Commands like "evaluate from...to" or selections based on
regular expressions are no problem, and Vim comes with a
powerful builtin macro language.
- This frontend will run not only in xterms, but even on plain
text terminals and console screens.
- All input and output is pure ASCII, readable and visible in the
editor. There is no "hidden information", and thus no "corrupted
notebooks".
This also means that the conversion between interactive and
batch jobs is trivial.
- Unlike in the notebook interface, keyboard input will always
take priority over input from the Mathematica kernel, so the front
end remains responsive at any time. The editor is fully
operational while computations are going on, and any transfer
from Mathematica to the front end can easily be interrupted,
suspended or discarded at any time.
- This is free and open-source software, so if there is a feature
you would like to see, chances are it can be implemented.
The following is a fragment of an actual sample file:
>
> i[1] (4 + 7) * 13
> o[1]
> 143
>
> -------------------------------------
>
> i[3]
> InputForm[ Integrate[ x^4 * Exp[-x^2], {x,-Infinity,Infinity} ] ]
> o[3]
> (3*Sqrt[Pi])/4
>
> -----------------------------------------------
>
> i[26] Integrate[ x^4 * Exp[-x^2], {x,-Infinity,Infinity} ]
> o[26]
> 3 Sqrt[Pi]
> ----------
> 4
> -----------------------------------------------
>
> i[21] Integrate[ (x^3 + 4x) / (x^3 + 4*x - 7) , {x,-5,5} ]
> o[21]
> 3
> 4 x + x
> Integrate[-------------, {x, -5, 5}]
> 3
> -7 + 4 x + x
> m[21]
> Integrate::idiv:
> 3
> 4 x + x
> Integrate::idiv: Integral of ------------- does not converge on {-5, 5}.
> 3
> -7 + 4 x + x
>
> -----------------------------------------------
>
Be warned:
This is currently in a "alpha-stage" and comes purely "as-is",
whith no warranty whatsoever.
I have successfully built it under Linux/Intel and Tru64 Unix
(formerly known as Digital Unix) 4.0c.
Porting to other not-too-ancient Unix-like systems should not be
difficult.
It will currently not work under any version of Windoze.
Regards,
Timo
PS: Thanks to all who replied to my recent question in this group and
explained the difference between MLPutString and MLPutByteString
(MLPutString works fine)!
--
Timo Felbinger <Timo.Felbinger at quantum.physik.uni-potsdam.de>
Quantum Physics Group
Institute of Physics
University of Potsdam, Germany
Prev by Date:
**Re: Re: Bug?**
Next by Date:
**Re: Block-defined matrices**
Previous by thread:
**Re: "Display", "ESP" and "MathLink"**
Next by thread:
**telling DSolve to satisfy boundary conditions?**
| |