# Editing Text

## Moving The Caret

The simplest way to move the caret is to click the mouse at the desired location in the text area. The caret can also be moved using the keyboard.

The LEFT, RIGHT, UP and DOWN keys move the caret in the respective direction, and the PAGE_UP and PAGE_DOWN keys move the caret up and down one screen-full, respectively.

When pressed once, the HOME key moves the caret to the first non-whitespace character of the current screen line. Pressing it a second time moves the caret to the beginning of the current buffer line. Pressing it a third time moves the caret to the first visible line.

The END key behaves in a similar manner, going to the last non-whitespace character of the current screen line, the end of the current buffer line, and finally to the last visible line.

If soft wrap is disabled, a screen line is the same as a buffer line. If soft wrap is enabled, a screen line is a section of a newline-delimited buffer line that fits within the wrap margin width. See .

C+HOME and C+END move the caret to the beginning and end of the buffer, respectively.

More advanced caret movement is covered in , and .

The Home and End keys

If you prefer more traditional behavior for the HOME and END keys, you can reassign the respective keyboard shortcuts in the Shortcuts pane of the Utilities>Options; see .

By default, the shortcuts are assigned as follows:

- HOME is bound to Smart Home.

- END is bound to Smart End.

- S+HOME is bound to Select to Smart Home Position.

- S+END is bound to Select to Smart End Position.

However you can rebind them to anything you want, for example, various combinations of the following, or indeed any other command or macro:

- Go to Start/End of White Space.

- Go to Start/End of Line.

- Go to Start/End of Buffer.

- Select to Start/End of White Space .

- Select to Start/End of Line.

- Select to Start/End of Buffer.

## Selecting Text

A selection is a block of text marked for further manipulation. Range selections are equivalent to selections in most other text editors; they cover text between two points in a buffer. In addition to the standard text-selection mode, jEdit also allows rectangular selections that cover a rectangular area (some text editors refer to these as column selections). Furthermore, several chunks of text can be selected and operated on simultaneously.

### Range Selection

Dragging the mouse creates a range selection from where the mouse was pressed to where it was released. Holding down Shift while clicking a location in the buffer will create a selection from the caret position to the clicked location.

Holding down Shift in addition to a caret movement key (LEFT, UP, HOME, etc) will extend a selection in the specified direction.

Edit>Select All (shortcut: C+a) selects the entire buffer.

Edit>More Selection>Select None (shortcut: ESCAPE) deactivates the selection.

### Rectangular Selection

Dragging with the Control key held down will create a rectangular selection. Holding down Shift and Control while clicking a location in the buffer will create a rectangular selection from the caret position to the clicked location.

Alternatively, invoking Edit>More Selection>Rectangular Selection (shortcut: A+\) toggles rectangular selection mode. In rectangular selection mode, dragging the mouse always creates a rectangular selection, and keyboard commands that would normally create a range selection create a rectangular selection instead. A status bar indicator is shown when this mode is enabled.

It is possible to select a rectangle with zero width but non-zero height. This can be used to insert a new column between two existing columns, for example. Such zero-width selections are shown as a thin vertical line.

Inserting text into a rectangular selection repeats the text going down as many times as necessary, and shifts the selection to the right. This makes it behave like a tall caret.

Rectangles can be deleted, copied, pasted, and operated on using ordinary editing commands. If necessary, rectangular selections are automatically filled in with whitespace to maintain alignment.

Rectangular selections can extend beyond the end of a line into virtual space. Furthermore, if keyboard rectangular selection mode is on or if the Control key is being held down, clicking beyond the end of a line will insert the appropriate amount of whitespace in order to position the cursor at the clicked location.

Rectangular selections are implemented using character offsets, not absolute screen positions, so they might not behave as you might expect if a proportional-width font is being used or if soft wrap is enabled. The text area font can be changed in the Text Area pane of the Utilities> Options dialog box. For information about soft wrap, see .

### Multiple Selection

Edit>More Selection>Multiple Selection (keyboard shortcut: C+\) turns multiple selection mode on and off. In multiple selection mode, multiple fragments of text can be selected and operated on simultaneously, and the caret can be moved independently of the selection. The status bar indicates if multiple selection mode is active; see .

Various jEdit commands behave differently with multiple selections:

- Commands that copy text place the contents of each selection, separated by line breaks, in the specified register.

- Commands that insert (or paste) text replace each selection with the entire text that is being inserted.

- Commands that filter text (such as Spaces to Tabs, Range Comment, Replace in Selection, and so on) behave as if each block was selected independently, and the command invoked on each in turn.

- Line-based commands (such as Shift Indent Left, Shift Indent Right, and Line Comment) operate on each line that contains at least one selection.

- Caret movement commands that would normally deactivate the selection (such as the arrow keys, while Shift is not being held down), move the caret, leaving the selection as-is.

- Some older plugins may not support multiple selection at all.

Edit>More Selection>Select None (shortcut: ESCAPE) deactivates the selection containing the caret, if there is one. Otherwise it deactivates all active selections.

Edit>More Selection>Invert Selection (shortcut: C+e C+i) selects a set of text chunks such that all text that was formerly part of a selection is now unselected, and all text that wasn't, is selected.

Deactivating multiple selection mode while multiple blocks of text are selected will leave the selections in place, but you will not be able to add new selections until multiple selection mode is reactivated.

## Keyboard Focus

When the cursor disappears, that means the text area no longer has focus, and when you type, your keystrokes are probably going somewhere else, such as a dockable. To ensure that the keyboard is focused in the textarea, you can always use the mouse and click in it, but a more keyboard-friendly way is preferred when you are just about to start typing anyway. For this reason, a number of jEdit's actions have a side-effect of focusing on the text area as well. View - Toggle Full Screen is one example. Some others are listed below:

From the View - Scrolling submenu:

- Scroll and Center Caret

- Scroll to Line

From the View - Docking submenu:

- Toggle Docked Areas

- Close current docking area

In general, jEdit is a keyboard-friendly editor that is also mouse-friendly, so you should never be forced to use a mouse to do anything.

## Inserting and Deleting Text

Text entered at the keyboard is inserted into the buffer. In overwrite mode, which can be toggled by pressing INSERT, one character is deleted from in front of the caret position for every character that is inserted. The caret is drawn as a horizontal line while overwrite mode is active. The status bar also indicates if overwrite mode is active; see for details.

Inserting text while there is a selection will replace the selection with the inserted text.

When inserting text, the TAB and ENTER keys might not behave entirely like you expect because of various indentation features; see for details.

The simplest way to delete text is with the BACKSPACE and DELETE keys. If nothing is selected, they delete the character before or after the caret, respectively. If a selection exists, both delete the selection.

More advanced deletion commands are described in , and .

## Undo and Redo

Edit>Undo (shortcut: C+z) reverses the most recent editing command. For example, this can be used to restore unintentionally deleted text. More complicated operations, such as a search and replace, can also be undone.

If you undo too many changes, Edit>Redo (shortcut: C+e C+z) can restore the changes again. For example, if some text was inserted, Undo will remove it from the buffer. Redo will insert it again.

By default, the last 100 edits is retained; older edits cannot be undone. The maximum number of undos and whether undos are reset when a buffer is saved can be changed in the Editing pane of the Utilities> Options dialog box; see .

## Working With Words

C+LEFT and C+RIGHT move the caret a word at a time. Holding down Shift in addition to the above extends the selection a word at a time.

A single word can be selected by double-clicking with the mouse, or using the Edit>More Selection>Select Word command (shortcut: C+e w). A selection that begins and ends on word boundaries can be created by double-clicking and dragging.

C+BACKSPACE and C+DELETE delete the word before or after the caret, respectively.

Edit>Complete Word (shortcut: C+b) locates possible completions for the word at the caret, first by looking in the current edit mode's syntax highlighting keyword list, and then in the current buffer for words that begin with the word at the caret. This serves as a very basic code completion feature.

If there is only one completion, it will be inserted into the buffer immediately.

If multiple completions were found, the longest common prefix is inserted into the buffer, and a popup is shown below the caret position listing the completions.

To insert a completion from the list, either select it using the UP and DOWN keys and press ENTER, press a digit to insert one of the first ten completions (1 is the first completion; 9 is the 9th; 0 is the 10th), or click the desired completion with the mouse. To close the popup without inserting a completion, press ESCAPE.

Typing while the popup is visible will automatically update the popup and narrow the set of completions as necessary.

The default word completion uses the visible buffers (buffers being shown in an EditPane) to find completions. The set of possible words can be expanded by enabling the Global Options - Text Area - Complete words from all open buffers option. Setting this option will use all open buffers to search for possible completions. Note, this can degrade completion performance if many buffers are open.

Edit>Word Count displays a dialog box with the number of characters, words and lines in the current buffer.

### What's a Word?

The default behavior of the C+LEFT, C+RIGHT, C+BACKSPACE and C+DELETE commands is to stop both at the beginning and the end of each word. Normally, a word is a sequence of alphanumerics, but you can add other characters as part of what jEdit considers to be a 'word', set on a global or mode basis from Global Options - Editing - Extra Word Characters. In addition, this behavior can be changed by remapping these keystrokes to alternative actions whose names end with (Eat Whitespace) in the Shortcuts pane of the Utilities>Options dialog box; see .

## Working With Lines

An entire line can be selected by triple-clicking with the mouse, or using the Edit>More Selection>Select Line command (shortcut: C+e l). A selection that begins and ends on line boundaries can be created by triple-clicking and dragging.

Edit>Go to Line (shortcut: C+l) prompts for a line number and moves the caret there. A relative offset can be used here, if it is prefixed by a + or a - sign. So for example `-5` moves the caret up by 5 lines.

Edit>More Selection>Select Line Range (shortcut: C+e C+l) prompts for two line numbers and selects all text between them.

Edit>Text>Delete Line (shortcut: C+d) deletes the current line.

Edit>Text>Delete to Start Of Line (shortcut: CS+BACK_SPACE) deletes all text from the start of the current line to the caret.

Edit>Text>Delete to End Of Line (shortcut: CS+DELETE) deletes all text from the caret to the end of the current line.

Edit>Text>Join Lines (shortcut: C+j) removes any whitespace from the start of the next line and joins it with the current line. The caret is moved to the position where the two lines were joined. For example, if you invoke Join Lines with the caret on the first line of the following Java code:

    new Widget(Foo
           .createDefaultFoo());

It will be changed to:

    new Widget(Foo.createDefaultFoo());

## Working With Paragraphs

As far as jEdit is concerned, paragraphs are delimited by double newlines. This is also how TeX defines a paragraph. Note that jEdit doesn't parse HTML files for <P> tags, nor does it support paragraphs delimited only by a leading indent.

C+UP and C+DOWN move the caret to the previous and next paragraph, respectively. Holding down Shift in addition to the above extends the selection a paragraph at a time.

Edit>More Selection>Select Paragraph (shortcut: C+e p) selects the paragraph containing the caret.

Edit>Text>Format Paragraph (shortcut: C+e f) splits and joins lines in the current selection to make it fit within the wrap column position. If nothing is selected, the paragraph containing the caret is formatted instead. See for information about word wrap and changing the wrap column.

Edit>Text>Delete Paragraph (shortcut: C+e d) deletes the paragraph containing the caret.

## Wrapping Long Lines

The word wrap feature splits lines at word boundaries in order to fit text within a specified wrap margin. A word boundary, for the purposes of word wrap, means whitespace. Long lines without whitespace are currently not wrapped by jEdit. The wrap margin position is indicated in the text are as a faint blue vertical line. There are two wrap modes, soft and hard; they are described below. The current wrap mode is shown in the status bar; see . The wrap mode can be changed in one of the following ways:

- On a global or mode-specific basis in the Editing pane of the Utilities> Options dialog box. See .

- In the current buffer for the duration of the editing session,

  - By clicking the status bar indicator.

  - In the Utilities>Buffer Options dialog box. See .

  - From the keyboard, if a keyboard shortcut has been assigned to the Built-in Command for Toggle Word Wrap in the Shortcuts pane of Global Options. By default, this command does not have a keyboard shortcut, or appear in any menu.

- In the current buffer for future editing sessions by placing the following in one of the first or last 10 lines of the buffer, where mode is either none, soft or hard, and column is the desired wrap margin:

      :wrap=mode:maxLineLen=column:

### Soft Wrap

In soft wrap mode, lines are automatically wrapped when displayed on screen. Newlines are not inserted at the wrap positions, and the wrapping is automatically updated when text is inserted or removed.

If the margin is set to 0, then the width of the text area window is used to determine where to wrap lines.

If end of line markers are enabled in the Text Area pane of the Utilities>Options dialog box, a colon (:) is painted at the end of wrapped lines. See .

### Hard Wrap

In hard wrap mode, inserting text at the end of a line will automatically break the line if it extends beyond the wrap margin. Inserting or removing text in the middle of a line has no effect, however text can be re-wrapped using the Edit>Text>Format Paragraph command. See .

Hard wrap is implemented using character offsets, not screen positions, so it might not behave like you expect if a proportional-width font is being used. The text area font can be changed in the Text Area pane of the Utilities>Options dialog box.

## Scrolling

If you have a mouse with a scroll wheel, you can use the wheel to scroll up and down in the text area. Various modifier keys change the action of the wheel:

- Shift - moves the horizontal scrollbar. time.

- Control - scrolls a single line at a time.

- Alt - moves the caret up and down instead of scrolling.

- CTRL+SHIFT - scroll a page at a time.

- Alt Shift - extends the selection up and down instead of scrolling.

Keyboard commands for scrolling the text area are also available.

View>Scrolling>Scroll to Current Line (shortcut: C+e C+j) scrolls the text area in order to make the caret visible, if necessary. It does nothing if the caret is already visible.

View>Scrolling>Center Caret on Screen (shortcut: C+e C+n) moves the caret to the line in the middle of the screen.

View>Scrolling>Line Scroll Up (shortcut: C+QUOTE) scrolls the text area up by one line.

View>Scrolling>Line Scroll Down (shortcut: C+SLASH) scrolls the text area down by one line.

View>Scrolling>Page Scroll Up (shortcut: A+QUOTE) scrolls the text area up by one screenful.

View>Scrolling>Page Scroll Down (shortcut: A+SLASH) scrolls the text area down by one screenful.

The above scrolling commands differ from the caret movement commands in that they don't actually move the caret; they just change the scroll bar position.

## Transferring Text

jEdit provides a rich set of commands for moving and copying text. Commands are provided for moving chunks of text from buffers to registers and vice-versa. A register is a holding area for an arbitrary length of text, with a single-character name. Most other programs can only transfer text to and from the system clipboard; in jEdit, the system clipboard is just another register, with the special name `$`.

### The Clipboard

jEdit offers the usual text transfer operations, that operate on the `$` register.

Edit>Cut (shortcut: C+x) places the selected text in the clipboard and removes it from the buffer.

Edit>Copy (shortcut: C+c) places the selected text in the clipboard and leaves it in the buffer.

Edit>Paste (shortcut: C+v) inserts the clipboard contents in place of the selection (or at the caret position, if there is no selection).

The Cut and Copy commands replace the old clipboard contents with the selected text. There are two alternative commands which add the selection at the end of the existing clipboard contents, instead of replacing it.

Edit>More Clipboard>Cut Append (shortcut: C+e C+u) appends the selected text to the clipboard, then removes it from the buffer. After this command has been invoked, the clipboard will consist of the former clipboard contents, followed by a newline, followed by the selected text.

Edit>More Clipboard>Copy Append (shortcut: C+e C+a) is the same as Cut Append except it does not remove the selection from the buffer.

### Quick Copy

The quick copy feature is usually found in Unix text editors. Quick copy is disabled by default, but it can be enabled in the Mouse pane of the Utilities>Options dialog box.

The quick copy feature is accessed using the middle mouse button. If you do not have a three-button mouse, then either Alt-click (on Windows and Unix) or Option-click (on MacOS X). The quick copy feature enables the following behavior:

- Clicking the middle mouse button in the text area inserts the most recently selected text at the clicked location. If you only have a two-button mouse, you can click the left mouse button while holding down Alt instead of middle-clicking.

- Dragging with the middle mouse button creates a selection without moving the caret. As soon as the mouse button is released, the selected text is inserted at the caret position and the selection is deactivated. A message is shown in the status bar while text is being selected to remind you that this is not an ordinary selection.

- Holding down Shift while clicking the middle mouse button will duplicate text between the caret and the clicked location.

- Holding down Control while clicking the middle mouse button on a bracket will insert all text in that bracket's scope at the caret position.

The most recently selected text is stored in the `%` register.

If jEdit is being run under Java 2 version 1.4 on Unix, you will be able to transfer text with other X Windows applications using the quick copy feature. On other platforms and Java versions, the contents of the quick copy register are only accessible from within jEdit.

### General Register Commands

These commands require more keystrokes than the two methods shown above, but they can operate on any register, allowing an arbitrary number of text chunks to be retained at a time.

Each command prompts for a single-character register name to be entered after being invoked. Pressing ESCAPE instead of specifying a register name cancels the operation.

Note that the content of registers other than the clipboard and quick copy register are automatically saved between jEdit sessions.

Edit>More Clipboard>Cut to Register (shortcut: C+r C+x key) stores the selected text in the specified register, removing it from the buffer.

Edit>More Clipboard>Copy to Register (shortcut: C+r C+c key) stores the selected text in the specified register, leaving it in the buffer.

Edit>More Clipboard>Cut Append to Register (shortcut: C+r C+u key) adds the selected text to the existing contents of the specified register, and removes it from the buffer.

Edit>More Clipboard>Copy Append to Register (shortcut: C+r C+a key) adds the selected text to the existing contents of the specified register, without removing it from the buffer.

Edit>More Clipboard>Paste from Register (shortcut: C+r C+v key) replaces the selection with the contents of the specified register.

The following three commands display dialog boxes instead of prompting for a register name.

Edit>More Clipboard>Paste Previous (shortcut: C+e C+v) displays a dialog box listing the 20 most recently copied and pasted text strings.

Edit>More Clipboard>Paste Deleted (shortcut: C+e C+y) is not really a register command; it displays a dialog box listing the 20 most recently deleted text strings.

Edit>More Clipboard>View Registers displays a dialog box for viewing register contents, including the clipboard and the quick copy.

## Markers

MarkerSets

The MarkerSets plugin is a replacement for the built-in Markers feature of jEdit. Markers saved with MarkerSets properly update when lines are added or removed from a buffer. Furthermore, you can see markers from multiple files in the Marker Sets dockable. We recommend you use that instead of the built-in Markers.

A marker is a pointer to a specific location within a buffer, which may or may not have a single-character shortcut associated with it. Markers are persistent; they are saved to `.filename.marks`, where `filename` is the name of the buffer. (The dot prefix makes the markers file hidden on Unix systems.) Marker saving can be disabled in the General pane of the Utilities>Options dialog box; see .

Markers>Add/Remove Marker (shortcut: C+e C+m) adds a marker without a shortcut pointing to the current line. If a marker is already set on the current line, the marker is removed instead. If text is selected, markers are added to the first and last line of each selection.

Markers are listed in the Markers menu; selecting a marker from this menu will move the caret to its location.

Markers>Go to Previous Marker (shortcut: C+e C+COMMA) goes to the marker immediately before the caret position.

Markers>Go to Next Marker (shortcut: C+e C+PERIOD) goes to the marker immediately after the caret position.

Markers>Remove All Markers removes all markers set in the current buffer.

Markers with shortcuts allow for quicker keyboard-based navigation. The following commands all prompt for a single-character shortcut when invoked. Pressing ESCAPE instead of specifying a shortcut will cancel the operation.

Markers>Add Marker With Shortcut (shortcut: C+t key) adds a marker with the specified shortcut. If marker with that shortcut already exists, it will remain in the buffer but lose its shortcut.

Markers>Go to Marker (shortcut: C+y key) moves the caret to the location of the marker with the specified shortcut.

Markers>Select to Marker (shortcut: C+u key) creates a selection from the caret location to the marker with the specified shortcut.

Markers>Swap Caret and Marker (shortcut: C+k key) moves the caret to the location of the marker with the specified shortcut, and moves the marker to the former caret position. Invoke this command multiple times to flip between two locations in the buffer.

Lines which contain markers are indicated in the gutter with a highlight. Moving the mouse over the highlight displays a tool tip showing the marker's shortcut, if it has one. See for information about the gutter.

## Search and Replace

### Searching For Text

Search>Find (shortcut: C+f) displays the search and replace dialog box.

The search string can be entered in the Search for text field. This text field remembers previously entered strings; see for details.

If text was selected in the text area and the selection does not span a line break, the selected text becomes the default search string.

If the selection spans a line break, the Search in Selection and HyperSearch buttons will be pre-selected, and the search string field will be initially blank. (See for information about the HyperSearch feature.)

Selecting the Ignore case check box makes the search case insensitive - for example, searching for Hello will match hello, HELLO and HeLlO.

After selecting the Whole word check box, searching respects the Extra word characters setting from the editing options for recognizing words.

To search for special characters (such as newlines or non-printable characters), inexact sequences of text, or strings that span multiple lines, we use Regular Expressions. Selecting the Regular expressions check box allows special characters to be used in the search string. Regular expression syntax is described in . If you use (groups) in the search field, you back-reference them with $1 through $9 in the replace field.

The Backward and Forward buttons specify the search direction. Note that regular expressions can only be used when searching in a forward direction.

Clicking Find will locate the next occurrence of the search string (or previous occurrence, if searching backwards). If the Keep dialog check box is selected, the dialog box will remain open after the search string has been located; otherwise, it will close.

If no occurrences could be found and the Auto wrap check box is selected, the search will automatically restart from the beginning of the buffer (or the end, if searching backwards). If Auto wrap is not selected, a confirmation dialog box is shown before restarting the search.

Search>Find Next (shortcut: C+g) locates the next occurrence of the most recent search string without displaying the search and replace dialog box.

Search>Find Previous (shortcut: C+h) locates the previous occurrence of the most recent search string without displaying the search and replace dialog box.

### Replacing Text

The replace string text field of the search dialog remembers previously entered strings; see for details.

Clicking Replace & Find will perform a replacement in the current selection and locate the next occurrence of the search string. Clicking Replace All will replace all occurrences of the search string with the replacement string in the current search scope (which is either the selection, the current buffer, or a set of buffers, as specified in the search and replace dialog box).

Occurrences of the search string can be replaced with either a replacement string, or the return value of a BeanShell script snippet. Two radio buttons in the search and replace dialog box select between the two replacement modes, which are described in detail below.

#### Text Replace

If the Text button is selected, the search string is simply replaced with the replacement string.

If regular expressions are enabled, positional parameters (`$0`, `$1`, `$2`, and so on) can be used to insert the contents of matched subexpressions in the replacement string; see for more information.

If the search is case-insensitive, jEdit attempts to modify the case of the replacement string to match that of the particular instance of the search string being replaced. For example, searching for label and replacing it with text, will perform the following replacements:

- String label would become String text

- setLabel would become setText

- DEFAULT_LABEL would become DEFAULT_TEXT

#### BeanShell Replace

In BeanShell replacement mode, the search string is replaced with the return value of a BeanShell snippet. If you want to use multiple line snippet, enclose your BeanShell in braces. The following predefined variables can be referenced in the snippet:

- `_0` -- the text to be replaced

- `_1` - `_9` -- if regular expressions are enabled, these contain the values of matched subexpressions.

BeanShell syntax and features are covered in great detail in , but here are some examples:

To replace each occurrence of Windows with Linux, and each occurrence of Linux with Windows, search for the following regular expression:

    (Windows|Linux)

Replacing it with the following BeanShell snippet:

    _1.equals("Windows") ? "Linux" : "Windows"

To convert all HTML tags to lower case, search for the following regular expression:

    <\S+

Replacing it with the following BeanShell snippet:

    _0.toLowerCase()

To replace arithmetic expressions contained in curly braces with the result of evaluating the expression, search for the following regular expression:

    \{(.+?)\}

Replacing it with the following BeanShell snippet:

    eval(_1)

These examples only scratch the surface; the possibilities are endless.

### HyperSearch

If the HyperSearch check box in the search and replace dialog box is selected, clicking Find lists all occurrences of the search string, instead of locating the next match.

By default, HyperSearch results are shown in a floating window. This window can be docked using the commands in its top-left corner popup menu; see .

If the Multiple results check box is selected in the results window, past search results are retained.

Running searches can be stopped in the Utilities>Troubleshooting>I/O Progress Monitor dialog box.

Once the results are shown in the Hypersearch dockable, you can left-click on a result to jump to the position, or right-click to see some "hidden actions". From the top tree-node, for example, you can Redo Hypersearch, and Copy to Clipboard.

### Multiple File Search

Search and replace commands can be performed over an arbitrary set of files in one step. The set of files to search is selected with a set of buttons in the search dialog box.

If the Current buffer button is selected, only the current buffer is searched. This is the default behavior.

If the All buffers button is selected, all open buffers whose names match the glob pattern entered in the Filter text field will be searched. See for more information about glob patterns.

If the Directory radio button is selected, all files contained in the specified directory whose names match the glob will be searched. The directory to search in can either be entered in the Directory text field, or chosen in a file selector dialog box by clicking the Choose button next to the field. If the Search subdirectories check box is selected, all subdirectories of the specified directory will also be searched. Keep in mind that searching through directories containing many files can take a long time.

The Directory and Filter text fields remember previously entered strings; see for details.

When the search and replace dialog box is opened, the directory and file name filter fields are set to their previous values. They can be set to match the current buffer's directory and file name extension by clicking Synchronize.

Note that clicking the All Buffers or Directory radio buttons also selects the HyperSearch check box since that is what you would want, most of the time. However, the HyperSearch check box can be unchecked, for stepping through search results in multiple files one at a time.

Two convenience commands are provided for performing multiple file searches.

Search>Search in Open Buffers (shortcut: C+e C+b) displays the search dialog box and selects the All buffers button.

Search>Search in Directory (shortcut: C+e C+d) displays the search dialog box and selects the Directory button.

### The Search Bar

The search bar feature provides a convenient way to search in the current buffer without opening the search dialog box. The search bar does not support replacement or multiple file search. Previously entered strings can be recalled in the search bar with the Up and Down arrow keys; see .

By default, the search bar remains hidden until one of the quick search commands (described below) is invoked; however you can choose to have it always visible in the View pane of the Utilities>Options dialog box; see .

Search>Incremental Search Bar (shortcut: C+COMMA) displays the search bar if necessary, and gives it keyboard focus.

Search>Incremental Search for Word (shortcut: A+COMMA) behaves like the above command except it places the word at the caret in the search string field. If this command is invoked while there is a selection, the selection is placed in the search string field instead.

Unless the HyperSearch check box is selected, the search bar will perform an incremental search. In incremental search mode, the first occurrence of the search string is located in the current buffer as it is being typed. Pressing ENTER and S+ENTER searches for the next and previous occurrence, respectively. Once the desired occurrence has been located, pressing ESCAPE returns keyboard focus to the text area. Unless the search bar is set to be always visible (see above), pressing ESCAPE will also hide the search bar.

Incremental searches cannot be not recorded in macros. If your macro needs to perform a search, use the search and replace dialog box instead. See for information about macros.

Search>HyperSearch Bar (shortcut: C+PERIOD) displays the search bar if necessary, gives it keyboard focus, and selects the HyperSearch check box. If this command is invoked while there is a selection, the selected text will be searched for immediately and the search bar will not be shown.

If the HyperSearch check box is selected, pressing Enter in the search string field will perform a HyperSearch in the current buffer.

Search>HyperSearch for Word (shortcut: A+PERIOD) performs a HyperSearch for the word at the caret. This command does not show the search bar or give it keyboard focus.