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