You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
402 lines
9.8 KiB
402 lines
9.8 KiB
15 years ago
|
<chapter id="editing">
|
||
|
<title>Editing Tools</title>
|
||
|
|
||
|
<sect1 id="editing-snippets">
|
||
|
<title>Code Snippets</title>
|
||
|
|
||
|
<itemizedlist>
|
||
|
<title>Features (preliminary overview)</title>
|
||
|
<listitem><para>
|
||
|
SnippetPart adds a tool-view which by default docks to the right
|
||
|
</para></listitem>
|
||
|
<listitem><para>
|
||
|
Adding, editing and removing of snippets is available via a popup-menu
|
||
|
</para></listitem>
|
||
|
<listitem><para>
|
||
|
Double-clicking a snippet form the list inserts it into to the active view at the current cursor position
|
||
|
</para></listitem>
|
||
|
<listitem><para>
|
||
|
Tool tips show the content of a snippet
|
||
|
</para></listitem>
|
||
|
<listitem><para>
|
||
|
Snippets are stored in the users home-directory, so every user can have his own snippets
|
||
|
</para></listitem>
|
||
|
<listitem><para>
|
||
|
Snippets can contain variables in the style of $<varname>VARNAME</varname>$. On using the snippet the user is prompted to enter replacement value for the variables
|
||
|
</para></listitem>
|
||
|
</itemizedlist>
|
||
|
</sect1> <!-- editing-snippets -->
|
||
|
|
||
|
<sect1 id="keyboardmapping">
|
||
|
<title>Keyboard Mapping</title>
|
||
|
<indexterm zone="keyboardmapping"><primary>keybindings</primary></indexterm>
|
||
|
|
||
|
<para>
|
||
|
In the following, we will list the default keybindings of the
|
||
|
default editor. You can configure them as you like (how?)
|
||
|
</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="2">
|
||
|
<tbody>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Left
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves one character left
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Right
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves one character right
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>
|
||
|
&Ctrl;<keycap>
|
||
|
Left
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Moves one word left
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>
|
||
|
&Ctrl;<keycap>
|
||
|
Right
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Moves one word right
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Up
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves up one line
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Down
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves down one line
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Page Up
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves up one page
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Page Down
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves down one page
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Ctrl;<keycap>
|
||
|
Page Down
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Moves to the beginning of the file
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Ctrl;
|
||
|
<keycap>
|
||
|
Page Down
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Moves to the end of the file
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Home
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves to the beginning of the line
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
End
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Moves to the end of the line
|
||
|
</para></entry></row>
|
||
|
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>
|
||
|
For all the keys above, the &Shift; key can be pressed additionally,
|
||
|
to mark from the current cursor position to the one afterwards.
|
||
|
</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="2">
|
||
|
<tbody>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Backspace
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Deletes one character left
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycap>
|
||
|
Delete
|
||
|
</keycap></para></entry>
|
||
|
<entry><para>
|
||
|
Deletes the character under the cursor
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>
|
||
|
&Ctrl;
|
||
|
<keycap>
|
||
|
C
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Copies the selected text to the clipboard
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Ctrl;<keycap>
|
||
|
V
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Pastes the selected text from the clipboard
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Ctrl;<keycap>
|
||
|
X
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Deletes the selected text and puts it into the clipboard
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Ctrl;<keycap>
|
||
|
Z
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Undo
|
||
|
</para></entry></row>
|
||
|
|
||
|
<row><entry><para><keycombo>&Shift;&Ctrl;<keycap>
|
||
|
Z
|
||
|
</keycap></keycombo></para></entry>
|
||
|
<entry><para>
|
||
|
Redo
|
||
|
</para></entry></row>
|
||
|
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
</sect1> <!-- keyboardmapping -->
|
||
|
|
||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
|
||
|
<sect1 id="editing-reporter">
|
||
|
<title>The Problem Reporter</title>
|
||
|
|
||
|
<para>
|
||
|
(... to be written ...)
|
||
|
</para>
|
||
|
</sect1> <!-- editing-reporter -->
|
||
|
|
||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
|
||
|
<sect1 id="searchinggrepping">
|
||
|
<title>Searching and Grepping</title>
|
||
|
<indexterm zone="searchinggrepping"><primary>searching</primary></indexterm>
|
||
|
<indexterm zone="searchinggrepping"><primary>finding</primary></indexterm>
|
||
|
|
||
|
<sect2 id="searching">
|
||
|
<title>Searching for Text</title>
|
||
|
|
||
|
<para>
|
||
|
<keycombo>&Ctrl;<keycap>F</keycap></keycombo>- Find
|
||
|
<keycombo>&Ctrl;<keycap>R</keycap></keycombo>- Replace
|
||
|
</para>
|
||
|
|
||
|
</sect2> <!-- searching -->
|
||
|
|
||
|
|
||
|
<sect2 id="isearch">
|
||
|
<title>ISearch</title>
|
||
|
<indexterm zone="isearch"><primary>isearch</primary></indexterm>
|
||
|
<indexterm zone="isearch"><primary>incremental search</primary></indexterm>
|
||
|
<indexterm zone="isearch"><primary>search</primary><secondary>incremental</secondary></indexterm>
|
||
|
|
||
|
<para>
|
||
|
The conventional search with <menuchoice><guimenu>Edit</guimenu>
|
||
|
<guimenuitem>Find</guimenuitem></menuchoice> requires you to specify the full
|
||
|
search term before starting. Most of the time, it is much faster to search
|
||
|
incrementally. If you click into the edit field labeled
|
||
|
<guilabel>ISearch</guilabel> in the toolbar, the search is performed as you
|
||
|
type. You will find that often the desired term is already found after typing
|
||
|
in 3 or 4 letters.
|
||
|
</para>
|
||
|
|
||
|
</sect2> <!-- isearch -->
|
||
|
|
||
|
|
||
|
<sect2 id="grep">
|
||
|
<title>Grep</title>
|
||
|
<indexterm zone="grep"><primary>search</primary><secondary>in files</secondary></indexterm>
|
||
|
|
||
|
<para>
|
||
|
Both search mechanisms described above are restricted to searching within one
|
||
|
source file. An additional tool which allows you to search through a (possibly
|
||
|
large) number of files is available through the
|
||
|
<guimenuitem>Search in Files...</guimenuitem> item in the
|
||
|
<guimenu>Edit</guimenu> menu. It is basically a frontend for the
|
||
|
&grep;(1) program.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
In the dialog, you can specify which files are searched. There is a number of
|
||
|
wildcard patterns available in a combobox. In this way, you can easily
|
||
|
restrict the find mechanism to header files. Furthermore, you specify a
|
||
|
directory where the search is started. If you check the
|
||
|
<guibutton>Recursive</guibutton> box, the search iterates through all
|
||
|
directories in the hierarchy below this one.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The search term is in general a regular expression following POSIX syntax.
|
||
|
For example, you can use the term <literal>"\<K.*"</literal> if you want to
|
||
|
find all words which begin with the letter K. The following characters
|
||
|
are interpreted in a special way:
|
||
|
</para>
|
||
|
|
||
|
<informaltable>
|
||
|
<tgroup cols="2">
|
||
|
<tbody>
|
||
|
|
||
|
<row><entry>
|
||
|
<literal>.</literal>
|
||
|
</entry><entry>
|
||
|
Matches any character
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>^</literal>
|
||
|
</entry><entry>
|
||
|
Matches the beginning of a line
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>$</literal>
|
||
|
</entry><entry>
|
||
|
Matches the end of a line
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>\<</literal>
|
||
|
</entry><entry>
|
||
|
Matches the beginning of a word
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>\></literal>
|
||
|
</entry><entry>
|
||
|
Matches the end of a word
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>?</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item matches less than once
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>*</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item is matched zero or more times
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>+</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item is matched once or more times
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>{n}</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item is matched exactly n times
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>{n,}</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item is matched n or more times
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>{,n}</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item matches less than n times
|
||
|
</entry></row>
|
||
|
<row><entry>
|
||
|
<literal>{n,m}</literal>
|
||
|
</entry><entry>
|
||
|
The preceding item matches at least <literal>n</literal> times but less
|
||
|
than <literal>m</literal> times
|
||
|
</entry></row>
|
||
|
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</informaltable>
|
||
|
|
||
|
<para>
|
||
|
Backreferences to bracketed subexpressions are also available by the notation
|
||
|
<literal>\n</literal>.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
For C++ programmers, as special bonus there are some search templates
|
||
|
available for typical patterns. These allow you to search for example
|
||
|
all calls of member functions of a certain object.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
Once you start the search by clicking on the <guibutton>Search</guibutton>
|
||
|
button, it will be performed by an external, asynchronous process. All found
|
||
|
items will appear in the view called <guilabel>Grep</guilabel>. You can then
|
||
|
jump to the found items by clicking on them. Note that grep scans the files
|
||
|
as they stored in the file system. If you have modified versions of them in
|
||
|
your editor, you may get some mismatches in the line number, or some found
|
||
|
items will be invalid. You can avoid this by saving all files beforehand.
|
||
|
</para>
|
||
|
|
||
|
</sect2> <!-- grep -->
|
||
|
|
||
|
</sect1> <!-- searchinggrepping -->
|
||
|
|
||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
|
||
|
<sect1 id="code-completion">
|
||
|
<title>Code Completion</title>
|
||
|
|
||
|
<para>
|
||
|
(... to be written ...)
|
||
|
</para>
|
||
|
</sect1> <!-- code-completion -->
|
||
|
|
||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||
|
|
||
|
<sect1 id="newfiles">
|
||
|
<title>Creating New Files and Classes</title>
|
||
|
|
||
|
<para>
|
||
|
(... to be written ...)
|
||
|
</para>
|
||
|
|
||
|
<sect2 id="newfiles-edittemplates">
|
||
|
<title>Editing the Templates</title>
|
||
|
|
||
|
<para>
|
||
|
(... to be written ...)
|
||
|
</para>
|
||
|
</sect2> <!-- newfiles-edittemplates -->
|
||
|
|
||
|
</sect1> <!-- newfiles -->
|
||
|
|
||
|
</chapter> <!-- editing -->
|
||
|
<!-- ====================================================================== -->
|