<chapter id="advanced-editing-tools">
<chapterinfo>
<authorgroup>
<author
>&Anders.Lund; &Anders.Lund.mail;</author>
<othercredit role="translator"
><firstname
>Андрей</firstname
><surname
>Балагута</surname
><affiliation
><address
><email
>uj2@mail.ru</email
></address
></affiliation
><contrib
>Перевод на русский</contrib
></othercredit
> <othercredit role="translator"
><firstname
>Николай</firstname
><surname
>Шафоростов</surname
><affiliation
><address
><email
>shafff@ukr.net</email
></address
></affiliation
><contrib
>Перевод на русский</contrib
></othercredit
>  
</authorgroup>
</chapterinfo>
<title
>Дополнительные возможности редактирования</title>

<sect1 id="advanced-editing-tools-comment">

<title
>Комментирование</title>

<para
>Команды "Комментировать" и "Раскомментировать", которые доступны из меню <guimenu
>Сервис</guimenu
>, позволяют добавить или убрать маркеры комментариев для выделенного блока текста (или для текущей строки, если текст не выделен), при условии, что комментарии поддерживаются форматом редактируемого текста.</para>

<para
>Правила комментирования определяются синтаксисом; таким образом, если подсветка синтаксиса не включена, то команды "Закомментировать" и "Раскомментировать" будут недоступны.</para>

<para
>Некоторые форматы поддерживают только однострочные маркеры комментариев, другие -- только многострочные, третьи -- и те, и другие. Если многострочные маркеры недоступны, то комментирование блока, в котором не до конца выделена последняя строка, будет невозможным.</para>

<para
>Предпочтение отдаётся комментированию отдельных строк однострочными маркерами, если последние допустимы синтаксисом и если такое комментирование возможно -- это помогает избежать проблем со вложенными комментариями.</para>

<para
>При удалении маркеров комментариев выделение снимается с раскомментированного текста. При удалении маркеров многострочного комментария пробелы снаружи маркеров игнорируются.</para>

<para
><indexterm
><primary
>закомментировать</primary
></indexterm
> Чтобы закомментировать выделенный текст (или активную строку), выберите пункт меню<menuchoice
><guimenu
>Сервис</guimenu
><guimenuitem
>Закомментировать</guimenuitem
></menuchoice
> или нажмите соответствующее сочетание клавиш (по умолчанию <keycombo action="simul"
>&Ctrl;<keycap
>D</keycap
></keycombo
>).</para>

<para
><indexterm
><primary
>раскомментировать</primary
></indexterm
> Чтобы удалить маркеры комментариев, выберите пункт меню <menuchoice
><guimenu
>Сервис</guimenu
><guimenuitem
>Раскомментировать</guimenuitem
> </menuchoice
> или нажмите соответствующее сочетание клавиш ( по умолчанию <keycombo action="simul"
>&Ctrl;&Shift;<keycap
>D</keycap
></keycombo
>).</para>

</sect1>

<sect1 id="advanced-editing-tools-commandline">
<title
>Командная строка компонента редактора</title>

<para
>Модуль Kate имеет встроенную командную строку, позволяющую производить различные действия, оставляя интерфейс минималистским. Она представляет из себя поле ввода внизу области редактора. Для получения к ней доступа, выберите пункт меню <menuchoice
><guimenu
>Вид</guimenu
><guimenuitem
>Переключиться в командную строку</guimenuitem
></menuchoice
> или нажмите <keycombo action="simul"
><keycap
>F7</keycap
></keycombo
> (по умолчанию). Команды, доступные из неё, описаны ниже, кроме того, модули могут предоставлять свои дополнительные команды.</para>

<para
>Чтобы выполнить команду, нажмите Enter. На месте команды будет выведено сообщение об успешном её выполнении или об ошибке. Если вы вызвали командную строку клавишей <keycap
>F7</keycap
> она будет автоматически скрыта по прошествии нескольких секунд. Чтобы убрать сообщение и ввести новую команду, нажмите <keycap
>F7</keycap
> ещё раз.</para>

<para
>Вы всегда можете получить справку с помощью команды <command
>help</command
>. Для получение списка всех доступных команд, введите <command
>help list</command
>, для просмотра справки по определённой команде - <command
>help <replaceable
>команда</replaceable
></command
>.</para>

<para
>Для навигации по истории команд, воспользуйтесь стрелками <keycap
>Вверх</keycap
> и <keycap
>Вниз</keycap
>. При отображении команды из истории, её аргументы будут выделены, так что заменить их на другие легко.</para>

<sect2 id="advanced-editing-tools-commandline-commands">
<title
>Стандартные команды</title>

<sect3 id="advanced-editing-tools-commandline-commands-configure">
<title
>Параметры редактора</title>

<para
>Установленные таким способом параметры применяются только к текущему экземпляру редактора и не сохраняются. </para>

<variablelist>
<title
>Типы аргументов</title>

<varlistentry>
<term
>BOOLEAN</term>
<listitem
><para
>Используется для команд включения/выключения. Допустимые значения - <userinput
>on</userinput
>, <userinput
>off</userinput
>, <userinput
>true</userinput
>, <userinput
>false</userinput
>, <userinput
>1</userinput
> или <userinput
>0</userinput
></para
></listitem>
</varlistentry>

<varlistentry>
<term
>INTEGER</term>
<listitem
><para
>Целое число</para
></listitem>
</varlistentry>

<varlistentry>
<term
>STRING</term>
<listitem
><para
>Строка</para
></listitem>
</varlistentry>

</variablelist>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>set-tab-width</command
><arg
>INTEGER width</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливает ширину представления символов табуляции.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-width</command
><arg
>INTEGER width</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливает ширину отступа. Только при создании отступов пробелами.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap-column</command
><arg
>INTEGER width</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливает максимальную длину строк в случае, если включён автоматический перенос.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-icon-border</command
><arg
>enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливать видимость рамок пиктограмм</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-folding-markers</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливать видимость маркеров сворачивания блоков кода.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-line-numbers</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Устанавливать видимость нумерации строк</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Заменять при вводе символы табуляции на пробелы. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Удалять пробелы в конце строки при перемещении курсора с неё.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-show-tabs</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Представлять символы табуляции пробельное пространство в конце строк маленькими точками.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-spaces</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Вставлять заданное количество пробелов для каждого уровня отступа, вместо одного символа табуляции.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-mixed-indent</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Использовать для отступов как символы табуляции, так и пробелы. Это реализуется путём замены пробелов в количестве, кратном ширине символа табуляциями, на последние.</para>
<para
>Эта команда также включить расстановку отступов пробелами, и установит ширину отступов, если она не указана, в половину значения <option
>tab-width</option
> (для текущего документа на время выполнения).</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-word-wrap</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Динамический перенос слов</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-replace-tabs-save</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Заменять символы табуляции на пробелы при сохранении.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-remove-trailing-space-save</command
><arg
>BOOLEAN enable</arg
></cmdsynopsis
></term>
<listitem
><para
>Удалить пробелы в конце строк при сохранении.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-indent-mode</command
><arg
>name</arg
></cmdsynopsis
></term>
<listitem
><para
>Выбрать режим расстановки отступов. Параметр <userinput
>name</userinput
> может иметь следующие значения: 'cstyle', 'csands', 'xml', 'python', 'varindent' и 'none'. При других значениях используется 'none'.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>set-highlight</command
><arg
>highlight</arg
></cmdsynopsis
></term>
<listitem
><para
>Выбрать формат для подсветки, один из содержащихся в подменю<menuchoice
><guimenu
>Сервис</guimenu
><guisubmenu
>Подсветка синтаксиса</guisubmenu
></menuchoice
>. Доступно также автозавершение параметра.</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-edit">
<title
>Команды редактирования</title>

<para
>Команды, которые непосредственно изменяют текущий документ.</para>

<variablelist>
<varlistentry>
<term
><cmdsynopsis
><command
>indent</command
></cmdsynopsis
></term>
<listitem
><para
>Вставить отступы к выделенным строкам или к текущей.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>unindent</command
></cmdsynopsis
></term>
<listitem
><para
>Снять отступы с выделенных строк или с текущей.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>cleanindent</command
></cmdsynopsis
></term>
<listitem
><para
>Очистить отступы в выделенных строках или в текущей в соответствии с параметрами расстановки отступов для текущего документа. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>comment</command
></cmdsynopsis
></term>
<listitem
><para
>Вставить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла (определяется в файле подсветки синтаксиса).</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>uncomment</command
></cmdsynopsis
></term>
<listitem
><para
>Удалить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>kill-line</command
></cmdsynopsis
></term>
<listitem
><para
>Удалить текущую строку.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>replace</command
><arg
>pattern</arg
><arg
>replacement</arg
></cmdsynopsis
></term>
<listitem
><para
>Заменить текст, совпадающий с <userinput
>pattern</userinput
> на <userinput
>replacement</userinput
>. Для включения пробелов в <userinput
>pattern</userinput
>, нужно заключить в кавычки и <userinput
>pattern</userinput
> и <userinput
>replacement</userinput
>, в двойные или одинарные. Если аргументы не заключены в кавычки, первое слово будет принято за <userinput
>pattern</userinput
>, а остальное - за <userinput
>replacement</userinput
>. Если <userinput
>replacement</userinput
> не задать, вхождения текста будут удалены.</para>
<para
>Для настройки параметров поиска, нужно указать соответствующие флаги после двоеточия (<userinput
>replace:options pattern replacement</userinput
>): <variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Производить поиск в обратном направлении.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Искать с позиции курсора.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Производить поиск только по выделенному тексту.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Аргумент <userinput
>pattern</userinput
> - регулярное выражение. Вы можете использовать <userinput
>\N</userinput
> в <userinput
>replacement</userinput
> для получения N-ной подстроки найденного текста.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>С учётом регистра.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>p</userinput
></term>
<listitem
><para
>Подтверждать каждую замену.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Только целые слова.</para
></listitem>
</varlistentry>

</variablelist>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>date</command
><arg
>format</arg
></cmdsynopsis
></term>
<listitem
><para
>Вставить строку с датой/временем в указанном формате (задаётся параметром <userinput
>format</userinput
>), или в <quote
>yyyy-MM-dd hh:mm:ss</quote
>, если параметр упущен. Доступны следующие подстановки: <informaltable
> <tgroup cols="2"
> <tbody>
<row
><entry
><literal
>d</literal
></entry
><entry
>Номер дня в месяце без ведущего нуля (1-31).</entry
></row>
<row
><entry
><literal
>dd</literal
></entry
><entry
>Номер дня в месяце с ведущим нулём (01-31).</entry
></row>
<row
><entry
><literal
>ddd</literal
></entry
><entry
>Сокращённое название дня недели ('Пн'..''Вс, 'Mon'..'Sun').</entry
></row>
<row
><entry
><literal
>dddd</literal
></entry
><entry
>Полное названия дня недели ('Понедельник'..'Воскресенье', 'Monday'..'Sunday').</entry
></row>
<row
><entry
><literal
>M</literal
></entry
><entry
>Номер месяца без ведущего нуля (1-12).</entry
></row>
<row
><entry
><literal
>MM</literal
></entry
><entry
>Номер месяца с ведущим нулём (01-12).</entry
></row>
<row
><entry
><literal
>MMM</literal
></entry
><entry
>Сокращённое название месяца ('Янв'..'Дек', 'Jan'..'Dec').</entry
></row>
<row
><entry
><literal
>yy</literal
></entry
><entry
>Год двумя цифрами (00-99).</entry
></row>
<row
><entry
><literal
>yyyy</literal
></entry
><entry
>Год четырьмя цифрами (1752-8000).</entry
></row>
<row
><entry
><literal
>h</literal
></entry
><entry
>Номер часа без ведущего нуля (0..23 или 1..12, в зависимости от настроек).</entry
></row>
<row
><entry
><literal
>hh</literal
></entry
><entry
>Номер часа с ведущим нулём (00..23 or 01..12, в зависимости от настроек).</entry
></row>
<row
><entry
><literal
>m</literal
></entry
><entry
>Номер минуты без ведущего нуля (0..59).</entry
></row>
<row
><entry
><literal
>mm</literal
></entry
><entry
>Номер минуты с ведущим нулём (00..59). </entry
></row>
<row
><entry
><literal
>s</literal
></entry
><entry
>Секунда без ведущего нуля (0..59).</entry
></row>
<row
><entry
><literal
>ss</literal
></entry
><entry
>Секунда с ведущим нулём (00..59).</entry
></row>
<row
><entry
><literal
>z</literal
></entry
><entry
>Миллисекунда без ведущих нулей (0..999).</entry
></row>
<row
><entry
><literal
>zzz</literal
></entry
><entry
>Миллисекунда с ведущими нулями (000..999).</entry
></row>
<row
><entry
><literal
>AP</literal
></entry
><entry
>Использовать 12-часовый формат часов. AP будет заменено на "AM" или "PM".</entry
></row>
<row
><entry
><literal
>ap</literal
></entry
><entry
>Использовать 12-часовый формат часов. ap будет заменено на "am" или "pm".</entry
></row>

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

</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>char</command
><arg
>identifier</arg
></cmdsynopsis
></term>
<listitem>
<para
>Эта команда позволяет вставить символ по его числовому идентификатору в десятичной, восьмеричной или шестнадцатеричной системах счисления. Чтобы использовать её, откройте диалоговое окно "Команда правки" и наберите <userinput
>char: [number]</userinput
> в строке ввода, после чего нажмите кнопку <guibutton
>OK</guibutton
>.</para>

<example>
<title
>Примеры использования команды <command
>char</command
></title>

<para
>Введите: <userinput
>char:234</userinput
></para>
<para
>Получите: <computeroutput
>&#234;</computeroutput
></para>
<para
>Введите: <userinput
>char:0x1234</userinput
></para>
<para
>Получите: <computeroutput
>&#x1234;</computeroutput
></para>
</example>

</listitem>
</varlistentry>

<varlistentry>
<term>
<indexterm
><primary
>замена в стиле sed</primary>
<secondary
>поиск в стиле sed</secondary
></indexterm>
<command
>s///[ig]</command
> <command
>%s///[ig]</command
></term>

<listitem>
<para
>"Типичный пользователь" при виде этих команд обязательно вздрогнет и начнёт искать на клавиатуре кнопку "Windows". В самом деле, кому придёт в голову искать текст подобным образом? Но вы же не "типичный", не так ли? Поэтому попробуем разобраться в этих двух sed-подобных командах. Первая выполняет поиск/замену в текущей строке, вторая -- во всём файле (<command
>%s///</command
>).</para>

<para
>Вкратце, команды производят поиск текста, заданного <emphasis
>маской поиска</emphasis
> -- регулярным выражением (regexp) между первой и второй наклонной чертой, и, при нахождении, выполняет замену выражением, которое задано между второй и третьей чертой. Круглые скобки в маске поиска позволяют задать подстроки в найденном тексте, на которые можно потом ссылаться в выражении замены. Обратная ссылка -- это регулярное выражение, которое при совпадении заменяется на фактический текст и может быть использовано в шаблоне замены. Для этого, в нужном месте поставьте обратную черту, а за ней номер подстроки по порядку (<userinput
>\1</userinput
> -- для первой пары скобок, <userinput
>\2</userinput
> -- для второй, и т. д.).</para>

<para
>Чтобы искать сами скобки <literal
>(</literal
> или <literal
>)</literal
>, нужно предварить их обратной чертой: <userinput
>\(\)</userinput
>.</para>

<para
>Если в самом конце указать <userinput
>i</userinput
>, поиск будет проводиться с учётом регистра, а если <userinput
>g</userinput
> - будут заменены все вхождения текста, совпадающего с регулярным выражением, иначе - только первое.</para>

<example>

<title
>Замена текста в текущей строке</title>

<para
>Будучи противником принципа "разделяй и властвуй", вы решили откомпилировать свою программу. Но компилятор начал на вас ругаться: класс <classname
>myClass</classname
>, упомянутый в строке 3902, не определён.</para>

<para
>&quot;Чёрт!&quot;, - думаете вы, -- &quot;да это же мой класс <classname
>MyClass</classname
>&quot;. Вы добираетесь до строки 3902 и, вместо того, чтобы пытаться искать слово в этой длинной строке (а кто сейчас укладывает каждую строчку кода в 60 символов?), вы запускаете диалоговое окно "Команда правки", вводите <userinput
>s/myclass/MyClass/i</userinput
>, жмёте <guibutton
>OK</guibutton
>, сохраняете и компилируйте -- успешно и без ошибок.</para>

</example>

<example>
<title
>Замена текста во всём файле</title>

<para
>Представьте себе, что у вас есть файл, в котором вы несколько раз упоминаете некоего человека по имени <quote
>госпожа Иванова</quote
>. Но вдруг вам сообщают, что эта самая госпожа Иванова вчера вышла замуж за господина с редкой фамилией <quote
>Петров</quote
>. Естественно, вам нужно заменить все упоминания о госпоже Ивановой на текст <quote
>госпожа Петрова</quote
>.</para>

<para
>Вызовите командную строку и введите следующий текст: <userinput
>%s/госпожа Иванова/госпожа Петрова/</userinput
> -- и ваша работа сделана.</para>

</example>

<example>
<title
>Более сложный пример</title>

<para
>Этот пример показывает, как пользоваться <emphasis
>обратными ссылками</emphasis
> и <emphasis
>классами символов</emphasis
> (если вы не знаете, что это такое, советуем ознакомиться с приведенными ниже разделами).</para>

<para
>Допустим, у вас набрана такая строка: <programlisting
>void MyClass::DoStringOps( String      &amp;foo, String &amp;bar String *p, int  &amp;a, int &amp;b )</programlisting>
</para>
<para
>Теперь вы думаете, что это недостаточно "красивый" код, и решаете, что вам нужно использовать ключевое слово <constant
>const</constant
> с параметрами, передаваемыми по ссылке (теми, перед которыми стоит амперсанд). Вы также хотите свернуть все пробелы, чтобы между каждым словом был всего один пробел.</para>

<para
>Запустите диалоговое окно "Команда правки" и наберите: <userinput
>s/\s+(\w+)\s+(&amp;)/ const \1 \2/g</userinput
>, и не забудьте нажать кнопку <guibutton
>OK</guibutton
> -- иначе ничего не выйдет. Символ <userinput
>g</userinput
> в конце команды указывает компилятору "пересчитывать" регулярное выражение обратной ссылки каждый раз, когда встречаются совпадения.</para>

<para
>Вывод: <computeroutput
>void MyClass::DoStringOps( const String &amp;foo, const String &amp;bar String *p, const int &amp;a, const int &amp;b )</computeroutput
></para>

<para
>Миссия завершена! Ну, и что же произошло? Мы искали некоторое количество пробелов (<literal
>\s+</literal
>), за которыми идут несколько латинских символов (<literal
>\w+</literal
>), следом за ними опять несколько пробелов (<literal
>\s+</literal
>), после которых стоит амперсанд, и по ходу дела сохраняли эти алфавитные символы и амперсанд для использования их в операции замены. После этого мы заменили совпадающие части строки следующей последовательностью: один пробел, за которым идёт спецификатор <quote
>const</quote
>, за ним ещё один пробел, после которого наши сохранённые символы (<literal
>\1</literal
>), ещё один пробел и сохранённый амперсанд (<literal
>\2</literal
>).</para>

<para
>В одном случае латинские символы составили слово <quote
>String</quote
>, в другом -- слово <quote
>int</quote
>, т.е. символьный класс <literal
>\w</literal
> с последующим знаком <literal
>+</literal
> определяет символьный набор произвольной длины.</para>

</example>

</listitem>

</varlistentry>

</variablelist>

</sect3>

<sect3 id="advanced-editing-tools-commandline-commands-navigation">
<title
>Команды навигации</title>

<variablelist>

<varlistentry>
<term
><cmdsynopsis
><command
>goto</command
><arg
>INT line</arg
></cmdsynopsis
></term>
<listitem
><para
>Перейти к указанной строке.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>find</command
><arg
>pattern</arg
></cmdsynopsis
></term>
<listitem
><para
>Перейти к первому вхождению образца, задаваемого параметром <userinput
>pattern</userinput
>. Последующие вхождения можно найти посредством пункта меню <menuchoice
><guimenu
>Правка</guimenu
><guimenuitem
>Найти далее</guimenuitem
></menuchoice
> (клавиша по умолчанию - <keycap
>F3</keycap
>).</para>
<para
>Параметры поиска можно задавать добавлением двоеточия и "флагов" после её имени (<userinput
>find:options pattern</userinput
>). Флаги - набор из следующих букв: <variablelist>

<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Производить поиск в обратном направлении.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Искать с позиции курсора.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>e</userinput
></term>
<listitem
><para
>Производить поиск только по выделенному тексту.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Аргумент <userinput
>pattern</userinput
> - регулярное выражение. Вы можете использовать <userinput
>\N</userinput
> в <userinput
>replacement</userinput
> для получения N-ной подстроки найденного текста.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>С учётом регистра.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>w</userinput
></term>
<listitem
><para
>Только целые слова.</para
></listitem>
</varlistentry>

</variablelist>

</para>

</listitem>

</varlistentry>

<varlistentry>
<term
><cmdsynopsis
><command
>ifind</command
><arg
>pattern</arg
></cmdsynopsis
></term>
<listitem
><para
>Поиск по мере набора. Поддерживается установка дополнительных флагов <variablelist>
<varlistentry>
<term
><userinput
>b</userinput
></term>
<listitem
><para
>Производить поиск в обратном направлении.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>r</userinput
></term>
<listitem
><para
>Поиск по регулярному выражению.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>s</userinput
></term>
<listitem
><para
>С учётом регистра.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><userinput
>c</userinput
></term>
<listitem
><para
>Искать с позиции курсора.</para
></listitem>
</varlistentry>

</variablelist>
</para
></listitem>
</varlistentry>

</variablelist>

</sect3>

</sect2>

</sect1>

</chapter>
