📄 scintilladoc.html
字号:
<pre>
struct CharacterRange {
long cpMin;
long cpMax;
};
struct TextRange {
struct CharacterRange chrg;
char *lpstrText;
};
</pre>
<h3 id="EncodedAccess">GTK+-specific: Access to encoded text</h3>
<p><b id="SCI_TARGETASUTF8">SCI_TARGETASUTF8(<unused>, char *s)</b><br />
This method retrieves the value of the target encoded as UTF-8 which is the default
encoding of GTK+ so is useful for retrieving text for use in other parts of the user interface,
such as find and replace dialogs. The length of the encoded text in bytes is returned.
</p>
<p><b id="SCI_ENCODEDFROMUTF8">SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)</b><br />
<b id="SCI_SETLENGTHFORENCODE">SCI_SETLENGTHFORENCODE(int bytes)</b><br />
<code>SCI_ENCODEDFROMUTF8</code> converts a UTF-8 string into the document's
encoding which is useful for taking the results of a find dialog, for example, and receiving
a string of bytes that can be searched for in the document. Since the text can contain nul bytes,
the <code>SCI_SETLENGTHFORENCODE</code> method can be used to set the
length that will be converted. If set to -1, the length is determined by finding a nul byte.
The length of the converted string is returned.
</p>
<h2 id="Searching">Searching</h2>
<code><a class="message" href="#SCI_FINDTEXT">SCI_FINDTEXT(int flags, TextToFind
*ttf)</a><br />
<a class="message" href="#SCI_SEARCHANCHOR">SCI_SEARCHANCHOR</a><br />
<a class="message" href="#SCI_SEARCHNEXT">SCI_SEARCHNEXT(int searchFlags, const char
*text)</a><br />
<a class="message" href="#SCI_SEARCHPREV">SCI_SEARCHPREV(int searchFlags, const char
*text)</a><br />
<a class="jump" href="#SearchAndReplaceUsingTheTarget">Search and replace using the
target</a><br />
</code>
<p><b id="searchFlags"><code>searchFlags</code></b><br />
Several of the search routines use flag options, which include a simple regular expression
search. Combine the flag options by adding them:</p>
<table border="0" summary="Search flags">
<tbody>
<tr>
<td><code>SCFIND_MATCHCASE</code></td>
<td>A match only occurs with text that matches the case of the search string.</td>
</tr>
<tr>
<td><code>SCFIND_WHOLEWORD</code></td>
<td>A match only occurs if the characters before and after are not word characters.</td>
</tr>
<tr>
<td><code>SCFIND_WORDSTART</code></td>
<td>A match only occurs if the character before is not a word character.</td>
</tr>
<tr>
<td><code>SCFIND_REGEXP</code></td>
<td>The search string should be interpreted as a regular expression.</td>
</tr>
<tr>
<td><code>SCFIND_POSIX</code></td>
<td>Treat regular expression in a more POSIX compatible manner
by interpreting bare ( and ) for tagged sections rather than \( and \).</td>
</tr>
</tbody>
</table>
<p>If <code>SCFIND_REGEXP</code> is not included in the <code>searchFlags</code>, you can
search backwards to find the previous occurrence of a search string by setting the end of the
search range before the start. If <code>SCFIND_REGEXP</code> is included, searches are always
from a lower position to a higher position, even if the search range is backwards.</p>
<p>In a regular expression, special characters interpreted are:</p>
<table border="0" summary="Regular expression synopsis">
<tbody>
<tr>
<td><code>.</code></td>
<td>Matches any character</td>
</tr>
<tr>
<td><code>\(</code></td>
<td>This marks the start of a region for tagging a match.</td>
</tr>
<tr>
<td><code>\)</code></td>
<td>This marks the end of a tagged region.</td>
</tr>
<tr>
<td><code>\n</code></td>
<td>Where <code>n</code> is 1 through 9 refers to the first through ninth tagged region
when replacing. For example, if the search string was <code>Fred\([1-9]\)XXX</code> and
the replace string was <code>Sam\1YYY</code>, when applied to <code>Fred2XXX</code> this
would generate <code>Sam2YYY</code>.</td>
</tr>
<tr>
<td><code>\<</code></td>
<td>This matches the start of a word using Scintilla's definitions of words.</td>
</tr>
<tr>
<td>\></td>
<td>This matches the end of a word using Scintilla's definition of words.</td>
</tr>
<tr>
<td><code>\x</code></td>
<td>This allows you to use a character x that would otherwise have a special meaning. For
example, \[ would be interpreted as [ and not as the start of a character set.</td>
</tr>
<tr>
<td><code>[...]</code></td>
<td>This indicates a set of characters, for example, [abc] means any of the characters a,
b or c. You can also use ranges, for example [a-z] for any lower case character.</td>
</tr>
<tr>
<td><code>[^...]</code></td>
<td>The complement of the characters in the set. For example, [^A-Za-z] means any
character except an alphabetic character.</td>
</tr>
<tr>
<td><code>^</code></td>
<td>This matches the start of a line (unless used inside a set, see above).</td>
</tr>
<tr>
<td><code>$</code></td>
<td>This matches the end of a line.</td>
</tr>
<tr>
<td><code>*</code></td>
<td>This matches 0 or more times. For example, <code>Sa*m</code> matches <code>Sm</code>,
<code>Sam</code>, <code>Saam</code>, <code>Saaam</code> and so on.</td>
</tr>
<tr>
<td><code>+</code></td>
<td>This matches 1 or more times. For example, <code>Sa+m</code> matches
<code>Sam</code>, <code>Saam</code>, <code>Saaam</code> and so on.</td>
</tr>
</tbody>
</table>
<p><b id="SCI_FINDTEXT">SCI_FINDTEXT(int searchFlags, <a class="jump"
href="#TextToFind">TextToFind</a> *ttf)</b><br />
This message searches for text in the document. It does not use or move the current selection.
The <a class="jump" href="#searchFlags"><code>searchFlags</code></a> argument controls the
search type, which includes regular expression searches.</p>
<p>The <code>TextToFind</code> structure is defined in <code>Scintilla.h</code>; set
<code>chrg.cpMin</code> and <code>chrg.cpMax</code> with the range of positions in the document
to search. If <code>SCFIND_REGEXP</code> is not included in the flags, you can search backwards by
setting <code>chrg.cpMax</code> less than <code>chrg.cpMin</code>. If <code>SCFIND_REGEXP</code>
is included, the search is always forwards (even if <code>chrg.cpMax</code> is less than <code>chrg.cpMin</code>).
Set the <code>lpstrText</code> member of <code>TextToFind</code> to point at a zero terminated
text string holding the search pattern. If your language makes the use of <code>TextToFind</code>
difficult, you should consider using <code>SCI_SEARCHINTARGET</code> instead.</p>
<p>The return value is -1 if the search fails or the position of the start of the found text if
it succeeds. The <code>chrgText.cpMin</code> and <code>chrgText.cpMax</code> members of
<code>TextToFind</code> are filled in with the start and end positions of the found text.</p>
<p>See also: <code><a class="message"
href="#SCI_SEARCHINTARGET">SCI_SEARCHINTARGET</a></code></p>
<p><b id="TextToFind">TextToFind</b><br />
This structure is defined to have exactly the same shape as the Win32 structure
<code>FINDTEXTEX</code> for old code that treated Scintilla as a RichEdit control.</p>
<pre>
struct TextToFind {
struct <a class="jump" href="#CharacterRange">CharacterRange</a> chrg; // range to search
char *lpstrText; // the search pattern (zero terminated)
struct CharacterRange chrgText; // returned as position of matching text
};
</pre>
<p><b id="SCI_SEARCHANCHOR">SCI_SEARCHANCHOR</b><br />
<b id="SCI_SEARCHNEXT">SCI_SEARCHNEXT(int searchFlags, const char *text)</b><br />
<b id="SCI_SEARCHPREV">SCI_SEARCHPREV(int searchFlags, const char *text)</b><br />
These messages provide relocatable search support. This allows multiple incremental
interactive searches to be macro recorded while still setting the selection to found text so
the find/select operation is self-contained. These three messages send <a class="message"
href="#SCN_MACRORECORD"><code>SCN_MACRORECORD</code></a> <a class="jump"
href="#Notifications">notifications</a> if macro recording is enabled.</p>
<p><code>SCI_SEARCHANCHOR</code> sets the search start point used by
<code>SCI_SEARCHNEXT</code> and <code>SCI_SEARCHPREV</code> to the start of the current
selection, that is, the end of the selection that is nearer to the start of the document. You
should always call this before calling either of <code>SCI_SEARCHNEXT</code> or
<code>SCI_SEARCHPREV</code>.</p>
<p><code>SCI_SEARCHNEXT</code> and <code>SCI_SEARCHPREV</code> search for the next and previous
occurrence of the zero terminated search string pointed at by text. The search is modified by
the <a class="jump" href="#searchFlags"><code>searchFlags</code></a>. If you request a regular
expression, <code>SCI_SEARCHPREV</code> finds the first occurrence of the search string in the
document, not the previous one before the anchor point.</p>
<p>The return value is -1 if nothing is found, otherwise the return value is the start position
of the matching text. The selection is updated to show the matched text, but is not scrolled
into view.</p>
<p>See also: <a class="message" href="#SCI_SEARCHINTARGET"><code>SCI_SEARCHINTARGET</code></a>,
<a class="message" href="#SCI_FINDTEXT"><code>SCI_FINDTEXT</code></a></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -