In the IPython notebook, we use the CodeMirror (http://codemirror.net/
At the same time, Ace (http://ace.ajax.org/
) is probably a better options for serious development. It is now being used by github for inline editing of code in repositories. On the downside, Ace is much bigger and only allows one editor on a page.
In the IPython notebook, we want the best of both worlds. To accomplish this we have implemented a new "Edit in Ace" functionality that lets you edit a single cell at a time using Ace. As the screen shot below shows, this mode gives you a nice clean UI for editing a large block of code. Currently we don't allow the Ace editor to be configured, but we plan on adding that in the future.