NEdit (Versions 5.5, 5.4, 5.2 & 5.11)
Documentation
Features New in version 5.5 New in version 5.4 New in version 5.2 New in version 5.1 New in version 5.0 Getting Started Compatibility with previous versions |
NEdit is a standard GUI (Graphical User Interface) style text editor for programs and plain-text files. Users of Macintosh and MS Windows based text editors should find NEdit a familiar and comfortable environment. NEdit provides all of the standard menu, dialog, editing, and mouse support, as well as all of the standard shortcuts to which the users of modern GUI based environments are accustomed. For users of older style Unix editors, welcome to the world of mouse-based editing!
NEdit is freely distributed under the terms of the Gnu General Public License. It is available in both source and executable forms by anonymous ftp to ftp.nedit.org.
Documentation
- NEdit Help 5.5 Documentation (Local Online documentation)
- plain-text NEdit 5.5
documentation: nedit.txt
in directory
/net/appls/doc/nedit
. - NEdit Help 5.4 Documentation (Local documentation)
- plain-text NEdit 5.4
documentation: nedit.txt
in directory
/net/cluster/doc/nedit
. - NEdit Help (Version 5.1) (Local Online documentation)
-
Man
Pages:
nedit(1)
,nc(1)
in directory/net/appls/man/man1
. - NEdit Home Page
- NEdit Documentation
- NEdit Help Documentation
- NEdit FAQ
- NEdit Release Notes
For discussion with other NEdit users, or to receive notification of new releases and news about news, you can subscribe to one or both of the nedit mailing lists, discuss@nedit.org, and announce@nedit.org. The NEdit on-line help has information on subscribing under Help -> Mailing Lists.
If you have a question about NEdit, you may find the answer in the NEdit FAQ.
Features
Efficient, proven command set
- Very complete functionality. NEdit is the primary editor for thousands of Unix and VMS programmers
- Thorough consistency with Motif, MS Windows, and Macintosh conventions
- Designed for intensive use: keystroke efficiency, fast response time, streamlined interaction
- Unlimited undo
100% GUI from the ground up
- True multi-window, fully graphical design
- Mouse based editing
- Secondary/quick action selections
- Fully integrated rectangular selection
- Interactive WYSIWYG dragable selections
- Maximum compatibility with X, Motif, and inter-client protocols, for interaction with the widest possible range of X programs and systems.
Easy to learn
- Just point and type
- Capabilities are clearly organized and presented in top-level menus
- Comprehensive on-line help
- No special knowledge of X Windows required, all important options are GUI-settable within the program
Features for programmers
- State of the art syntax highlighting with built-in patterns for C, C++, Java, Ada, FORTRAN, Pascal, Yacc, Perl, Python, Tcl, Csh, Awk, HTML, LaTeX, VHDL, Verilog, and more.
- Auto-indent, programmable language-sensitive smart-indent
- Block indentation adjustment
- Parenthesis flashing and matching
- Find lines directly from compiler error output
- Tab emulation
- Unix ctags support
- Client/Server mode forintegration with software development tools
Programmable
- Learn / Replay
- Easy to use C-like macro language, safe and fully interruptable
- Includes a library of over 150 built-in editing functions
Easy installation
- Self contained single executable file
- Pre-built, tested executables available for Silicon Graphics, Sun (Solaris & SunOS), HP, Digital Unix, Ultrix, IBM AIX, Linux, and VMS systems
New in version 5.5
The most significant enhancements in this release are:
- The most important new feature is the introduction of window tabs.
- More efficient string search operations for the macro language.
- Auto-scrolling is now (partly) configurable through the preference menu.
- Find and Clear buttons for i-search bar.
- Faster user-defined menu creation.
- Open documents on current desktop.
- Superuser receives a warning when trying to overwrite a read-only file.
- Simplified global font resources.
- Macro language: added new $args[] array and removed 9 arguments limit for macros
- Improved Latex & Python syntax highlighting patterns
For a more detailed description of these new features and a list of important bug fixes, see the NEdit Release Notes for more details.
New in version 5.4
The most significant enhancements in this release are:
- Calltips
- Rangesets
- Backlighting
- Highlighting information macros
- Full mouse wheel support (on XFree86 servers)
- Look-behind matching for regular expressions
- Regular expression and syntax highlighting speed-ups
- Flexible resource file location
- Color dialog
- Option to auto-hide mouse pointer while typing
- Option to keep cursor away from top and bottom of the screen
- Check for real changes of externally modified files
- Synchronized interaction between nc and nedit
- Several smaller improvements on usability and speed
- Several smaller improvements to the macro language
New in version 5.2
The most significant enhancements in this release are:
- Added built-in patterns for CSS, XML, and regular expressions (Regex). Many other pattern updates.
- Support for high- and true-color systems. NEdit now will automatically select the best visual from your X server. This reduces the chance of running out of colors.
- New features in the Find and Replace dialogs:
- Replacement across multiple windows in a session.
- Case sensitivity may be set independently of regular expressions.
- A "Replace and Find" command, which saves keystrokes when doing a large-scale find & replace.
- Many new macro subroutines and variables.
- Multidimensional associative arrays for the macro language.
- Support for wheel mouse scrolling on servers that support it (XFree86).
New in version 5.1
The most significant enhancements in this release are:
- New regular expression code, boosts highlighting performance by 40%, and introduces many new and powerful features to regular expression operations and syntax highlighting.
- Incremental search, and optional search bar.
- New ctags code with full support for Exuberant Ctags, better handling of tag collisions, multiple tag file support, on-demand loading of tag files, and automatic reload of modified tag files.
- Optional display of line numbers along the left side of the text.
- NEdit can now read and write MS DOS format files.
- New built-in syntax highlighting patterns for Lex, PostScript, SQL, a greatly improved SGML/HTML pattern. Many minor improvements to other patterns.
- Improved international character set input.
- New macro subroutines: list_dialog, getenv, set_language_mode.
- Optional warnings about external modifications to files.
- Clearcase awareness.
- Session manager restart capability.
- Default language mode "*" for user-defined menu items, allows per-language variations on a common base.
- Allow additional modifiers like Sun diamond key in user defined accelerator.
- Option to sort open previous menu.
- -geometry and -iconic command line arguments act per-window, and can be specified via nc.
- -geometry now specified in characters, rather than pixels.
- -lm (language mode) command line option.
- Save As dialog defaults to same file name.
- Better default fonts for Linux system.
- .nedit file version mechanism to make future upgrades easier.
New in version 5.0
- Word-selection (double click) can be used to select ranges of delimiters.
- New built-in macro variables: $line, $column, and $modified.
- Smart-indent mode available for Python language.
- Minor improvements in default pattern sets for NEdit Macros, X Resources, and Sh/Ksh/Bash.
- Repeat-over-range, and repeat-to-end capability for repeating last. command and learn/replay sequence.
- Import capability for loading macro/shell menu commands, highlight patterns, and style sets created by other users.
- New macro language routines: string_to_clipboard, clipboard_to_string, toupper, tolower, variables: $em_tab_dist.
- Sorted Open Previous menu.
- Syntax highlighting. Built-in patterns for C, C++, Java, Fortran, Pascal, ada, Perl, Python, Tcl, Awk, Csh, HTML, LaTeX, VHDL, Verilog, and more.
- Programmable Smart indent. (Experimentally, at least. There are only macros for C and C++, and they may not fit everyone's programming style.)
- Completed macro extension language. (Simple C/awk-like syntax, safe, fully interruptable.)
- Language-sensitive preferences.
- Continuous wrap mode (long line wrapping), in addition to existing automatic-newline wrapping.
- User-defined menus can be hierarchical and language-sensitive.
- Configurable right-button pop up menu.
- Pan-scrolling.
- Searchable on-line help.
- Word boundary matching (<>) in regular expressions.
- Repeat command.
- More dialogs have up-arrow recall.
- White-space selection via double-click.
Getting Started
On-line help is available from the pulldown menu on the far right of the menu bar. Help sections of interest to new users are listed under the Basic Operation heading in the top-level Help menu:
- Selecting Text
- Finding and Replacing Text
- Cut and Paste
- Using the Mouse
- Keyboard Shortcuts
- Shifting and Filling
Programmers should also read the introductory section under the Features for Programming section:
If you get into trouble, the Undo command in the Edit menu can reverse any modifications that you make. NEdit does not change the file you are editing until you tell it to Save.
Running NEdit
If you are accessing a host Unix system from a remote workstation or X terminal, you need to set the Unix environment variable for your display (i.e. for csh or tcsh)
%
setenv DISPLAY devicename:0
where devicename is the network node name of the workstation or X terminal where you are typing.
Start NEdit by typing
"nedit
". You can specify a file or several files to edit on
the command line, but you can also open them from inside of
NEdit. If you don't specify a file name to edit, NEdit will
open a window titled "Untitled". You can create a new file
by typing into this window and choosing
Save or Save As... from
the File menu. There is no "main window"
in NEdit, all editor windows are equivalent, and NEdit
remains running as long as at least one window is open.
For more information on the syntax of the nedit command line, look under the heading of Help -> NEdit Command Line.
Note: Start NEdit Version 5.5 via commands nedit55
, NEdit Version 5.4 via
commands
nedit
and
nedit54
, NEdit Version 5.1.1 via
command nedit511
.
Changing Menu Accelerator Keys
The menu shortcut keys
shown at the right of NEdit menu items can be changed via X
resources. For example, to change Cut,
Copy and Paste to Ctrl+X
,
Ctrl+C
and Ctrl+V
you would add the following to your
.Xdefaults
file:
nedit*editMenu.cut.accelerator: Ctrl<Key>x
nedit*editMenu.cut.acceleratorText: Ctrl+X
nedit*editMenu.copy.accelerator: Ctrl<Key>c
nedit*editMenu.copy.acceleratorText: Ctrl+C
nedit*editMenu.paste.accelerator: Ctrl<Key>v
nedit*editMenu.paste.acceleratorText: Ctrl+V
Accelerator keys with optional shift key modifiers, like Find..., have an additional accelerator resource with Shift appended to the name. For example:
For details see the topics X Resources and Key Binding in NEdit Help.
nedit*searchMenu.find.acceleratorText: [Shift]Alt+F
nedit*searchMenu.find.accelerator: Alt<Key>f
nedit*searchMenu.findShift.accelerator: Shift Alt<Key>f
Compatibility with previous versions
Existing .nedit
Files
As of version 5.1, NEdit
employs a built-in upgrade mechanism which will
automatically detects .nedit
files of older
versions. In general, NEdit will try to convert and insert
entries to match the latest version. However, in certain
cases where the user has customized the default entries,
NEdit will leave them untouched (except for possible
syntactic conversions). As a result, the latest syntax
highlighting patterns for certain languages may not get
activated, for instance, if the user has customized the
entries. The latest default patterns can always be
activated through the Preferences -> Default
Settings -> Syntax Highlighting ->
Recognition Patterns menu, though.
Next, some version specific upgrading issues are listed. Note that non-incremental upgrading (eg., from 5.0 to 5.2) is supported too.
Upgrading from 5.4 to 5.5
- Changes in the widget hierarchy, possibly effecting
resource settings
In NEdit 5.4 and below, the widget hierarchy consisted of a separate widget tree for each window. This was rather unconventional and caused certain problems. In 5.5, the hierarchy was changed such that all widgets belong to a single tree with a single root widget.
For instance, with 5.4, the top of the widget hierarchy for a 2-window NEdit session looks as follows:
NEdit nedit
+-- XmMainWindow main
NEdit nedit
+-- XmMainWindow mainNEdit nedit
+-- TopLevelShell textShell
| +-- XmMainWindow main
+-- TopLevelShell textShell
+-- XmMainWindow main - Minor change to the regular expression word
boundary semantics
In 5.4, the semantics for word boundary regular expressions ('<', '>', and '\B') were changed to behave in a more intuitive way (see Upgrading from 5.3 to 5.4 below). However, this introduced an inconsistency between the regular expressions and several other places in NEdit where word boundaries were taken into account. Therefore, the changes were partially reverted to restore consistency, but without giving up the benefits of the more intuitive word boundary definition. More in particular, a boundary between two characters is now considered to be a word boundary only if exactly one of the characters is a delimiter. This change will have little or no consequences for most users.
Upgrading from 5.3 to 5.4
- Resource syntax
Basic colors, like the text foreground and background, are now true preferences. A new dialog (Preferences > Default Settings > Colors) is provided to change them, previously only changeable from X resources. Upon starting, NEdit will migrate any custom colors you have set from the old X resources. Most users will not need to do anything.
However, if you used X resources to dynamically change the colors on different invocations, you will need to use the new application-level resources instead. See the
.nedit
file for details.In 5.3, color resources needed to be qualified by "nedit*" in order to prevent problems when the deepest color visual was not the default. This is no longer necessary, and the qualification may be removed.
- New location of configuration files
The default location and name of NEdit's resource files has been changed. The most important change is the fact that they can now be stored in a custom directory, defined by the
NEDIT_HOME
environment variable. If the variable is not set, the directory defaults to~/.nedit
. The files have been renamed as follows:~/.nedit --> $NEDIT_HOME/nedit.rc
~/.neditmacro --> $NEDIT_HOME/autoload.nm
~/.neditdb --> $NEDIT_HOME/nedit.historyFor backward compatibility reasons, NEdit continues to use the old convention when these files are already present. No attempt is made to force the user to adopt the new convention.
Users that would like to migrate to the new setup can do so manually by moving and renaming the files.
- Changed regular expression word boundary semantics
and its effect on the syntax highlighting patterns.
During the 5.4 development cycle, it was noted that the implementation of NEdit's regular expression word boundary matching was rather unconventional. More in particular, the '<', '>', and '\B' patterns interpreted the boundary between any two characters of which at least one was not a word character as a word boundary. A striking effect of this was that the boundary between two spaces was considered to be a word boundary, which is obviously rather unintuitive. This has been corrected in 5.4: the boundary between two characters is a word boundary, only if exactly one of them is a word character.
Several of the built-in syntax highlighting patterns (implicitly) relied on the old word boundary interpretation and they have been corrected too.
However, if the user has customized some of these buggy built-in highlighting patterns, the automatic upgrading routines will NOT upgrade them in order not to loose any customizations. It is left up to the user to correct his/her customized patterns manually (using the corrected built-in patterns as a guideline).
The following is a list of all language modes and patterns that have been corrected:
So, if the user has customized the highlighting definitions for any of these language modes (not restricted to the listed patterns), (s)he is strongly advised to restore the default patterns in the syntax highlighting dialog and to re-apply his/her customizations.Ada: Based Numeric Literals
Awk: Numeric constant
C++: numeric constant
C: numeric constant
CSS: property, selector pseudo class
Java: decimal const, case numeric const
JavaScript: Numeric
Lex: numeric constant, markers
Matlab: Numeric const
NEdit Macro: Built-in Vars, Numeric Const
Pascal: TP Numeric Values:
Perl: dq string, sq string, bq string, subroutine call, numerics, re match
PostScript: Number, Operator1
Python: Number
SQL: data types, keywords2
Sh Ksh Bash: keywords, built ins
Tcl: Keywords
VHDL: Numeric Literals
Verilog: Reserved WordsA, Numeric Literals, Delay Word, Pins Declaration
XML: element declaration keyword
Yacc: numeric constant, percent keyword, markersMoreover, it is advised to check any custom language modes for potential boundary matching problems as described above.
Upgrading from 5.2 to 5.3
There are no major changes in the format of the
.nedit
file for version 5.2. Users that have customized the X Resources syntax highlighting pattern may consider restoring the default patterns, as they resolve a performance issue when editing the.nedit
file itself, for instance.
Upgrading from 5.1 to 5.2
There are no major changes in the format of the
.nedit
file for version 5.2. NEdit will try to insert additional entries for the newly supported language modes and syntax highlighting patterns (CSS, Regex, and XML) and highlight styles (Pointer, Regex, Warning). Moreover, the formerly boolean "showMatching" option will silently be converted to a tri-state value. Users that have customized some of the syntax highlighting patterns may consider restoring the default patterns, as many of them have been improved considerably.
Upgrading from 5.0 to 5.1
NEdit 5.1 makes significant changes to the syntax of regular expressions. Mostly, these are upward compatible, but two changes; introducing the brace operator, and changing the meaning of \0; are not. Brace characters must now be escaped with backslash, and & must be used in place of \0 in substitutions.
NEdit 5.1 employs a built-in upgrade mechanism which will automatically detect pre-5.1
.nedit
files and fix regular expressions which appear in user-defined highlight patterns. The automatic upgrade mechanism, however, can not fix regular expression problems within user-defined macros. If you have a macro which is failing under NEdit 5.1, you will have to fix it by hand.
Upgrading from pre-5.0
If you are upgrading from a pre-5.0 version of NEdit, there are significant changes to the macro language, and you are best off simply editing out the nedit.macroCommands section of your
.nedit
file, generating a new.nedit
file, and then re-introducing your user-written commands into the new file. Most macros written for previous versions will function properly under the new macro language. The most common problems with old macros is lack of a terminating newline on the last line of the macro, and the addition of "<", ">", and now "{" to the regular expression syntax. These characters must now be escaped with \ (backslash). Also, if you have been using a font other than the default for the text portion of your NEdit windows, be sure to check the Preferences -> Default Settings -> Text Font dialog, and select highlighting fonts which match your primary font in size. Matching in height is desirable, but not essential, and sometimes impossible to achive on some systems. When fonts don't match in height, turning on syntax highlighting will cause the window size to change slightly. NEdit can handle unmatched font sizes (width), but leaving them unmatched means sometimes columns and indentation don't line up (as with proportional fonts).