jEdit 3.2final is now available from <http://www.jedit.org>. This
release has been in development for over four months and is a major
improvement over 3.1final.
jEdit 3.1final users should update their plugins after installing
3.2final, or problems might occur.
An overview of major changes since 3.1final follows.
- Multiple selection
- Quick copy
- Clipboard improvements
- Syntax highlighting improvements
- New version of BeanShell
- Search and replace improvements
- Positional parameters in abbreviations
- Better support for different character encodings
- File system browser improvements
- Plugin manager improvements
- Status bar
- Running BeanShell scripts on startup
- Edit server
- jEdit launcher for Windows
- Improved Java 2 compatibility
- Better MacOS X support
- Improved documentation
Older jEdit versions had two slightly confusing ways of remembering
positions in a buffer and returning to them later; markers and
registers. Markers were buffer-specific, saved across editing sessions,
and slightly cumbersome to use. Registers were global, not saved across
editing sessions, and quicker to use but less intuitive, primarily due
to the fact that they could be used to store chunks of text as well.
In jEdit 3.2, registers can no longer be used to remember positions;
they are for storing text only. Markers can now have single-character
shortcuts, which allows them to be added and returned to from the
A new 'Markers' top-level menu contains commands for manipulating
markers, as well as a list of markers in the current buffer.
By default, markers are saved across editing sessions, but that can be
disabled in the 'Global Options' dialog box.
* Multiple selection
Pressing Control+\ toggles multiple selection mode, where multiple
independent ranges of text can be selected and operated upon at the
* Quick copy
Alt-clicking in the text area (or, on systems with a three-button mouse,
clicking the middle mouse button without holding down Alt) inserts the
most recently selected text at the clicked location. This can be used to
quickly transfer text from one place to another using the mouse.
If jEdit is being run under Java 2 version 1.4 on Unix, you will be able
to use the quick copy feature to transfer text to and from other X
Windows applications that use the primary selection. Previously, one-way
transfer to jEdit was possible if the XClipboard plugin was installed;
XClipboard is now obsolete.
* Clipboard improvements
Two new commands, 'Cut Append' and 'Copy Append', add the selected text
to the existing clipboard contents, instead of replacing the clipboard
contents as the 'Cut' and 'Copy' commands do.
The existing 'Append to Register' command has been replaced with the
'Cut Append to Register' and 'Copy Append to Register' commands.
* Syntax highlighting improvements
A new 'Reload Edit Modes' command in the Utilities menu reloads all
syntax highlighting modes. This makes writing your own modes easier; you
no longer need to restart jEdit to see changes to mode files take
Syntax highlighting for the following file types has been added:
- MIPS R2000 assembly
- Progress 4GL
- Visual Foxpro
* New version of BeanShell
jEdit now bundles BeanShell 1.2beta1. Changes since BeanShell 1.01
include improved performance, cleaner internals, bug fixes, and a few
new language features.
* Search and replace improvements
The 'Find' command now pre-selects the 'current buffer' radio button in
the search and replace dialog box.
Two new commands, 'Search in Open Buffers' and 'Search in Directory',
pre-select the appropriate multi-file search settings.
Occurrences of the search string can now be replaced with the result of
a BeanShell code snippet that is evaluated for each occurrence. For
example, to convert HTML tags to lower case, perform a 'Replace All',
searching for the following regular expression:
Replacing it with:
"<" + _1.toLowerCase() + ">"
Version 1.1.3 of the gnu.regexp package is now included. This version
adds support for positive and negative lookaheads.
* Positional parameters in abbreviations
Positional parameters are an advanced feature that make abbreviations
much more useful. The best way to describe them is with an example.
Suppose you have an abbreviation "F" that is set to expand to the
for(int $1 = 0; $1 < $2; $1++)
Now, simply entering "F" in the buffer and expanding it will insert the
above text as-is. However, if you expand "F#j#array.length#", the
following will be inserted:
for(int j = 0; j < array.length; j++)
Expansions can contain up to nine positional parameters.
* Better support for different character encodings
Files can be loaded and saved with an encoding different from the
default using the commands in the 'Open With Encoding' submenu of the
File menu, or the 'Open With Encoding' submenu of the file system
browser right-click menu.
The current buffer's encoding is shown in the status bar, and the recent
file list remembers the encoding of recently-opened files.
The default encoding can still be set in the 'Global Options' dialog
box, as in previous versions.
* File system browser improvements
Icons can now be disabled in the 'Global Options' dialog box, which
saves a lot of screen space.
A 'Search in Directory' command, which displays a search and replace
dialog box configured to search in the current directory, has been added
to the file system browser's 'More' menu.
* Plugin manager improvements
The plugin manager now resolves dependencies automatically; for example,
installing the JCompiler plugin will automatically install the EditBus,
Console and ErrorList plugins, which the JCompiler plugin requires. In
addition, plugins which require a newer jEdit or Java version than what
you have are not shown in the 'Install Plugins' dialog box. These two
features make it virtually impossible to install an incompatible set of
For those with slow Internet connections, an option is available to only
download plugin binaries, without source code.
Finally, removing a plugin consisting of multiple JAR files will now
remove all JAR files, instead of just the primary JAR file as before.
* Status bar
A status bar has been added to views. The status bar shows miscellaneous
information, such as the current caret location, any prompts displayed
by marker and register commands, I/O status, and so on.
If the current line contains hard tabs, both the 'file' column location
(where each tab counts as one character) and 'screen' column location
(where each tab counts as multiple characters) are shown.
* Running BeanShell scripts on startup
Any .bsh files found in the 'startup' subdirectory of the jEdit
installation and user settings directories are run on startup. This
replaces the clunky 'startup macro' feature found in earlier jEdit
The -run command-line parameter can also be used to specify an
arbitriary script to run.
* Edit server
Other programs running on the same machine can send jEdit arbitriary
BeanShell code to execute. On multi-user machines, this does not open a
security hole, assuming file permissions are set up correctly, because
clients must first send an authorization key stored in the user settings
* jEdit launcher for Windows
When running on Windows, the jEdit installer now offers an option to
install a Windows-native launcher. The launcher allows file types to be
associated with it; it also adds commands to the Windows Explorer
right-click context menu for opening any file in jEdit. Finally, the
launcher adds an 'Uninstall' option for removing jEdit.
* Improved Java 2 compatibility
Previously, jEdit always used Java 1.1 AWT code to draw and measure
text. With some Java versions, this would result in problems such as the
caret being drawn in the wrong place.
Now, jEdit uses Java2D text code when running on Java 2. As a result
jEdit should work better in many cases. Additionally, anti-aliasing of
text can be enabled in the Text Area pane of the Global Options dialog
box. The AntiAlias plugin that did this with older jEdit versions is now
Previous versions of jEdit exhibited problems running under the newly
released Java 2 version 1.4 beta; these are now fixed.
* Better MacOS support
When running on MacOS, jEdit now uses the Command key as the primary
modifier, as opposed to Control.
jEdit now follows the Mac convention of having a Control-click display
On MacOS X, jEdit's menus are now added to the system menu bar, just
like with all other MacOS applications.
* Improved documentation
The user's guide has once again been restructured, expanded and revised.
The section on writing macros has seen some improvement, and a new
section on writing plugins has been added. This section describes the
construction of a sample plugin, QuickNotepad, the full source of which
can be found in the jEdit source code download.