Most of the search commands perform straightforward searches, but there are two useful commands (Incremental Search and Reverse Incremental Search) which perform incremental searches. This means that the search is started as soon as the first character is typed.
Arguments:
p string
Key sequence:
Ctrl+S
string
Searches forward, starting from the current point, for the search string that is input, beginning the search as soon as each character is typed in. When a match is found for the search string, the current point is moved to the end of the matched string. If the search string is not found between the current point and the end of the buffer, an error is signalled.
The search result is highlighted. You can change the style of the highlighting in the LispWorks IDE by Preferences... > Environment > Styles > Colors and Attributes > Search Match
With a prefix argument p the matches are displayed at a fixed line position, p lines below the top of the window. Otherwise, the position of the matched string within the window is influenced by the editor variable incremental-search-minimum-visible-lines.
For example, to display successive definitions one line from the top of the text view of the Editor window, enter:
Ctrl+U 2 Ctrl+S ( d e f Ctrl+S Ctrl+S
All incremental searches can be controlled by entering one of the following key sequences at any time during the search.
If the search string is empty, repeats the last incremental search, otherwise repeats a forward search for the current search string.
If the search string cannot be found, starts the search from the beginning of the buffer (wrap-around search).
Changes to a backward (reverse) search.
Cancels the last character typed.
Quotes the next character typed.
Adds the next word under the cursor to the search string.
Adds the next form under the cursor to the search string.
Adds the remainder of the line under the cursor to the search string.
Adds the current kill string to the search string.
Add the editor window's selected text to the search string.
If the search string is empty, invokes a non-incremental search, otherwise exits the search, leaving the current point at the last find.
Aborts the search, returning the current point to its original location.
If the search string cannot be found, cancels the last character typed (equivalent to
Delete
).
Exits the search, leaving the current point at the last find.
incremental-search-minimum-visible-lines
Determines the minimum of visible lines between an incremental search match and the closest window border (top or bottom). If the point is closer to the border than the value, the point is scrolled to the center of the window.
Lines are counted from the start of the match, and the line where the match starts is included in the count.
Note that this has no effect when doing "fixed position" search (with numeric prefix, for example
Ctrl+U
digit
Ctrl+S
, or if the window is too short.
Setting the value to 0 makes incremental searching behave as in LispWorks 6.0 and earlier versions, that is the match can be shown on the top or bottom line currently displayed in the window.
Arguments:
string
Key sequence:
Ctrl+R
string
Searches backward, starting from the current point, for the search string that is input, beginning the search as soon as each character is provided. When a match is found for the search string, the current point is moved to the start of the matched string. If the search string is not found between the current point and the beginning of the buffer, an error is signalled.
You can use a fixed line position for the matches and/or modify the style used to display them, as described for Incremental Search.
With a prefix argument p the matches are displayed at a fixed line position, p lines below the top of the window. Otherwise, the position of the matched string within the window is influenced by the editor variable incremental-search-minimum-visible-lines.
The search can be controlled by entering one of the following key sequences at any time during the search.
If the search string is empty, repeats the last incremental search, otherwise repeats a backward search for the current search string.
If the search string cannot be found, starts the search from the end of the buffer (wrap-around search).
Changes to a forward search.
Cancels the last character typed.
If the search string is empty, invokes a non-incremental search, otherwise exits the search, leaving the current point at the last find.
Aborts the search, returning the current point to its original location.
If the search string cannot be found, cancels the last character typed (equivalent to
Delete
).
Quotes the next character typed.
Arguments:
string
Key sequence:
Ctrl+S Esc
string
editor:forward-search-command
p
&optional
string the-point
The default for the-point is the current point.
Searches forwards from
the-point
for
string
. When a match is found,
the-point
is moved to the end of the matched string. In contrast with
Incremental Search, the search string must be terminated with a carriage return before any searching is done. If an empty string is provided, the last search is repeated.
Arguments:
string
Key sequence: None
editor:reverse-search-command
p
&optional
string
the-point
The default for the-point is the current point.
Searches backwards from the-point for string . When a match is found, the-point is moved to the start of the matched string. In contrast with Reverse Incremental Search, the search string must be terminated with a carriage return before any searching is done. If an empty string is provided, the last search is repeated.
Reverse Search
is a synonym for
Backward Search
.
Arguments:
string
Key sequence: None
editor:list-matching-lines-command
p
&optional
string
Lists all lines after the current point that contain string , in a Matches window.
A prefix argument causes the appropriate number of lines before and after each matching line to be listed also.
Arguments:
string
Key sequence: None
editor:delete-matching-lines-command
p
&optional
string
Deletes all lines after the current point that match string .
Arguments:
string
Key sequence: None
editor:delete-non-matching-lines-command
p
&optional
string
Deletes all lines after the current point that do not match string .
Arguments:
string
Key sequence: None
Searches all the buffers for string . If only one buffer contains string, it becomes the current one, with the cursor positioned at the start of the string. If more than one buffer contains the string, a popup window displays a list of those buffers. A buffer may then be selected from this list.
Arguments:
directory string
Key sequence: None
Searches files in directory for string . The current working directory is offered as a default for directory .
By default only files with suffix
.lisp
,
.lsp
,
.c
or
.h
are searched. A non-nil prefix argument causes all files to be searched, except for those ending with one of the strings in the list
system:*ignorable-file-suffices*
.
Use the key sequence
Meta+,
to find subsequent definitions of the search string.
Arguments:
search-string directory
Key sequence:
Ctrl+X *
Searches for a string in a directory using a Search Files tool.
The command prompts for search-string and directory and then raises a Search Files tool. The configuration of the Search Files tool controls which files in the directory are searched. If the search string is not empty, it starts searching automatically, unless a prefix argument is given.
See the LispWorks IDE User Guide for a description of the Search Files tool.
Search Files Matching Patterns
Arguments:
search-string directory patterns
Key sequence:
Ctrl+X &
Searches for a string in files under a directory with names matching given patterns, using a Search Files tool.
The command prompts for search-string , directory and patterns, and raises a Search Files tool in Roots and Patterns mode. If the search string is not empty, it starts searching automatically, unless a prefix argument is given.
patterns
should be a comma-separated set of filename patterns delimited by braces. A pattern where the last component does not contain
*
is assumed to be a directory onto which the Search Files tool adds its own filename pattern.
patterns
defaults to
{*.lisp,*.lsp,*.c,*.h}
.
See the LispWorks IDE User Guide for a description of the Search Files tool.
Arguments:
system string
Key sequence: None
Searches the files of system for string .
Matches are shown in editor buffers consecutively. Use the key sequence
Meta+,
to find subsequent definitions of the search string.
Arguments:
search-string system
Key sequence: None
Prompts for search-string and system and then raises a Search Files tool in System Search mode, which displays the search results and allows you to visit the files.
See the LispWorks IDE User Guide for a description of the Search Files tool.
Default value:
:string-insensitive
Defines the default method of searching. By default, all searching (including regexp searching, and replacing commands) ignores case. If you want searching to be case-sensitive, the value of this variable should be set to
:string-sensitive
using Set Variable.
It is also possible to search a set of files programatically using the
search-files
function:
editor:search-files &key
string
files
generator
=> nil
search-files
searches all the files in a list for a given string.
string is a string to search for (prompted if not given).
files is a list of pathnames of files to search, and generator is a function to generate the files if none are supplied.
If a match is found the file is displayed in a buffer with the cursor on the occurrence.
Meta+-,
makes the search continue until the next occurrence.
(editor:search-files
:files '(".login" ".cshrc")
:string "alias")