<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 > — найти, <keycombo >&Ctrl;<keycap >R</keycap ></keycombo > — найти и заменить </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 >"\<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 >\<</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 >+</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 --> <!-- ====================================================================== -->