|
Enhancing the Find and
Replace feature
Sidebar:
Using
the "Find" in Find and
Replace (F&R)
|
WordPerfect's Find and Replace
(Edit, Find and Replace) has two fields in the dialog, "Find:"
and "Replace with:". Most users probably
just type a word or phrase into the Find field, make various
selections from the F&R dialog's menu, then either search
for the item with one of the Find buttons or replace the item
in the document with whatever is typed into the Replace field.
Alternatively, you can also -
(1) select some words, copy the
selection to the clipboard, and then paste the words (including
symbols or codes) from the document directly into the Find field;
- or -
(2) select words, then bring
up the F&R dialog, and the words will be automatically
entered in the Find field.
In many cases these latter two
methods will not present a problem. However, as with typing words
into the field, pasting words into the field is limited to
79 characters and spaces, and this can present a problem.
"Characters" in this
context also means symbols and WordPerfect format codes.
So if you copy a sentence that contains these format codes, they
are counted toward the 79 character limit when you paste
them into the Find field (or let WordPerfect insert them in the
Find field with option #2 above).
Therefore the sentence might
become truncated (cut off at the end) in the Find field. Since
the dialog field is relatively small, you might not notice this
with a long sentence, and therefore you might not replace what
you want to replace when your click Replace or Replace All.
One way to work around this is
to first paste the copied selection elsewhere in the document
(or a blank document) as Unformatted text (see here
for more), re-select and re-copy the item, then paste the now
unformatted version into the Find field. Again, this might only
be needed for sentences that approach 79 characters -- counting
any embedded codes.
Note that macro search
routines are also limited to 79 characters in a SearchString()
command, but storing a selection of text in a variable automatically
strips out any format codes. The Search (and Replace, if used),
will succeed since it looks for only the characters and spaces
-- up to the 79 character limit, of course. [See the footnote
below for a code snippet to test for the length of the selected
string.] |
|
The standard Find and Replace
dialog has to be dragged from its position in the center of the
screen if you want to see the item found or the item to be replaced.
Moreover, it does not provide an easy way to replace (or format)
just certain instances of an item. Finally, having to repeatedly
open the F&R dialog (Edit, Find and Replace, or <Ctrl+F>)
to find or replace the same item is tedious.
Here's
a tip posted by Pam Britt on WordPerfect Universe that may help:
"To repeat a find once you
have closed the dialog box, you need not reopen the box. Simply
press <Ctrl+Shift+F> . . . to go to the next occurrence
of your designated find text.
[Editor's note: If you
use the DOS keyboard instead of the standard Windows keyboard,
you will need to assign the "Find and Replace" and
"Find Next" features to <Ctrl+F> and <Ctrl+Shift+F>.
See the tip about assigning a macro, feature, program, or string
of keystrokes to a key or key combination (i.e., a "shortcut"
or "hot key"), here.]
This is an extremely efficient
tool for the kind of templates I have prepared over the years
and through many versions of WP, placing # symbols where I would
eventually need to add text and @ symbols where others would
need to do so. These and other symbols can be searched to easily
and then replaced on the run. (The "find" highlights
the character [but see below], and all you have to do
is start typing the new text -- no <Escape>, no <Delete>,
no nothing. If text (or a symbol) is highlighted and you need
to change it, start typing; if you need to go to the next instance,
just press <control>+<shift>+f again.)
It is also very simple to replace
text using this feature. All that's needed is for you to have
already marked for copying [i.e., copied to the clipboard
with <Ctrl+C>] the "replace with" text; then,
when you hit on an instance where you need the text replaced,
paste the "replace with" text over the found text [with
<Ctrl+V>]...."
However, sometimes there is a
problem with the part of Pam's tip that says -
...The "find" highlights
the character, and all you have to do is start typing the new
text...
Most of the time this will be
true. But if the user has set Edit > Find and Replace >
Action to anything other than "Select Match," or
plays a macro that sets the Action to another value, then
the items found will not be selected (i.e., highlighted
in reverse color). The Action menu in Find and Replace is "sticky":
settings will persist into the next WP session.
Here's a solution: Create (or
download) and play the Find and Replace
macro below, which could be assigned to the <Ctrl+F> and/or
<F2> key instead of simply the "Find and Replace"
feature. It will reset the Find and Replace dialog's settings
first; then it will pop up the Find and Replace dialog. This
will be completely transparent to the user.
Tip: For your convenience, download
the following macro here.
|
// Find and Replace.wcm - Enhances the use of the standard Find and Replace
feature by ensuring that WordPerfect default settings for the
F&R dialog are reset -- especially the "Select Match"
setting in the Action menu, which normally leaves the item selected
(and thus more visible on screen) after it is found.
// For convenience, you can assign
this macro to the <Ctrl+F> key and/or <F2> key to
replace the standard methods of bringing up the Find and Replace
dialog.
If(?DocBlank)
Messagebox(;"Error";"Document is blank.";IconInformation!)
Go(End@)
Endif OnCancel (End@)
pResetFindReplace ()
FindDlg ()
// Set the found item vertically
on screen - QuickmarkSet ()
Display(On!)
QuickmarkFind ()
Label (End@)
Quit
Procedure pResetFindReplace ()
SearchString ("")
ReplaceString ("")
// Only one of these next 4 Match... commands can be active at
any one time:
// MatchPositionAfter ()
// MatchExtendSelection()
// MatchPositionBefore()
MatchSelection()
SearchFindWholeWordsOnly (No!)
MatchWithAttributes (No!)
ReplaceWithAttributes (No!)
SearchCaseSensitive (No!)
ReplaceWithCase (No!)
MatchWithFont (No!)
ReplaceWithFont (No!)
MatchWithFontSize (No!)
ReplaceWithFontSize (No!)
SearchInSelection (No!)
SearchWordForms (No!)
SearchWrap (No!)
MatchLimit (No!)
EndProcedure |
For help assigning macros to
keystroke combinations ("shortcut keys") see here.
In addition to the tip above,
here's another related tip:
When the found item is shown
selected on screen you can use other standard formatting shortcut
keys to quickly make the instance bold, italic, underlined etc.
Just press <Ctrl+B> for bold, <Ctrl+I> for
italic, etc., while the item is selected. Then simply
press <Ctrl+Shft+F> to go to the next instance of the item,
if desired.
You might even like to highlight
found-and-selected items in the current highlight color. Since
there doesn't seem to be a built-in feature in WP's keyboard
editor that you can directly assign to a shortcut key for this,
use a macro instead. You can assign the small macro below to,
for example, the <Ctrl+H> key to toggle highlighting on
for the selected item.
Tip: For your convenience, download
the following macro here (included
with the Find and Replace macro above).
|
// Highlight Toggle.wcm - Toggle selected text to highlighted text.
// Assign to <Ctrl+H> or similar key for convenience.
If(?BlockActive)
PosSelectBottom
HighlightToggle
Else
Messagebox(;"Highlight Toggle";"Select some
text first!";IconWarning!)
Endif
Quit |
Finally, note that redline or strikeout formatting (not to be confused with
similar effects produced during a file Compare or Review) are
not assigned to any standard shortcut key. However, they can
be assigned to one using the "Attribute Redline" and
"Attribute Strikeout" choices in the Format feature
list, found in the keyboard editor's Keyboard Shortcuts window.
Assigning them to <Alt+Ctrl+R> and <Alt+Ctrl+S> or
other preferred keys might be handy. Since they do not require
that the item be selected first, no macro such as Highlight Toggle
above is needed.
For help assigning macros to
keystroke combinations ("shortcut keys") see here. |