NEdit is something new in a Linux programmer's editor.

NEdit is a work in progress and appears to have some memory allocation problems. I've had several segmentation violations while running it, and the file selection box sometimes loses its state entirely during a long run with many files open, requiring exit and restart before it becomes useful again. These problems have not been severe or frequent enough to prevent me from making daily use of NEdit for some months now, in preference to several other more stable but less usable editors.

It is possible the problems I've observed originate with the Motif to which my copy was linked.

Release 4.0.2 may be out by the time this article reaches press, with some bug fixes and perhaps one or two new features. [It is. Dan says that 4.0.2 is mostly a bugfix release, though syntax colorization is being actively worked on, and an alpha version of colorizing NEdit is available from—Ed.]

The default key bindings under Linux required some tinkering to get them to where I wanted them, with the Backspace key deleting to the left of the cursor, the Delete key deleting right, and the Insert key toggling between insert and overstrike modes. This and other customizations were accomplished using only the information available from the help button, however, without resorting at all to the man page.

The user who is accustomed to syntax highlighting won't find it here, though Mark Edel informs me dynamic syntax highlighting is a frequently requested feature. There is a working prototype of this, with continuous incremental re-parsing, on the fly. The syntax highlighting, and also a more complete macro capability, are targeted for release early in 1997.


About 95% of the ongoing work on this editor is performed by Mark Edel. He's willing to incorporate volunteers, who have greatly aided the project with many bug fixes and help with porting NEdit to most flavors of Unix. However, he writes:

Volunteers are certainly appreciated, with a couple of minor caveats. It is very important to keep the NEdit interface simple, and code that goes gonzo on obscure features faces certain rejection.

He also indicates that the cross-platform nature of this editor makes robust code difficult for many volunteers to write, often requiring rewrite by the core developers before it can be incorporated into the main distribution.

At this point, volunteers are being actively sought to provide emacs bindings for menus and translations, and several ancillary tools, such as ctags and call tree browsers.


Keypad support is good, with the Insert, Delete, Home, End, Page Up, Page Down and arrow keys all doing reasonable things.

Ever struggle with some editor's notion of how a C comment block should look? Seems like nobody gets it quite right, and nobody handles all the oddball cases. Now, with NEdit, I can take a typical function header as in the illustration, and with just a few mouse clicks and keystrokes convert this into a much neater form.

In the first figure, I've selected a region to justify. The width of the selection gives the resulting width, with portions of lines to the right folded in. As you can see, there are tear-off menus, and almost everything you need to learn or remember about this editor is shown there.

Figure 1. Selecting a Region in a C Comment Block

The second figure shows the text after justification. One justified block has been dragged, and a linear selection is shown, as I am about to hit the Backspace key to delete it.

Figure 2. After Justifying the Region

Ctags are supported. Vertical and horizontal Motif scrollbars are present. Windows may be split, and multiple windows may be opened into different files. Regular expression support includes full egrep regular expressions, though find and replace are the only actions available on regular expression matches. Undo-redo extends to the beginning of session, even through file saves.

Vi users will appreciate that the ESC key mostly does nothing. After a while you get over punching ESC constantly, and at that point you might remap the key to something useful.

Some nice touches for programmers allow you to select the line number in an error listing from a compiler shown in an X window, then go to NEdit and locate that like number with just a CTRL-E. “Search” likewise allows searching for text selected in some other window. “Tag” search likewise will pick up a selection from another window. So will ''file open'', in which you select text containing a file name, then open that file using CTRL-Y.

Fairly detailed customizations including key rebinding, and some scripting may be accomplished using X resources. Minimal macro support is available with the current version (4.0.1). Shell escapes may be used to run scripts on the edit text.

Of near-production quality editors I've used, NEdit is the easiest to learn. This is partly because the keyboard command set is sparse, and partly because the menu bar at the top gives the keyboard accelerators for most of the common actions. After you've looked an action up several times in the pull-down menus, you may remember the keyboard accelerator and not need the menus. On-line help is well indexed; terse, but complete. For the most part, neither novice nor expert need refer often to the very excellent and detailed man page.