# Usage Questions

This section deals general usage of jEdit, including customisation.

Abbreviations

How can I create abbreviations on the fly as I type?

Type the form of abbreviation you wish to use, then without pressing the SPACE key, press CTRL ; . A dialog will appear for entering text that goes before and after the editing caret. For example, you can insert an opening HTML or XML tag before the cursor and its corresponding closing tag after the cursor. Use the mouse to select Add global or Add mode-specific. The first choice makes the abbreviation available for all documents; the second makes it available only in documents with the same editing mode as the current document. In this way, you can add abbreviations that operate only a particular class of documents, for example, Java source files or XML markup. Either way, the abbreviation will be stored for future use.

How can I have abbreviations expanded automatically as I type?

Select Utilities>Global Options, then select the Abbreviations option pane. You will see a checkbox option for Space bar expands abbrevs. Here you can also add, modify and delete abbreviations on a global basis or for individual editing modes.

Clipboard features

Can I copy selections from more than one location in a document (or more than one document) and paste the aggregate text in one operation?

The Cut Append ( CTRL E CTRL U ) and Copy Append ( CTRL E CTRL A ) both add the selected text to the existing contents of the Clipboard. A single Paste ( CTRL V ) command will insert the aggregated text at the cursor or in place of an existing selection.

File Attributes

Does jEdit preserve file ownership and permissions when it saves files?

One reason this can be an issue is that by default, jEdit adopts the conservative approach of saving a file to a temporary name before renaming that file to the desired name. This procedure minimizes the risk of crashes causing loss of data, and works without reported problems on local file systems. However, when files are served remotely by FTP, Samba or other means, it may not be possible to preserve file attributes on the server because the newly created temporary file's owner may differ from the owner of the original file on the server.

To avoid this problem, you can disable the two-step file saving routine. Select Utilities>Global Options, then under Loading & Saving, clear the checkbox for Two-stage save.

Why does jEdit ignore my choice for line separator characters when I save a file?

When jEdit saves an existing file, it uses the line separator already used by the file. The line separator designated in the buffer options or elsewhere is used only for new files.

Can jEdit auto-detect character encodings when it opens a file?

Only Unicode can be detected when a file is loaded. For other encodings, you must specify the encoding when the file is loaded if you do not wish to use the default encoding for your operating system.

There are a few features that can help you navigate through encoding issues. You can select the encoding you wish to use from Encoding in the Commands menu of the File System Browser. You can also designate a default encoding in the Loading & Saving pane of the Global Options dialog; if you do not, jEdit adopts your operating system's default encoding as its own default. You can change the encoding used to save an individual file by selecting Utilities>Buffer Options and changing the current buffer's properties. Finally, jEdit keeps track of the encodings used in the files named in the File>Recent Files drop-down list.

These features allow you to minimize the attention given to character encodings, but you must still pay some attention if you do not want to use default settings.

I'm using the iso-8859-1 character encoding. How do I type and save the Euro sign (€)?

You need to use instead the iso-8859-15 character set, which is a modification of iso-8859-1 that includes the Euro sign and some Finnish and French characters. The Euro sign represents character value 0xA4 in this 8-bit set. To open a file manually using this encoding, select File>Open... , and select ISO8859_15 from Commands>Enconding before opening the file.

There is a startup script in the Downloads area of jEdit Community named `euro.bsh` that can be used as a startup script to help simplify the insertion of the Euro symbol if your keyboard currently lacks a dedicated key.

File Management

How can I open files in jEdit using drag and drop?

Try installing the Drag and Drop plugin using the Plugin Manager feature. It works with most (but not all) combinations of operating systems and current Java runtime environments.

How do I add and remove directories to the list of favorites in jEdit's File System Browser?

To add a directory to the list of favorites, navigate so that the directory is at the top of the tree displayed in the File System Browser window, click the Favorites button, and select Add to favorites from the resulting menu. To delete a directory from the favorites list, use the same menu to go to the favorites list. Right-click on the directory to be deleted and select Delete. This operation will delete the directory from the list of favorites but will have no effect on the directory itself.

How do I associate particular file types with jEdit so I can open them by double clicking their icons in Windows Explorer?

You associate the file extension with `<jEdit installation directory>\jedit.exe`. This can be done from the File Types tab in the Windows Explorer's Tools -> Folder options... menu.

The EXE-installer for Windows includes a custom context menu handler. It will provide menu items for using jEdit any time you right-click on a file icon in Windows Explorer. This feature does not interfere with any existing file associations.

Can I restrict jEdit to opening and saving files in a single directory without changing file permissions?

The easiest way to get this kind of behavior is to use macros that open the Virtual File Browser to a specific, fixed directory, and then change the default keyboard shortcuts for opening and saving files to run these macros.

On Windows, how can I change the name of my file from `myfile.txt` to `MyFile.txt`?

The Windows native file system deals with file names in a case-insensitive manner, so `myfile.txt` and `MyFile.txt` refer to the same file. As a result, the jEdit file browser treats both spellings identically and does not make a name change. Using our example, the easiest workaround is to rename the file in two steps: first to `_myfile.txt`, then to `MyFile.txt`.

Formatting text

How do I indent or unindent selections of text?

Using jEdit's default configuration, you can indent a selection of text by pressing ALT RIGHT . Unindent a selection by pressing ALT LEFT .

Is there a way to automatically view line numbers when a buffer is opened?

Select Utilities>Global Options, and in the Gutter option pane select the Line Numbering check box.

Does jEdit know smart quotes? In .tex files I would like to use ```` or `''` instead of `"`.

While jEdit can display any character provided by a supported encoding set and enter any character supported by a keyboard driver, it does not have the ability to insert smart quote pairs automatically as some word processors do. This would require a BeanShell macro to modify quoted text.

The Accents and CharacterMap plugins can also help you type international characters.

You also have the option of using a TeX macro (or, in LaTeX, a pair of environment tags) to have the standard double quotation mark `"` transformed into the appropriate opening or closing smart quotes without the need to keep track of when quoted text opens or closes.

Does jEdit have a soft wrap text mode?

jEdit's 4.3's soft wrap mode, and especially its wrap to margin=0, is one of its many features that just works better than it does in most other editing environments. Soft Wrap with margin=0 was unavailable in jEdit 4.2, but users of 4.1 will remember it well. When you set SOFT WRAP with a margin=0, you don't need to use the horizontal scroller anymore. It's just as simple as that.

jEdit wrap capability can be activated for a specific buffer, specific editing modes, or for all documents by default. In prior versions, both the text wrap feature and the Edit>Text>Format Paragraph command insert hard end of line characters. This hard wrap feature remains available as an option for buffers and editing modes.

The display of spaces as a character in the editor is annoying. How can I disable those small square boxes?

This is controlled by the WhiteSpace plugin. To change your settings to disable display of whitespace characters, select Utilities>Global Options, then select Plugin options>WhiteSpace. You can separately configure the display of spaces, tabs, and other whitespace characters.

Does jEdit support i18n?

When editing text documents, jEdit supports any available encoding scheme, and can open files with a specified encoding other than the default encoding of your operating system using the Commands>Encoding from the File System Browser.

With respect to menu labels, message strings and other GUI elements, the jEdit project team currently does not have the resources to maintain multiple property sets in languages other than English, particularly since the development effort is continuing at a rapid pace. There has not been great demand for this in any event. This may be because jEdit is primarily a tool for programmers, and the use of English as a common first or second language is widespread in the global programming community. This decision may be reconsidered when the application has further matured and if more individuals express a willingness to be involved in translation work.

Compiling source code

How do you set the classpath for compiling Java files in jEdit?

The classpath can be set from ProjectViewer's project properties on a per-project basis. The ClassPath plugin provides this option pane to ProjectViewer. JavaSideKick uses it for completion, and other Java plugins should also. At the time of writing, the JCompiler plugin needs to be updated to use it, for example.

How do I compile my Java source in JEdit?

There are a number of plugins that you can use to compile Java source code. You can run a Java compiler on the command line in the System shell of the Console plugin. When JCompiler is updated, you can use that again. Many Java projects can be built with Apache Ant, and that is how we build jEdit. You can use the Ant commandos from the Console plugin to run ant from jEdit, and parse the error messages for ErrorList. Also, the Antelope or AntFarm plugins provide a more Eclipse-like GUI front-end for Apache Ant. Apache Ant uses a `build.xml` file to specify build commands and dependencies.

How do I create a new edit mode?

Take a look at the Writing Edit Modes section of the User's Guide. Basically, you have to write an XML file containing data on the mode's file extensions and buffer and syntax highlighting properties, then add information about the new mode file to a second XML file containing a catalog of modes.

Does jEdit support DocBook tags?

The application contains editing modes for both SGML and XML. Using jEdit abbreviations, you can quickly insert commonly-typed tags with a couple of keystroke. There are a number of abbreviations in the XML and SGML modes that create pairs of DocBook tags on the fly.

You can get validation, tree-browsing, auto-complete, and auto-closing tags with the XML plugin, a very advanced XML editing tool.

With whe XInsert or Template plugin you can create multi-layered DocBook elements.

There are other macros targeting DocBook available from the jEdit Community web site that you can use or adapt for your own purposes.

Tips for Emacs users

For more emacs help, check out this site for more emacs macros.

Can I have an emacs style tab key (tab anywhere in a line re-indents it)?

Yes. You can do this by rebinding the tab key to `Indent Selected Lines` in the Global Options.

How do I map Ctrl-E to go to the end of the line?

jEdit has it set up as a 2-key shortcut. In order to make Ctrl-E a one-key shortcut again, you first have to redefine all of the Ctrl-E prefix shortcuts to mean something else.

`jedit_keys.props` shows you all of the current keyboard bindings. As you can see, Ctrl-e is used for many things in jEdit. If you want to redefine it to be a single-key shortcut, first thing you need to do is decide on another Ctrl-key to use as a prefix, to redefine jEdit's fold features. I recommend using Ctrl-Q as the prefix, and if you want to use Ctrl-Q to quit, you have to hit Ctrl-Q twice. Cut and paste the below shortcuts into your own properties file.

    # emacs end of line
    end.shortcut2=C+e
    # Ctrl-Q twice to quit
    exit.shortcut=C+q C+q
    # C+q is our new C+e prefix
    #{{{ C+q C+X

    # Unused: f, h, q, y
    copy-append.shortcut=C+q C+a
    search-in-open-buffers.shortcut=C+q C+b
    range-comment.shortcut=C+q C+c
    search-in-directory.shortcut=C+q C+d
    replace-and-find-next.shortcut=C+q C+g
    ignore-case.shortcut=C+q C+i
    scroll-to-current-line.shortcut=C+q C+j
    line-comment.shortcut=C+q C+k
    select-line-range.shortcut=C+q C+l
    add-marker.shortcut=C+q C+m
    center-caret.shortcut=C+q C+n
    open-path.shortcut=C+q C+o
    vertical-paste.shortcut=C+q C+p
    replace-in-selection.shortcut=C+q C+r
    save-all.shortcut=C+q C+s
    toggle-line-numbers.shortcut=C+q C+t
    cut-append.shortcut=C+q C+u
    paste-previous.shortcut=C+q C+v
    close-all.shortcut=C+q C+w
    regexp.shortcut=C+q C+x
    paste-deleted.shortcut=C+q C+y
    redo.shortcut=C+q C+z
    #}}}

    #{{{ C+q C+non-alpha
    left-docking-area.shortcut=C+q C+LEFT
    top-docking-area.shortcut=C+q C+UP
    right-docking-area.shortcut=C+q C+RIGHT
    bottom-docking-area.shortcut=C+q C+DOWN

    prev-marker.shortcut=C+q C+COMMA
    next-marker.shortcut=C+q C+PERIOD
    prev-bracket.shortcut=C+q C+OPEN_BRACKET
    next-bracket.shortcut=C+q C+CLOSE_BRACKET
    close-docking-area.shortcut=C+q C+BACK_QUOTE
    #}}}

    #{{{ C+q X
    # Unused: b e g h j k m o q t y z
    add-explicit-fold.shortcut=C+q a
    collapse-all-folds.shortcut=C+q c
    delete-paragraph.shortcut=C+q d
    format-paragraph.shortcut=C+q f
    find-previous.shortcut=C+q g
    invert-selection.shortcut=C+q i
    select-line.shortcut=C+q l
    narrow-to-fold.shortcut=C+q n n
    narrow-to-selection.shortcut=C+q n s
    select-paragraph.shortcut=C+q p
    remove-trailing-ws.shortcut=C+q r
    select-fold.shortcut=C+q s
    insert-literal.shortcut=C+q v
    select-word.shortcut=C+q w
    parent-fold.shortcut=C+q u
    expand-all-folds.shortcut=C+q x
    #}}}

What about ctrl-K?

Check out `macros/Emacs_Ctrl_K.bsh`. Bind it to Ctrl-k from the shortcuts option pane.

Other Settings and Options

How can I change the font used for menu labels and other elements of jEdit's user interface?

Select Utilities>Global Options, then the Appearance option pane. When you select the Metal look and feel you can also select the fonts used for various displayed items.

How can I get antialiased text everywhere?

For the text area, go to Global Options - TextArea - Anti Aliased Smooth Text.

For the dockables, starting `java` with command line options `"-Dawt.useSystemAAFontSettings=on" "-Dswing.aatext=true"` will give you antialiased text everywhere else. You can add these options to the batch file or shell script line that starts jEdit.

I want to add a directory to the classpath. I did this in the standalone BeanShell with ease by using the addClassPath(String) method. but this doesn't work in a macro. How could I manage the classpath in jEdit?

The implementation of BeanShell used in jEdit does not use BeanShell's class loader. The script method contained in loadJarClasses.bsh (found in the Downloads section of jEdit Community) should work if you know the path to a specific class file or class archive.

Are there any hidden features?

Yes. You can access them by binding a shortcut to the action in question. You will find a complete list of available commands under the Shortcuts area in the Global Options.