<chapter id="editing">
<title
>Средства редактирования</title>

<sect1 id="editing-snippets">
<title
>Заготовки кода</title>

<itemizedlist>
  <title
>Обзор возможностей</title>
  <listitem
><para
>SnippetPart добавляет новое отображение справа </para
></listitem>
  <listitem
><para
>Добавление, изменение и удаление заготовок доступно через контекстное меню </para
></listitem>
  <listitem
><para
>Двойной щелчок по заготовке вставит её в текущую позицию курсора </para
></listitem>
  <listitem
><para
>Содержание заготовок отображается в подсказках </para
></listitem>
  <listitem
><para
>Заготовки кода хранятся в домашнем каталоге пользователя, поэтому каждый пользователь может иметь свой набор заготовок. </para
></listitem>
  <listitem
><para
>Они могут содержать переменные в виде $<varname
>VARNAME</varname
>$. Перед использованием заготовок с переменными будет предложено ввести их значение </para
></listitem>
</itemizedlist>
</sect1
> <!-- editing-snippets -->

<sect1 id="keyboardmapping">
<title
>Комбинации клавиш</title>
<indexterm zone="keyboardmapping"
><primary
>комбинации клавиш</primary
></indexterm>

<para
>Далее следует список стандартных комбинаций клавиш редактора. </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Стрелка влево </keycap
></para
></entry>
<entry
><para
>Переместиться на один символ влево </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вправо </keycap
></para
></entry>
<entry
><para
>Переместиться на один символ вправо </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Стрелка влево </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться на одно слово влево </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Стрелка вправо </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться на одно слово вправо </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вверх </keycap
></para
></entry>
<entry
><para
>Переместиться на одну строку вверх </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вниз </keycap
></para
></entry>
<entry
><para
>Переместиться на одну строку вниз </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Up </keycap
></para
></entry>
<entry
><para
>Переместиться на одну страницу вверх </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Down </keycap
></para
></entry>
<entry
><para
>Переместиться на одну страницу вниз </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Page Down </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться в начало файла </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl; <keycap
> Page Down </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться в конец файла </para
></entry
></row>

<row
><entry
><para
><keycap
>Home </keycap
></para
></entry>
<entry
><para
>Переместиться в начало строки </para
></entry
></row>

<row
><entry
><para
><keycap
>End </keycap
></para
></entry>
<entry
><para
>Переместиться в конец строки </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Если к приведённым выше комбинациям клавиш добавить &Shift;, при перемещении курсора будет также выделяться текст, через который курсор проходит при перемещении. </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Backspace </keycap
></para
></entry>
<entry
><para
>Удалить один символ слева </para
></entry
></row>

<row
><entry
><para
><keycap
>Delete </keycap
></para
></entry>
<entry
><para
>Удалить один символ справа (под курсором) </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl; <keycap
> C </keycap
></keycombo
></para
></entry>
<entry
><para
>Копировать выделенный текст в буфер обмена </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> V </keycap
></keycombo
></para
></entry>
<entry
><para
>Вставить выделенный текст из буфера обмена </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> X </keycap
></keycombo
></para
></entry>
<entry
><para
>Копировать выделенный текст в буфер обмена и затем удалить его </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Ctrl;<keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Отменить последнее действие </para
></entry
></row>

<row
><entry
><para
><keycombo
>&Shift;&Ctrl;<keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Повторить последнее отменённое действие </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

</sect1
> <!-- keyboardmapping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="editing-reporter">
<title
>Отчёт об ошибках</title>

<para
>(... в процессе написания ...) </para>
</sect1
> <!-- editing-reporter -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="searchinggrepping">
<title
>Поиск в текущем документе и файлах</title>
<indexterm zone="searchinggrepping"
><primary
>поиск</primary
></indexterm>
<indexterm zone="searchinggrepping"
><primary
>нахождение</primary
></indexterm>

<sect2 id="searching">
<title
>Поиск текста</title>

<para
><keycombo
>&Ctrl;<keycap
>F</keycap
></keycombo
> &mdash; найти, <keycombo
>&Ctrl;<keycap
>R</keycap
></keycombo
> &mdash; найти и заменить </para>

</sect2
> <!-- searching -->


<sect2 id="isearch">
<title
>ISearch</title>
<indexterm zone="isearch"
><primary
>поиск по мере набора</primary
></indexterm>
<indexterm zone="isearch"
><primary
>поиск по мере набора</primary
></indexterm>
<indexterm zone="isearch"
><primary
>поиск</primary
><secondary
>по мере набора</secondary
></indexterm>

<para
>Традиционный поиск через <menuchoice
><guimenu
>Правка</guimenu
> <guimenuitem
>Найти</guimenuitem
></menuchoice
> требует указания искомого отрывка текста полностью. Однако значительно быстрее искать текст по мере набора (инкрементально): нажмите кнопку <guilabel
>ISearch</guilabel
> на панели инструментов и начинайте вводить искомый текст. По мере того, как вы будете вводить новые буквы, каждый раз будет выполняться поиск набираемого слова. Обычно искомое место в документе находится уже после ввода 3-4 букв. </para>

</sect2
> <!-- isearch -->


<sect2 id="grep">
<title
>Grep</title>
<indexterm zone="grep"
><primary
>поиск</primary
><secondary
>в файлах</secondary
></indexterm>

<para
>Оба описанных выше поиска ограничены текущим файлом. Для поиска сразу в нескольких файлах, воспользуйтесь пунктом <guimenuitem
>Поиск в файлах...</guimenuitem
> меню <guimenu
>Правка</guimenu
>. При этом будет вызван графический интерфейс к команде &grep;(1). </para>

<para
>Здесь вы можете выбрать маску файлов, в которых будет производиться поиск, и другие средства по уменьшению количества сканируемых файлов. Кроме того, в этом диалоге вы можете указать каталог для поиска. Если вы включите флажок <guibutton
>Рекурсивно</guibutton
>, поиск продолжится и во всех вложенных каталогах. </para>

<para
>Обычно условие поиска представляет собой регулярное выражение с синтаксисом стандарта POSIX. Например, вы можете использовать условие <literal
>"\&lt;K.*"</literal
> если хотите найти все слова, начинающиеся с буквы K. Следующие символы являются служебными: </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry>
  <literal
>.</literal>
</entry
><entry
>Любой символ </entry
></row>
<row
><entry>
  <literal
>^</literal>
</entry
><entry
>Начало строки </entry
></row>
<row
><entry>
  <literal
>$</literal>
</entry
><entry
>Конец строки </entry
></row>
<row
><entry>
  <literal
>\&lt;</literal>
</entry
><entry
>Начало слова </entry
></row>
<row
><entry>
  <literal
>\&gt;</literal>
</entry
><entry
>Конец слова </entry
></row>
<row
><entry>
  <literal
>?</literal>
</entry
><entry
>Предшествующий элемент может совпадать меньше, чем один раз </entry
></row>
<row
><entry>
  <literal
>*</literal>
</entry
><entry
>Предшествующий элемент отсутствует или присутствует один или несколько раз </entry
></row>
<row
><entry>
  <literal
>+</literal>
</entry
><entry
>Предшествующий элемент присутствует один или более раз </entry
></row>
<row
><entry>
  <literal
>{n}</literal>
</entry
><entry
>Предшествующий элемент отсутствует или присутствует один или несколько раз </entry
></row>
<row
><entry>
  <literal
>{n,}</literal>
</entry
><entry
>Предшествующий элемент присутствует один или более раз </entry
></row>
<row
><entry>
  <literal
>{,n}</literal>
</entry
><entry
>Предшествующий элемент может совпадать меньше, чем один раз </entry
></row>
<row
><entry>
  <literal
>{n,m}</literal>
</entry
><entry
>Предшествующий элемент присутствует больше <literal
>n</literal
> но меньше <literal
>m</literal
> раз </entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Обратное отношение к подвыражениям в скобках также доступно через нотацию <literal
>\n</literal
>. </para>

<para
>Для программирующих на C++ есть специфические шаблоны. Например, для поиска всех вызовов всех элементарных функций определённого объекта. </para>

<para
>После запуска поиска, но будет производится внешним, асинхронным процессом. Все найденные элементы будут отображены в виде <guilabel
>Grep</guilabel
>. Чтобы перейти к просмотру файла, щёлкните на нём. Помните, что файлы сортируются по их физическому расположению. Если найденный файл уже открыт в редакторе (и изменён), могут быть несоответствия в номерах строки. Для предотвращения этого сохраняйте все файлы перед поиском. </para>

</sect2
> <!-- grep -->

</sect1
> <!-- searchinggrepping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="code-completion">
<title
>Завершение кода</title>

<para
>(... в процессе написания ...) </para>
</sect1
> <!-- code-completion -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="newfiles">
<title
>Создание новых файлов и классов</title>

<para
>(... в процессе написания ...) </para>

<sect2 id="newfiles-edittemplates">
<title
>Изменение шаблонов</title>

<para
>(... в процессе написания ...) </para>
</sect2
> <!-- newfiles-edittemplates -->

</sect1
> <!-- newfiles -->

</chapter
> <!-- editing -->
<!-- ====================================================================== -->
