1 NEdit Version 5.5, October 2004
3 $Id: README,v 1.49 2006/11/22 21:16:55 yooden Exp $
6 NEdit is a multi-purpose text editor for the X Window System, which combines a
7 standard, easy to use, graphical user interface with the thorough functionality
8 and stability required by users who edit text eight hours a day. It provides
9 intensive support for development in a wide variety of languages, text
10 processors, and other tools, but at the same time can be used productively by
11 just about anyone who needs to edit text.
14 As of version 5.1, NEdit may be freely distributed under the terms of the GNU
15 General Public License:
17 This program is free software; you can redistribute it and/or modify it under
18 the terms of the GNU General Public License as published by the Free Software
19 Foundation; either version 2 of the License, or (at your option) any later
22 In addition, as a special exception to the GNU GPL, the copyright holders give
23 permission to link the code of this program with the Motif and Open Motif
24 libraries (or with modified versions of these that use the same license), and
25 distribute linked combinations including the two. You must obey the GNU General
26 Public License in all respects for all of the code used other than linking with
27 Motif/Open Motif. If you modify this file, you may extend this exception to your
28 version of the file, but you are not obligated to do so. If you do not wish to
29 do so, delete this exception statement from your version.
31 This program is distributed in the hope that it will be useful, but WITHOUT ANY
32 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
33 PARTICULAR PURPOSE. See the GNU General Public License for more details.
35 You should have received a copy of the GNU General Public License in the file
36 COPYRIGHT as part of this distribution; if not, write to the Free Software
37 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
40 NEdit sources, executables, additional documentation, and contributed software
41 are available from the NEdit web site at http://nedit.org.
46 NEdit was written by Mark Edel, Joy Kyriakopulos, Christopher Conrad,
47 Jim Clark, Arnulfo Zepeda-Navratil, Suresh Ravoor, Tony Balinski, Max
48 Vohlken, Yunliang Yu, Donna Reid, Arne Førlie, Eddy De Greef, Steve
49 LoBasso, Alexander Mai, Scott Tringali, Thorsten Haude, Steve Haehn,
50 Andrew Hood, Nathaniel Gray, and TK Soh.
52 The regular expression matching routines used in NEdit are adapted (with
53 permission) from original code written by Henry Spencer at the University of
56 The Microline widgets are inherited from the Mozilla project.
58 Syntax highlighting patterns and smart indent macros were contributed
59 by: Simon T. MacDonald, Maurice Leysens, Matt Majka, Alfred Smeenk,
60 Alain Fargues, Christopher Conrad, Scott Markinson, Konrad Bernloehr,
61 Ivan Herman, Patrice Venant, Christian Denat, Philippe Couton, Max Vohlken,
62 Markus Schwarzenberg, Himanshu Gohel, Steven C. Kapp, Michael Turomsha,
63 John Fieber, Chris Ross, Nathaniel Gray, Joachim Lous, Mike Duigou,
64 Seak Teng-Fong, Joor Loohuis, Mark Jones, and Niek van den Berg.
69 Version 5.5 offers one major new feature along with a few others:
71 - Tabbed Windows (How long has this been on the wish list? :-)
72 - A menu item for enabling auto-scrolling
73 - Find and Clear buttons for the interactive search bar
74 - Improved Latex & Python syntax highlighting patterns
75 - Superuser receives a warning when trying to overwrite a read-only file
76 - Various bug fixes and performance improvements
78 See the ReleaseNotes file for a more detailed description of these new features
79 and a list of bugs fixed in this version.
84 Pre-built executables will be available for many operating systems, including
85 most major Unix and VMS systems. Check out the NEdit web page at
89 If you have downloaded a pre-built executable you can skip ahead to the section called INSTALLATION. Otherwise, the requirements to build NEdit from the sources are:
91 - ANSI C89 system (compiler, headers, libraries)
92 - make utility (eg, GNU make)
93 - X11R5 development stuff (headers, libraries), or newer
94 - Motif 1.2 or above (Motif 1.1 might work, but is no longer supported)
95 This GUI library is a standard part on most systems which have an
96 X11 installation. Most commercial Unix systems feature this, others may
97 require a separate installation.
98 A "free" (LGPL'ed) alternative to Motif, called LessTif, is available.
99 See the LessTif section under PLATFORM SPECIFIC ISSUES for details.
101 Optionally one may use:
103 - yacc (or GNU bison)
106 The two directories called 'source' and 'util' contain the sources for NEdit.
107 'util' should be built first, followed by 'source'. The makefile in NEdit's
108 root directory can be used to build both in sequence if your system is one of
109 the supported machines and no modifications are necessary to the makefiles. To
110 build NEdit from the root directory, issue the command: 'make <machine-type>';
111 where <machine-type> is one of suffixes of a makefile in the directory
112 'makefiles'. For example, to build the Silicon Graphics version, type:
116 If everything works properly, this will produce two executables called
117 'nedit' and 'nc' in the directory called 'source'.
120 The Source Directories
122 Since executables are already available for the supported systems, you are
123 probably not just rebuilding an existing configuration, and need to know more
124 about how the directories are organized.
126 The util directory builds a library file called libNUtil.a, which is later
127 linked with the code in the source directory to create the nedit executable.
129 The makefiles in both source directories consist of two parts, a machine
130 dependent part and a machine independent part. The machine dependent makefiles
131 can be found in the directory called 'makefiles', and contain machine specific
132 header information. They invoke a common machine independent part called
133 Makefile.common (which in turn includes also Makefile.dependencies).
134 To compile the files in either of these directories, copy or link one of the
135 system-specific makefiles from the directory 'makefiles' into the directory,
136 and issue the command:
138 make -f Makefile.<machine-type>
140 (where <machine-type> is the makefile suffix). Alternatively, you can
141 name the file 'Makefile' and simply type "make".
143 If no makefile exists for your system, you should start from Makefile.generic,
144 which is extensively commented. Contact the developer at develop@nedit.org for
148 Building NEdit on VMS Systems
150 A command file is provided for compiling and linking files from all
151 source directories. To build on OpenVMS change directory into
152 [.makefiles] and run 'buildvms.com'.
156 Some C preprocessor macros may be used to en/disable certain parts
157 of the code. Usually this correponds to some non-important features
158 being selected or certain workarounds for platform-specifc problems.
159 Those which might be useful on more than one platform are documented
160 in makefiles/Makefile.generic.
162 Note that a special compilation flag, namely REPLACE_SCOPE, is currently
163 available. Its purpose is to allow the evaluation of two alternative
164 (but functionally equivalent) Replace/Find dialog box layouts.
165 By default, NEdit is built with a Replace/Find dialog containing 2 rows
166 of push buttons. Compiling with the REPLACE_SCOPE flag enables an
167 alternative layout with a row of radio buttons for selecting the scope of
168 the replace operations. Eventually, one of these alternatives will
169 probably disappear, but up to now, the NEdit developers have not been able
170 to decide which one to drop. Please give them both a try and let us know
171 which one you prefer (via the discuss mailing list, for instance).
173 Another compilation flag, HAVE__XMVERSIONSTRING, adds additional
174 information about the Motif version in the menu item "Help->Version" or
175 the command line option "-version". Whether this is available on your
176 system depends on the Motif implementation. It is known to work with
177 OpenMotif 2.1.30, and Motif on Solaris 2.6 and AIX 4.3.3.
181 NEdit consists of a single, stand-alone executable file which does not require
182 any special installation. To install NEdit on Unix systems, simply put the
183 nedit executable in your path.
185 To use NEdit in client/server mode (which is the recommended way of using it),
186 you also need the nedit client program, nc, which, again, needs no special
187 installation. On some systems, the name nc may conflict with the 'netcat'
188 program. In that case, choose a different name for the executable and simply
189 rename it. The recommend alternative is 'ncl'. Don't forget to put the
190 man-pages for nedit and nc into a place where your man command is able to find
191 them (e.g. /usr/man/man1/nedit.1), and don't forget to rename nc.man to ncl.man
192 if you've renamed nc to ncl.
194 On VMS systems, nedit and nc must be defined as a foreign commands so that they
195 can process command line arguments. For example, if nedit.exe were in the
196 directory mydir on the disk called mydev, adding the following line to your
197 login.com file would define the nedit command:
199 $ ned*it :== $mydev:[mydir]nedit.exe
203 To run NEdit, simply type 'nedit', optionally followed by the name of a file
204 or files to edit. On-line help is available from the pulldown menu on the far
205 right of the menu bar. For more information on the syntax of the nedit command
206 line, look under the heading of "NEdit Command Line".
208 The recommended way to use NEdit, though, is in client/server mode, invoked by
209 the nc executable. It allows you to edit multiple files within the same
210 instance of NEdit (but still in multiple windows). This saves memory (only one
211 process keeps running), and enables additional functionality (such as find &
212 replace accross multiple windows). See "Server Mode and nc" in the help menu
213 for more information.
215 If you are accessing a host Unix system from a remote workstation or X
216 terminal, you need to set the Unix environment variable for your display:
218 % setenv DISPLAY devicename:0
220 % export DISPLAY=devicename:0
222 where devicename is the network node name (hostname) of the workstation or X
223 terminal where you are typing.
224 On VMS systems, the equivalent command is:
226 $ set display/create/node=devicename
230 PLATFORM SPECIFIC ISSUES
232 Systems with LessTif, rather than Motif libraries
234 As of Lesstif 0.93.18, NEdit is very stable with Lesstif.
235 You can get the latest LessTif version from http://www.lesstif.org.
236 If you are having trouble building or running NEdit with LessTif,
237 remember there are pre-compiled statically linked executables available
239 Known bugs which might show off in NEdit linked with LessTif include:
241 1) Some dialogs which are intended to be modal (prevent other activity
242 while up) are not, and doing other actions while these dialogs are
243 up can cause trouble (.89.9+)
245 2) Switching to continuous wrap mode, sometimes the horizontal scroll
246 remains partially drawn after the change, rather than disappearing
247 completely as it should. (.89.9+)
249 3) Secondary selection operations are not yet supported in text fields.
251 4) Status bar is blank after usage of Incremental Search field
257 Red Hat Linux, as of version 8.0, no longer automatically reads X resources out
258 of the ~/.Xdefaults file. Instead, it reads a file named ~/.Xresources. Any
259 customizations stored in ~/.Xdefaults will not be honored, for all X
260 applications. To fix this, copy the resources into ~/.Xdefaults, or link the
263 The default key bindings for arrow keys in fvwm interfere with some of the
264 arrow key bindings in NEdit, particularly, Ctrl+Arrow and Alt+Arrow. You
265 may want to re-bind them either in NEdit (see Customizing -> Key Binding
266 in the Help menu) or in fvwm in your .fvwmrc file.
268 Some older Linux distributions are missing the /usr/X11R6/lib/X11/XKeysymDB
269 file, which is necessary for running Motif programs. When XKeysymDB is
270 missing, NEdit will spew screenfulls of messages about translation table syntax
271 errors, and many keys won't work. You can obtain a copy of the XKeysymDB file
272 from the contrib sub-directory of the NEdit distribution directory.
274 Linux binaries were built statically by default before NEdit 5.6. This has
275 changed with 5.6 to make better use of distribution-specific features. The
276 call 'make linux' will now create binaries dynamically linked to Motif or
277 Lesstif; calling 'make linux-static' will create static binaries.
282 NEdit is an X Window application and thus requires an X Window server, such as
283 Apple's X11.app or XFree86.org's XDarwin, to be running.
285 If you are building NEdit yourself, you will probably need to edit
286 makefiles/Makefile.macosx to select the correct version of Motif. There are
287 comments in the makefile to help you do this correctly. Note that the
288 developers use the OpenMotif 2.1.30 package available (at the time of writing)
289 at: http://msg.ucsf.edu:8100/~eric/
294 Beginning with IRIX 6.3, SGI is distributing a customized version of NEdit
295 along with their operating system releases. Their installation uses an
296 app-defaults file (/usr/lib/X11/app-defaults/NEdit) which overrides the
297 default settings in any new nedit version that you install, and may result in
298 missing accelerator keys or cosmetic appearance glitches. If you are
299 re-installing NEdit for the entire system, just remove the existing app-
300 defaults file. If you want to run a newer copy individually, get a copy of
301 the app-defaults file for this version the contrib sub-directory of the
302 distribution directory for this version on ftp.nedit.org (/pub/<version>/
303 contrib/nedit.app-defaults), and install it in your home directory or set
304 the environment variables XAPPLRESDIR or XUSERFILESEARCHPATH to point
305 to a directory and install it there. In all cases, the file should be
306 named simply 'NEdit'.
308 No additional installation or resource settings are necessary on IRIX systems
314 If you are using HPVUE and have trouble setting colors, for example part
315 of the menu bar stubornly remains at whatever HPVUE's default is, try setting:
317 nedit*useColorObj: False
322 Due to an optimizer bug in IBM's C compiler, the file, textDisp.c, must be
323 compiled without optimization on some AIX systems.
326 Solaris (SunOS 5.3 and beyond) Systems
328 The nedit_solaris executable may require the environment variable OPENWINHOME
329 to be set to the directory where Open Windows is installed. If this is not set
330 properly, NEdit will spew screenfulls of messages about translation table
333 Solaris 2.4 -- Add -DDONT_HAVE_GLOB to the CFLAGS line in Makefile.solaris.
335 Solaris 2.5 -- Solaris 2.5 systems were shipped with a bad shared Motif
336 library, in which the file selection dialog (Open, Save, Save As, Include,
337 etc.) shows long path names in the file list, but no horizontal scroll bar,
338 and no way to read the actual file names. Depending on your system, the
339 patch is one of ID# 103461-07, # 102226-19, or # 103186-21. It affects all
340 Motif based programs which use the library. If you can't patch your system,
341 you might want to just try the nedit_sunos executable (from ftp.nedit.org
342 /pub/<version>), which is statically linked with a good Motif. You can also
343 set the X resource: nedit.stdOpenDialog to True, which at least gives you a
344 text field where you can enter file names by hand.
346 Solaris 2.6 -- If you're experiencing performance problems (windows come up
347 slowly), the patch for Sun's shared Motif library is ID# 105284-04. Installing
348 the patch alone will improve nedit's performance dramatically. The patch also
349 enables a resource, *XmMenuReduceGrabs. Setting this to True will eliminate the
354 On some SunOS systems, NEdit will also complain about translation table syntax
355 errors. This happens when Motif can't access the keysym database, usually
356 located in the file /usr/lib/X11/XKeysymDB. If this file exists on your
357 system, but NEdit fails to locate it properly, you can set the environment
358 variable XKEYSYMDB to point to the file. If you can't find the file, or if
359 some of the errors persist despite setting XKEYSYMDB, there is a XKeysymDB
360 which you can use to update or replace your /usr/lib/X11/XKeysymDB file
361 available in the contrib sub-directory of the NEdit distribution directory.
362 If you don't want to change your existing XKeysymDB file, make a local copy
363 and set XKEYSYMDB to point to it.
365 If you find that some of the labeled keys on your keyboard are not properly
366 bound to the corresponding action in NEdit, try the following:
368 1) Get a copy of motifbind.sun (for Sun standard keyboards), or
369 motifbind.sun_at (for Sun PC style keyboards) from the NEdit contrib
370 directory on ftp.nedit.org:/pub/<version>/contrib.
371 2) Copy it to a file called .motifbind in your home directory.
372 3) Shutdown and restart your X server.
375 COMPATIBILITY WITH PREVIOUS VERSIONS
377 Existing .nedit Files
379 As of version 5.1, NEdit employs a built-in upgrade mechanism which will
380 automatically detects .nedit files of older versions. In general, NEdit
381 will try to convert and insert entries to match the latest version.
382 However, in certain cases where the user has customized the default entries,
383 NEdit will leave them untouched (except for possible syntactic conversions).
384 As a result, the latest syntax highlighting patterns for certain languages may
385 not get activated, for instance, if the user has customized the entries. The
386 latest default patterns can always be activated through the
387 Preferences->Syntax Highlighting->Recognition Patterns menu, though.
389 Next, some version specific upgrading issues are listed. Note that
390 non-incremental upgrading (eg., from 5.0 to 5.2) is supported too.
392 * Upgrading from 5.4 to 5.5
394 - Changes in the widget hierarchy, possibly effecting resource settings
396 In NEdit 5.4 and below, the widget hierarchy consisted of a separate
397 widget tree for each window. This was rather unconventional and caused
398 certain problems. In 5.5, the hierarchy was changed such that all widgets
399 belong to a single tree with a single root widget.
401 For instance, with 5.4, the top of the widget hierarchy for a 2-window
402 NEdit session looks as follows:
405 +-- XmMainWindow main
408 +-- XmMainWindow main
410 In 5.5, the same session results in the following tree:
413 +-- TopLevelShell textShell
414 | +-- XmMainWindow main
415 +-- TopLevelShell textShell
416 +-- XmMainWindow main
418 Users with advanced X-resource settings may be affected by this
419 change and may have to adapt their resource specifications.
421 - Minor change to the regular expression word boundary semantics
423 In 5.4, the semantics for word boundary regular expressions ('<', '>',
424 and '\B') were changed to behave in a more intuitive way (see Upgrading
425 from 5.3 to 5.4 below). However, this introduced an inconsistency between
426 the regular expressions and several other places in NEdit where word
427 boundaries were taken into account. Therefore, the changes were partially
428 reverted to restore consistency, but without giving up the benefits of the
429 more intuitive word boundary definition. More in particular, a boundary
430 between two characters is now considered to be a word boundary only if
431 exactly one of the characters is a delimiter.
432 This change will have little or no consequences for most users.
434 * Upgrading from 5.3 to 5.4
438 Basic colors, like the text foreground and background, are now true
439 preferences. A new dialog (Preferences > Default Settings > Colors) is
440 provided to change them, previously only changeable from X resources.
441 Upon starting, NEdit will migrate any custom colors you have set from
442 the old X resources. Most users will not need to do anything.
444 However, if you used X resources to dynamically change the colors on
445 different invocations, you will need to use the new application-level
446 resources instead. See the .nedit file for details.
448 In 5.3, color resources needed to be qualified by "nedit*" in order to
449 prevent problems when the deepest color visual was not the default.
450 This is no longer necessary, and the qualification may be removed.
452 - New location of configuration files
454 The default location and name of NEdit's resource files has been changed.
455 The most important change is the fact that they can now be stored in a
456 custom directory, defined by the NEDIT_HOME environment variable. If the
457 variable is not set, the directory defaults to ~/.nedit.
458 The files have been renamed as follows:
460 ~/.nedit -> $NEDIT_HOME/nedit.rc
461 ~/.neditmacro -> $NEDIT_HOME/autoload.nm
462 ~/.neditdb -> $NEDIT_HOME/nedit.history
464 For backward compatibility reasons, NEdit continues to use the old
465 convention when these files are already present. No attempt is made
466 to force the user to adopt the new convention.
468 Users that would like to migrate to the new setup can do so manually
469 by moving and renaming the files.
471 - Changed regular expression word boundary semantics and its effect
472 on the syntax highlighting patterns.
474 During the 5.4 development cycle, it was noted that the implementation
475 of NEdit's regular expression word boundary matching was rather
476 unconventional. More in particular, the '<', '>', and '\B' patterns
477 interpreted the boundary between any two characters of which at least
478 one was not a word character as a word boundary. A striking effect of this
479 was that the boundary between two spaces was considered to be a word
480 boundary, which is obviously rather unintuitive. This has been corrected
481 in 5.4: the boundary between two characters is a word boundary, only if
482 exactly one of them is a word character.
484 Several of the built-in syntax highlighting patterns (implicitly) relied
485 on the old word boundary interpretation and they have been corrected too.
487 However, if the user has customized some of these buggy built-in
488 highlighting patterns, the automatic upgrading routines will NOT upgrade
489 them in order not to loose any customizations. It is left up to the user
490 to correct his/her customized patterns manually (using the corrected
491 built-in patterns as a guideline).
493 The following is a list of all language modes and patterns that have been
496 Ada: Based Numeric Literals
497 Awk: Numeric constant
498 C++: numeric constant
500 CSS: property, selector pseudo class
501 Java: decimal const, case numeric const
503 Lex: numeric constant, markers
504 Matlab: Numeric const
505 NEdit Macro: Built-in Vars, Numeric Const
506 Pascal: TP Numeric Values:
507 Perl: dq string, sq string, bq string, subroutine call,
509 PostScript: Number, Operator1
511 SQL: data types, keywords2
512 Sh Ksh Bash: keywords, built ins
514 VHDL: Numeric Literals
515 Verilog: Reserved WordsA, Numeric Literals, Delay Word,
517 XML: element declaration keyword
518 Yacc: numeric constant, percent keyword, markers
520 So, if the user has customized the highlighting definitions for any of
521 these language modes (not restricted to the listed patterns), (s)he is
522 strongly advised to restore the default patterns in the syntax
523 highlighting dialog and to re-apply his/her customizations.
525 Moreover, it is advised to check any custom language modes for potential
526 boundary matching problems as described above.
528 * Upgrading from 5.2 to 5.3
530 There are no major changes in the format of the .nedit file for version
531 5.2. Users that have customized the X Resources syntax highlighting
532 pattern may consider restoring the default patterns, as they resolve
533 a performance issue when editing the .nedit file itself, for instance.
535 * Upgrading from 5.1 to 5.2
537 There are no major changes in the format of the .nedit file for version
538 5.2. NEdit will try to insert additional entries for the newly supported
539 language modes and syntax highlighting patterns (CSS, Regex, and XML) and
540 highlight styles (Pointer, Regex, Warning).
542 Moreover, the formerly boolean 'showMatching' option will silently be
543 converted to a tri-state value.
545 Users that have customized some of the syntax highlighting patterns may
546 consider restoring the default patterns, as many of them have been improved
549 * Upgrading from 5.0 to 5.1
551 NEdit 5.1 makes significant changes to the syntax of regular expressions.
552 Mostly, these are upward compatible, but two changes; introducing the brace
553 operator, and changing the meaning of \0; are not. Brace characters must now
554 be escaped with backslash, and & must be used in place of \0 in
557 NEdit 5.1 employs a built-in upgrade mechanism which will automatically
558 detect pre-5.1 .nedit files and fix regular expressions which appear in
559 user-defined highlight patterns. The automatic upgrade mechanism, however,
560 can not fix regular expression problems within user-defined macros. If you
561 have a macro which is failing under NEdit 5.1, you will have to fix it by
564 * Upgrading from pre-5.0
566 If you are upgrading from a pre-5.0 version of NEdit, there are significant
567 changes to the macro language, and you are best off simply editing out the
568 nedit.macroCommands section of your .nedit file, generating a new .nedit
569 file, and then re-introducing your user-written commands into the new file.
570 Most macros written for previous versions will function properly under the
571 new macro language. The most common problems with old macros is lack of a
572 terminating newline on the last line of the macro, and the addition of "<",
573 ">", and now "{" to the regular expression syntax. These characters must now
574 be escaped with \ (backslash). Also, if you have been using a font other
575 than the default for the text portion of your NEdit windows, be sure to
576 check the Preferences -> Default Settings -> Text Font dialog, and select
577 highlighting fonts which match your primary font in size. Matching in height
578 is desirable, but not essential, and sometimes impossible to achive on some
579 systems. When fonts don't match in height, turning on syntax highlighting
580 will cause the window size to change slightly. NEdit can handle unmatched
581 font sizes (width), but leaving them unmatched means sometimes columns and
582 indentation don't line up (as with proportional fonts).
586 More information is available in the file nedit.doc in this kit, from NEdit's
587 on-line help system, the man-pages and from the enclosed FAQ file.
588 There is also a web page for NEdit at: http://nedit.org. For discussion with
589 other NEdit users, or to receive notification of new releases you can
590 subscribe to one or more of the NEdit mailing lists, announce@nedit.org,
591 discuss@nedit.org or develop@nedit.org. The NEdit on-line help has information
592 on subscribing under Help -> Mailing Lists.
598 The preferred way to report bugs is to submit an entry on our web-based
601 http://sourceforge.net/projects/nedit/
603 The NEdit developers subscribe to both discuss@nedit.org and develop@nedit.org,
604 either of which may be used for reporting bugs. If you're not sure, or you
605 think the report might be of interest to the general NEdit user community,
606 send the report to discuss@nedit.org. If it's something obvious and boring,
607 like we misspelled "anemometer" in the on-line help, send it to develop. If
608 you don't want to subscribe to these lists, please add a note to your mail
609 about cc'ing you on responses.