📄 scintilladoc.html
字号:
<h2 id="CutCopyAndPaste">Cut, copy and paste</h2>
<code><a class="message" href="#SCI_CUT">SCI_CUT</a><br />
<a class="message" href="#SCI_COPY">SCI_COPY</a><br />
<a class="message" href="#SCI_PASTE">SCI_PASTE</a><br />
<a class="message" href="#SCI_CLEAR">SCI_CLEAR</a><br />
<a class="message" href="#SCI_CANPASTE">SCI_CANPASTE</a><br />
<a class="message" href="#SCI_COPYRANGE">SCI_COPYRANGE(int start, int end)</a><br />
<a class="message" href="#SCI_COPYTEXT">SCI_COPYTEXT(int length,
const char *text)</a><br />
</code>
<p><b id="SCI_CUT">SCI_CUT</b><br />
<b id="SCI_COPY">SCI_COPY</b><br />
<b id="SCI_PASTE">SCI_PASTE</b><br />
<b id="SCI_CLEAR">SCI_CLEAR</b><br />
<b id="SCI_CANPASTE">SCI_CANPASTE</b><br />
These commands perform the standard tasks of cutting and copying data to the clipboard,
pasting from the clipboard into the document, and clearing the document.
<code>SCI_CANPASTE</code> returns non-zero if there is anything in the clipboard in a suitable
format for pasting. If you need a "can copy" or "can cut", use
<code>SCI_GETSELECTIONSTART()-SCI_GETSELECTIONEND()</code>, which will be non-zero if you can
copy or cut to the clipboard.</p>
<p>GTK+ does not really support <code>SCI_CANPASTE</code> and always returns <code>TRUE</code>
unless the document is read-only.</p>
<b id="SCI_COPYRANGE">SCI_COPYRANGE(int start, int end)</b><br />
<b id="SCI_COPYTEXT">SCI_COPYTEXT(int length, const char *text)</b><br />
<p><code>SCI_COPYRANGE</code> copies a range of text from the document to
the system clipboard and <code>SCI_COPYTEXT</code> copies a supplied piece of
text to the system clipboard.</p>
<h2 id="ErrorHandling">Error handling</h2>
<p><b id="SCI_SETSTATUS">SCI_SETSTATUS(int status)</b><br />
<b id="SCI_GETSTATUS">SCI_GETSTATUS</b><br />
If an error occurs, Scintilla may set an internal error number that can be retrieved with
<code>SCI_GETSTATUS</code>. Not currently used but will be in the future. To clear the error
status call <code>SCI_SETSTATUS(0)</code>.</p>
<h2 id="UndoAndRedo">Undo and Redo</h2>
<p>Scintilla has multiple level undo and redo. It will continue to collect undoable actions
until memory runs out. Scintilla saves actions that change the document. Scintilla does not
save caret and selection movements, view scrolling and the like. Sequences of typing or
deleting are compressed into single actions to make it easier to undo and redo at a sensible
level of detail. Sequences of actions can be combined into actions that are undone as a unit.
These sequences occur between <code>SCI_BEGINUNDOACTION</code> and
<code>SCI_ENDUNDOACTION</code> messages. These sequences can be nested and only the top-level
sequences are undone as units.</p>
<code><a class="message" href="#SCI_UNDO">SCI_UNDO</a><br />
<a class="message" href="#SCI_CANUNDO">SCI_CANUNDO</a><br />
<a class="message" href="#SCI_EMPTYUNDOBUFFER">SCI_EMPTYUNDOBUFFER</a><br />
<a class="message" href="#SCI_REDO">SCI_REDO</a><br />
<a class="message" href="#SCI_CANREDO">SCI_CANREDO</a><br />
<a class="message" href="#SCI_SETUNDOCOLLECTION">SCI_SETUNDOCOLLECTION(bool
collectUndo)</a><br />
<a class="message" href="#SCI_GETUNDOCOLLECTION">SCI_GETUNDOCOLLECTION</a><br />
<a class="message" href="#SCI_BEGINUNDOACTION">SCI_BEGINUNDOACTION</a><br />
<a class="message" href="#SCI_ENDUNDOACTION">SCI_ENDUNDOACTION</a><br />
</code>
<p><b id="SCI_UNDO">SCI_UNDO</b><br />
<b id="SCI_CANUNDO">SCI_CANUNDO</b><br />
<code>SCI_UNDO</code> undoes one action, or if the undo buffer has reached a
<code>SCI_ENDUNDOACTION</code> point, all the actions back to the corresponding
<code>SCI_BEGINUNDOACTION</code>.</p>
<p><code>SCI_CANUNDO</code> returns 0 if there is nothing to undo, and 1 if there is. You would
typically use the result of this message to enable/disable the Edit menu Undo command.</p>
<p><b id="SCI_REDO">SCI_REDO</b><br />
<b id="SCI_CANREDO">SCI_CANREDO</b><br />
<code>SCI_REDO</code> undoes the effect of the last <code>SCI_UNDO</code> operation.</p>
<p><code>SCI_CANREDO</code> returns 0 if there is no action to redo and 1 if there are undo
actions to redo. You could typically use the result of this message to enable/disable the Edit
menu Redo command.</p>
<p><b id="SCI_EMPTYUNDOBUFFER">SCI_EMPTYUNDOBUFFER</b><br />
This command tells Scintilla to forget any saved undo or redo history. It also sets the save
point to the start of the undo buffer, so the document will appear to be unmodified. This does
not cause the <code><a class="message"
href="#SCN_SAVEPOINTREACHED">SCN_SAVEPOINTREACHED</a></code> notification to be sent to the
container.</p>
<p>See also: <a class="message" href="#SCI_SETSAVEPOINT"><code>SCI_SETSAVEPOINT</code></a></p>
<b id="SCI_SETUNDOCOLLECTION">SCI_SETUNDOCOLLECTION(bool collectUndo)</b><br />
<b id="SCI_GETUNDOCOLLECTION">SCI_GETUNDOCOLLECTION</b><br />
You can control whether Scintilla collects undo information with
<code>SCI_SETUNDOCOLLECTION</code>. Pass in <code>true</code> (1) to collect information and
<code>false</code> (0) to stop collecting. If you stop collection, you should also use
<code>SCI_EMPTYUNDOBUFFER</code> to avoid the undo buffer being unsynchronized with the data in
the buffer. <br />
<br />
<p>You might wish to turn off saving undo information if you use the Scintilla to store text
generated by a program (a Log view) or in a display window where text is often deleted and
regenerated.</p>
<p><b id="SCI_BEGINUNDOACTION">SCI_BEGINUNDOACTION</b><br />
<b id="SCI_ENDUNDOACTION">SCI_ENDUNDOACTION</b><br />
Send these two messages to Scintilla to mark the beginning and end of a set of operations that
you want to undo all as one operation but that you have to generate as several operations.
Alternatively, you can use these to mark a set of operations that you do not want to have
combined with the preceding or following operations if they are undone.</p>
<h2 id="SelectionAndInformation">Selection and information</h2>
<p>Scintilla maintains a selection that stretches between two points, the anchor and the
current position. If the anchor and the current position are the same, there is no selected
text. Positions in the document range from 0 (before the first character), to the document size
(after the last character). If you use messages, there is nothing to stop you setting a
position that is in the middle of a CRLF pair, or in the middle of a 2 byte character. However,
keyboard commands will not move the caret into such positions.</p>
<code><a class="message" href="#SCI_GETTEXTLENGTH">SCI_GETTEXTLENGTH</a><br />
<a class="message" href="#SCI_GETLENGTH">SCI_GETLENGTH</a><br />
<a class="message" href="#SCI_GETLINECOUNT">SCI_GETLINECOUNT</a><br />
<a class="message" href="#SCI_GETFIRSTVISIBLELINE">SCI_GETFIRSTVISIBLELINE</a><br />
<a class="message" href="#SCI_LINESONSCREEN">SCI_LINESONSCREEN</a><br />
<a class="message" href="#SCI_GETMODIFY">SCI_GETMODIFY</a><br />
<a class="message" href="#SCI_SETSEL">SCI_SETSEL(int anchorPos, int currentPos)</a><br />
<a class="message" href="#SCI_GOTOPOS">SCI_GOTOPOS(int position)</a><br />
<a class="message" href="#SCI_GOTOLINE">SCI_GOTOLINE(int line)</a><br />
<a class="message" href="#SCI_SETCURRENTPOS">SCI_SETCURRENTPOS(int position)</a><br />
<a class="message" href="#SCI_GETCURRENTPOS">SCI_GETCURRENTPOS</a><br />
<a class="message" href="#SCI_SETANCHOR">SCI_SETANCHOR(int position)</a><br />
<a class="message" href="#SCI_GETANCHOR">SCI_GETANCHOR</a><br />
<a class="message" href="#SCI_SETSELECTIONSTART">SCI_SETSELECTIONSTART(int position)</a><br />
<a class="message" href="#SCI_GETSELECTIONSTART">SCI_GETSELECTIONSTART</a><br />
<a class="message" href="#SCI_SETSELECTIONEND">SCI_SETSELECTIONEND(int position)</a><br />
<a class="message" href="#SCI_GETSELECTIONEND">SCI_GETSELECTIONEND</a><br />
<a class="message" href="#SCI_SELECTALL">SCI_SELECTALL</a><br />
<a class="message" href="#SCI_LINEFROMPOSITION">SCI_LINEFROMPOSITION(int position)</a><br />
<a class="message" href="#SCI_POSITIONFROMLINE">SCI_POSITIONFROMLINE(int line)</a><br />
<a class="message" href="#SCI_GETLINEENDPOSITION">SCI_GETLINEENDPOSITION(int line)</a><br />
<a class="message" href="#SCI_LINELENGTH">SCI_LINELENGTH(int line)</a><br />
<a class="message" href="#SCI_GETCOLUMN">SCI_GETCOLUMN(int position)</a><br />
<a class="message" href="#SCI_POSITIONFROMPOINT">SCI_POSITIONFROMPOINT(int x, int y)</a><br />
<a class="message" href="#SCI_POSITIONFROMPOINTCLOSE">SCI_POSITIONFROMPOINTCLOSE(int x, int
y)</a><br />
<a class="message" href="#SCI_POINTXFROMPOSITION">SCI_POINTXFROMPOSITION(<unused>, int
position)</a><br />
<a class="message" href="#SCI_POINTYFROMPOSITION">SCI_POINTYFROMPOSITION(<unused>, int
position)</a><br />
<a class="message" href="#SCI_HIDESELECTION">SCI_HIDESELECTION(bool hide)</a><br />
<a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT(<unused>, char *text)</a><br />
<a class="message" href="#SCI_GETCURLINE">SCI_GETCURLINE(int textLen, char *text)</a><br />
<a class="message" href="#SCI_SELECTIONISRECTANGLE">SCI_SELECTIONISRECTANGLE</a><br />
<a class="message" href="#SCI_MOVECARETINSIDEVIEW">SCI_MOVECARETINSIDEVIEW</a><br />
<a class="message" href="#SCI_WORDENDPOSITION">SCI_WORDENDPOSITION(int position, bool
onlyWordCharacters)</a><br />
<a class="message" href="#SCI_WORDSTARTPOSITION">SCI_WORDSTARTPOSITION(int position, bool
onlyWordCharacters)</a><br />
<a class="message" href="#SCI_POSITIONBEFORE">SCI_POSITIONBEFORE(int position)</a><br />
<a class="message" href="#SCI_POSITIONAFTER">SCI_POSITIONAFTER(int position)</a><br />
<a class="message" href="#SCI_TEXTWIDTH">SCI_TEXTWIDTH(int styleNumber, char *text)</a><br />
<a class="message" href="#SCI_TEXTHEIGHT">SCI_TEXTHEIGHT(int line)</a><br />
<a class="message" href="#SCI_CHOOSECARETX">SCI_CHOOSECARETX</a><br />
</code>
<p><b id="SCI_GETTEXTLENGTH">SCI_GETTEXTLENGTH</b><br />
<b id="SCI_GETLENGTH">SCI_GETLENGTH</b><br />
Both these messages return the length of the document in characters.</p>
<p><b id="SCI_GETLINECOUNT">SCI_GETLINECOUNT</b><br />
This returns the number of lines in the document. An empty document contains 1 line. A
document holding only an end of line sequence has 2 lines.</p>
<p><b id="SCI_GETFIRSTVISIBLELINE">SCI_GETFIRSTVISIBLELINE</b><br />
This returns the line number of the first visible line in the Scintilla view. The first line
in the document is numbered 0.</p>
<p><b id="SCI_LINESONSCREEN">SCI_LINESONSCREEN</b><br />
This returns the number of complete lines visible on the screen. With a constant line height,
this is the vertical space available divided by the line separation. Unless you arrange to size
your window to an integral number of lines, there may be a partial line visible at the bottom
of the view.</p>
<p><b id="SCI_GETMODIFY">SCI_GETMODIFY</b><br />
This returns non-zero if the document is modified and 0 if it is unmodified. The modified
status of a document is determined by the undo position relative to the save point. The save
point is set by <a class="message" href="#SCI_SETSAVEPOINT"><code>SCI_SETSAVEPOINT</code></a>,
usually when you have saved data to a file.</p>
<p>If you need to be notified when the document becomes modified, Scintilla notifies the
container that it has entered or left the save point with the <a class="message"
href="#SCN_SAVEPOINTREACHED"><code>SCN_SAVEPOINTREACHED</code></a> and <a class="message"
href="#SCN_SAVEPOINTLEFT"><code>SCN_SAVEPOINTLEFT</code></a> <a class="jump"
href="#Notifications">notification messages</a>.</p>
<p><b id="SCI_SETSEL">SCI_SETSEL(int anchorPos, int currentPos)</b><br />
This message sets both the anchor and the current position. If <code>currentPos</code> is
negative, it means the end of the document. If <code>anchorPos</code> is negative, it means
remove any selection (i.e. set the anchor to the same position as <code>currentPos</code>). The
caret is scrolled into view after this operation.</p>
<p><b id="SCI_GOTOPOS">SCI_GOTOPOS(int pos)</b><br />
This removes any selection, sets the caret at <code>pos</code> and scrolls the view to make
the caret visible, if necessary. It is equivalent to
<code>SCI_SETSEL(pos,&nbrsp;pos)</code>. The anchor position is set the same as the current
position.</p>
<p><b id="SCI_GOTOLINE">SCI_GOTOLINE(int line)</b><br />
This removes any selection and sets the caret at the start of line number <code>line</code>
and scrolls the view (if needed) to make it visible. The anchor position is set the same as the
current position. If <code>line</code> is outside the lines in the document (first line is 0),
the line set is the first or last.</p>
<p><b id="SCI_SETCURRENTPOS">SCI_SETCURRENTPOS(int pos)</b><br />
This sets the current position and creates a selection between the anchor and the current
position. The caret is not scrolled into view.</p>
<p>See also: <a class="message" href="#SCI_SCROLLCARET"><code>SCI_SCROLLCARET</code></a></p>
<p><b id="SCI_GETCURRENTPOS">SCI_GETCURRENTPOS</b><br />
This returns the current position.</p>
<p><b id="SCI_SETANCHOR">SCI_SETANCHOR(int pos)</b><br />
This sets the anchor position and creates a selection between the anchor position and the
current position. The caret is not scrolled into view.</p>
<p>See also: <a class="message" href="#SCI_SCROLLCARET"><code>SCI_SCROLLCARET</code></a></p>
<p><b id="SCI_GETANCHOR">SCI_GETANCHOR</b><br />
This returns the current anchor position.</p>
<p><b id="SCI_SETSELECTIONSTART">SCI_SETSELECTIONSTART(int pos)</b><br />
<b id="SCI_SETSELECTIONEND">SCI_SETSELECTIONEND(int pos)</b><br />
These set the selection based on the assumption that the anchor position is less than the
current position. They do not make the caret visible. The table shows the positions of the
anchor and the current position after using these messages.</p>
<table cellpadding="3" cellspacing="0" border="1" summary="SetSelection caret positioning">
<thead align="center">
<tr>
<th>
</th>
<th>anchor</th>
<th>current</th>
</tr>
</thead>
<tbody align="center">
<tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -