You have a system at work where only vim, emacs and the like are installed.
Do not argue with the system administrator. You can easily install NEdit locally
in your home directory: Create a subdirectory, e.g. bin. Download the NEdit
binaries for your system from NEdit.org. Copy the
binaries nedit and nc to bin. Now you can run NEdit with
& or from other directories with
~/bin/nedit &. (Make
sure that the file is executable. It should be already when you unpack it. If not
In order to use nc, add the entry
nc.serverCommand: ~/bin/nedit -server to the
.Xresources file in your home directory (or create such a file, if
it should not be there already). Then give in
xrdb .Xdefaults, so
that the new X settings take effect. Now you can start NEdit with
~/bin/nc without your system administrator knowing. Of course, if you add
~/bin to the start of your
PATH variable, you can simply type
You are working with many files at the same time.
NEdit v5.5 has a
Mozilla like tabbed interface. If you work with really many files, perhaps
can help. (Notice that NEdit needs to be in server mode, i.e.,
start NEdit through nc.)
If there is some relation between the files you work on, for example a webpage, or a program split over many files, the project macros may help.
You are writing your own macro functions and want to debug them.
You can check a newly written macro function by simply loading it from the File
Menu. Suppose you have a macro function in the file
my_function.nm. Go to
the File Menu and invoke Load Macro File. In the dialog choose
my_function.nm and load it. If you have edited your macro, simply re-load
it. Even better there is a macro doing this for
Global variables in macro menu definitions
Sometimes you may need a global variable in a macro, such that the value
of the variable can be recalled when the macro runs next time. But you have
the problem that the variable can not be initialised to a start value there,
because calling the macro again would overwrite the actual value that you need
(that's why you use a global variable) with the start value again. The known
solution is to initialise the variable in the autoload macro file
autoload.nm). However this is often annoying, especially for short
macros. Assume for example that you want to create a second clipboard (in addition
Ctrl+X,C,V). It looks simple: For cutting and copying we have
$clip = get_selection() delete_selection(),and
$clip = get_selection()respectively. However the macro for pasting,
if ($clip != "") insert_string($clip)will give an error, unless the variable
$clipexists. So to correct it, you had to initialise
$clip = ""in
However, since NEdit supports arrays, there is a trick to avoid it. We can write
$clip[""] = "" if (!(1 in $clip)) $clip = "" if ($clip != "") insert_string($clip)Here the first line is an unused dummy value. This line only ensures that the array
$clipexists. Then the second line is valid, and initialises the actual variable to store our copied or cut string for later pasting, which now is an array entry, namely
$clip. Of course, in the copy and cut macros, you have to replace
$clip. (By the way, the number 1 only indicates that you can have a whole lot of clipboards in the same way.)
Another example is the simple word completion macro, derived from NEdit's built-in word completion.
You are working with a variety of programming and/or mark-up languages.
You can make macros language dependent. Simply add a
@[language] to the
name of the menu entry for the macro, where
[language] stands for a
language mode of NEdit, e.g. C, C++, LaTeX, SGML HTML, XML and so on. If the macro
shall be present for more than one language mode add
@[language1]@[language2] and so on. Notice that short-cuts for a menu
entry are only active in the language mode in which the menu entry is defined. So
you can give the same short-cuts many times (for different language modes).
If you have a macro that shall be there for all language modes, except a few ones which need a slightly modified version of the macro, you can use
this macro and overwrite it with the special versions that get the same menu name
@[language] behind it.