|
|
<chapter id="advanced-editing-tools">
|
|
|
<chapterinfo>
|
|
|
<authorgroup>
|
|
|
<author
|
|
|
>&Anders.Lund; &Anders.Lund.mail;</author>
|
|
|
<author
|
|
|
>&Dominik.Haumann; &Dominik.Haumann.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
|
|
|
>opaleksej@yandex.ru</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
|
|
|
>BOOLEAN 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
|
|
|
> не задать, все <userinput
|
|
|
>pattern</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
|
|
|
>ê</computeroutput
|
|
|
></para>
|
|
|
<para
|
|
|
>Введите: <userinput
|
|
|
>char:0x1234</userinput
|
|
|
></para>
|
|
|
<para
|
|
|
>Получите: <computeroutput
|
|
|
>ሴ</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
|
|
|
>"Чёрт!", - думаете вы, -- "да это же мой класс <classname
|
|
|
>MyClass</classname
|
|
|
>". Вы добираетесь до строки 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 &foo, String &bar String *p, int &a, int &b )</programlisting>
|
|
|
</para>
|
|
|
<para
|
|
|
>Теперь вы думаете, что это недостаточно "красивый" код, и решаете, что вам нужно использовать ключевое слово <constant
|
|
|
>const</constant
|
|
|
> с параметрами, передаваемыми по ссылке (теми, перед которыми стоит амперсанд). Вы также хотите удалить лишние пробелы.</para>
|
|
|
|
|
|
<para
|
|
|
>Запустите диалоговое окно "Команда правки" и наберите: <userinput
|
|
|
>s/\s+(\w+)\s+(&)/ const \1 \2/g</userinput
|
|
|
>, и не забудьте нажать кнопку <guibutton
|
|
|
>OK</guibutton
|
|
|
> -- иначе ничего не выйдет. Символ <userinput
|
|
|
>g</userinput
|
|
|
> в конце команды указывает компилятору "пересчитывать" регулярное выражение обратной ссылки каждый раз, когда встречаются совпадения.</para>
|
|
|
|
|
|
<para
|
|
|
>Вывод: <computeroutput
|
|
|
>void MyClass::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &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>
|
|
|
|
|
|
<sect1 id="advanced-editing-tools-code-folding">
|
|
|
<title
|
|
|
>Использование сворачивания кода</title>
|
|
|
|
|
|
<para
|
|
|
>Сворачивание кода позволяет скрывать участки документа в редакторе, упрощая осмотр громоздких документов. В &kate; разделение на сворачиваемые участки определяется правилами подсветки синтаксиса, следовательно, доступно не для всех форматов файлов. В основном, сворачивание кода доступно в режиме написания исходного кода, XML-разметки и т.п. Большинство способов подсветки позволяют также самостоятельно определять скрываемые области, чаще всего используя ключевые слова <userinput
|
|
|
>BEGIN</userinput
|
|
|
> и <userinput
|
|
|
>END</userinput
|
|
|
>.</para>
|
|
|
|
|
|
<para
|
|
|
>Для того чтобы включить/отключить функцию сворачивания, выберите пункт меню <menuchoice
|
|
|
><guimenu
|
|
|
>Вид</guimenu
|
|
|
><guimenuitem
|
|
|
>Показать маркеры сворачивания</guimenuitem
|
|
|
></menuchoice
|
|
|
>. На панели маркеров сворачивания с левой стороны документа появится графическое представление сворачиваемых участков. Знак "-" показывает, что участок развёрнут, знак "+" обозначает свёрнутый участок. Щелчок на знаке "+" приведёт к разворачиванию свёрнутого участка, и наоборот (с одновременным изменением графического представления).</para>
|
|
|
|
|
|
<para
|
|
|
>Для управления состоянием сворачиваемых участков служат четыре команды, смотрите <link linkend="view-code-folding"
|
|
|
>справку по меню</link
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Если вы не хотите использовать функцию сворачивания, можно отключить параметр <guilabel
|
|
|
>Показать маркеры сворачивания (если доступны)</guilabel
|
|
|
> на <link linkend="config-dialog-editor-appearance"
|
|
|
>странице настройки внешнего вида редактора</link
|
|
|
></para>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="advanced-editing-tools-scripting">
|
|
|
|
|
|
<title
|
|
|
>Написание сценариев Javascript в компоненте редактора</title>
|
|
|
|
|
|
<sect2 id="advanced-editing-tools-scripting-introduction">
|
|
|
|
|
|
<title
|
|
|
>Введение</title>
|
|
|
|
|
|
<para
|
|
|
>Начиная с версии 2.5, компонент редактора &kate; поддерживает написание сценариев на языке ECMA, известном также как JavaScript.</para>
|
|
|
|
|
|
<para
|
|
|
>Сценарии можно вызывать только из <link linkend="advanced-editing-tools-commandline"
|
|
|
>встроенной командной строки</link
|
|
|
>. При этом необходимо, чтобы сценарий и файл .desktop (если он существует) находились в той папке, в которой &kate; сможет их разыскать. Подходящая папка для этого - <filename
|
|
|
>katepart/scripts</filename
|
|
|
> в папках данных &kde;. Найти папки данных можно командой <command
|
|
|
>tde-config <option
|
|
|
>--path</option
|
|
|
> <parameter
|
|
|
>data</parameter
|
|
|
></command
|
|
|
>. Как правило, существуют системная и пользовательские папки данных. Естественно, сценарии в системных папках доступны всем пользователям системы, а в пользовательских - только их владельцам.</para>
|
|
|
|
|
|
<note
|
|
|
><para
|
|
|
>Эта функциональность находится на экспериментальной стадии разработки, весьма вероятно его изменение в дальнейшем.</para>
|
|
|
<para
|
|
|
>Сценарии нельзя добавлять в меню или назначать им комбинации клавиш. Может быть, в дальнейшем мы сможем это исправить.</para>
|
|
|
<para
|
|
|
>Также невозможно использовать в сценариях аргументы. Потерпите, в светлом будущем это вполне может произойти ;)</para>
|
|
|
</note>
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="advanced-editing-tools-scripting-reference">
|
|
|
|
|
|
<title
|
|
|
>Программный интерфейс (API) Kate JavaScript</title>
|
|
|
|
|
|
<para
|
|
|
>Здесь приведен полный список функций и свойств, доступных для объектов <type
|
|
|
>document</type
|
|
|
> и <type
|
|
|
>view</type
|
|
|
>. Разумеется, доступны любые стандартные объекты языка, такие как <type
|
|
|
>Math</type
|
|
|
>, <type
|
|
|
>String</type
|
|
|
>, <type
|
|
|
>Regex</type
|
|
|
> и т.д.</para>
|
|
|
|
|
|
<para
|
|
|
>Во время исполнения сценария, объектом <classname
|
|
|
>document</classname
|
|
|
> является текущий документ, а объектом <classname
|
|
|
>view</classname
|
|
|
> является текущий вид (панель).</para>
|
|
|
|
|
|
<note
|
|
|
><para
|
|
|
>Конечно, в настоящее время типы аргументов в JavaScript не используются, они просто информируют, какие виды значений ожидаются функциями.</para
|
|
|
></note>
|
|
|
|
|
|
<variablelist id="advanced-editing-tools-scripting-global">
|
|
|
<title
|
|
|
>Глобальные функции</title>
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>debug( <parameter
|
|
|
><replaceable
|
|
|
>string</replaceable
|
|
|
></parameter
|
|
|
>) [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>string</parameter
|
|
|
> выводимая строка</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Выводит строку на стандартный поток ошибок, используя функцию <function
|
|
|
>kDebug()</function
|
|
|
>. Для вывода используется выделенное пространство, в начало может быть добавлен префикс <computeroutput
|
|
|
>Kate (KJS Scripts):</computeroutput
|
|
|
> </para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
</variablelist>
|
|
|
|
|
|
<variablelist id="advanced-editing-tools-scripting-document">
|
|
|
<title
|
|
|
>Программный интерфейс (API) класса <classname
|
|
|
>document</classname
|
|
|
></title>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.attribute( <parameter
|
|
|
><replaceable
|
|
|
>line</replaceable
|
|
|
> </parameter
|
|
|
>, <parameter
|
|
|
><replaceable
|
|
|
>column</replaceable
|
|
|
></parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>uint line</parameter
|
|
|
> Строка, в которой находится атрибут.</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>uint column</parameter
|
|
|
> Столбец, в котором находится атрибут.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает числовые значения позиции атрибута в документе [<parameter
|
|
|
>line</parameter
|
|
|
>,<parameter
|
|
|
>column</parameter
|
|
|
>]. Атрибут представляет собой вид или стиль текста, а также используется для определения подсветки синтаксиса в различных частях текста смешанных форматов вроде HTML или PHP.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.canBreakAt( <parameter
|
|
|
>Char c</parameter
|
|
|
>, <parameter
|
|
|
>uint attribute</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>c</parameter
|
|
|
> Знак для проверки</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>attribute</parameter
|
|
|
> Атрибут для позиции <parameter
|
|
|
>c</parameter
|
|
|
>.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
> Возвращает допустимость разрыва строки на знаке c с атрибутом attribute. Результат зависит от того, какие атрибуты допускают разрыв строки без потери принадлежности подсветки.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.canComment( <parameter
|
|
|
>uint start_attribute</parameter
|
|
|
>, <parameter
|
|
|
>uint end_attribute</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>start_attribute</parameter
|
|
|
> Атрибут начала участка комментария.</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>end_attribute</parameter
|
|
|
> Атрибут конца участка комментария.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает принадлежность start_attribute и end_attribute к одной и той же системе подсветки синтаксиса. Если это так - всё нормально. </para>
|
|
|
<example>
|
|
|
<title
|
|
|
>использование canComment</title>
|
|
|
<programlisting
|
|
|
>if ( document.canComment( document.attribute(1,0), document.attribute(5,0) ) ) {
|
|
|
// 1,0 и 5,0 принадлежат к одной системе подсветки синтаксиса
|
|
|
}
|
|
|
</programlisting>
|
|
|
</example>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.clear(); [функция]</function
|
|
|
></term>
|
|
|
<listitem
|
|
|
><para
|
|
|
>Очищает документ.</para
|
|
|
></listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.commentStart( <parameter
|
|
|
>uint attribute</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>attribute</parameter
|
|
|
> Атрибут текста, для которого вводится строка commentStart.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает строку, необходимую для начала многострочного комментария к тексту с атрибутом, или пустую строку, если в этом тексте не поддерживаются многострочные комментарии.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.commentMarker( <parameter
|
|
|
>uint attribute</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>attribute</parameter
|
|
|
> Атрибут текста, для которого вводится строка commentMarker</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает пометку остатка строки как комментария к тексту с атрибутом, либо пустую строку для текста, в котором не поддерживаются комментарии в той же строке.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.commentEnd( <parameter
|
|
|
>uint attribute</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>attribute</parameter
|
|
|
> Атрибут текста, для которого вводится строка commentEnd</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает строку, необходимую для окончания многострочного комментария к тексту с атрибутом, либо пустую строку для текста, в котором многострочные комментарии не поддерживаются.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.editBegin(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Начало группы редактирования. Все действия включаются в одну группу отмены до вызова editEnd().</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.editEnd(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Окончание группы редактирования.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.highlightMode; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Название режима подсветки (JavaScript или C++). Если к документу не применяется режим подсветки, устанавливается значение None. Помните - необходимо использовать англоязычное название.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.indentMode; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Название режима отступов документа, такое как <literal
|
|
|
>normal</literal
|
|
|
> или <literal
|
|
|
>cstyle</literal
|
|
|
>. Помните - если режим отступов не задан, устанавливается значение <literal
|
|
|
>none</literal
|
|
|
>. </para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.indentWidth; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Устанавливает ширину отступа. Только при создании отступов пробелами.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.insertLine( <parameter
|
|
|
>uint line</parameter
|
|
|
>, <parameter
|
|
|
>string text</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> номер строки в документе</para>
|
|
|
</listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>text</parameter
|
|
|
> вставляемый текст</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Вставляет новую строку с текстом <parameter
|
|
|
>text</parameter
|
|
|
> в строку под номером <parameter
|
|
|
>line</parameter
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.insertText( <parameter
|
|
|
>uint line</parameter
|
|
|
>, <parameter
|
|
|
>uint column</parameter
|
|
|
>, <parameter
|
|
|
>string text</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> номер строки</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>column</parameter
|
|
|
> номер столбца</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>text</parameter
|
|
|
> вставляемый текст</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Вставляет текст <parameter
|
|
|
>text</parameter
|
|
|
> в строку номер <parameter
|
|
|
>line</parameter
|
|
|
>, столбец номер <parameter
|
|
|
>column</parameter
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
>document.length(); [функция]</term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает размер документа в байтах.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.lines(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает число строк в документе.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
>document.mixedIndent; [свойство:только для чтения]</term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Логическая величина. Сообщает, применяется ли в документе смешанный тип отступов. Если это так - отступы осуществляются при помощи и пробелов, и позиций табуляции, сходно с редактором Emacs.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
>document.removeLine( <parameter
|
|
|
>uint line</parameter
|
|
|
> ); [функция]</term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> номер строки</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Удаляет строку документа номер line.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.removeText( <parameter
|
|
|
>uint startLine</parameter
|
|
|
>, <parameter
|
|
|
>uint startColumn</parameter
|
|
|
>, <parameter
|
|
|
>uint endLine</parameter
|
|
|
>, <parameter
|
|
|
>uint endColumn</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startLine</parameter
|
|
|
> указывает начальную строку</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startColumn</parameter
|
|
|
> указывает начальный столбец</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endLine</parameter
|
|
|
> указывает конечную строку</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endColumn</parameter
|
|
|
> указывает конечный столбец</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Удаляет участок текста, начиная от строки номер <parameter
|
|
|
>startLine</parameter
|
|
|
> и столбца номер <parameter
|
|
|
>startColumn</parameter
|
|
|
> до строки номер <parameter
|
|
|
>endLine</parameter
|
|
|
> и столбца номер <parameter
|
|
|
>endColumn</parameter
|
|
|
>. </para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.setText( <parameter
|
|
|
>string text</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>text</parameter
|
|
|
> текст документа</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Приводит всё содержимое документа к тексту с параметрами <parameter
|
|
|
>text</parameter
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.spaceIndent; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Логическая величина. Сообщает, применяется ли к документу отступ пробелами. Если это так, то отступы в документе производятся на величину indentWidth между уровнями, иначе сдвиг происходит на одну позицию табуляции.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.textFull(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает весь текст документа. Если в тексте есть переводы строк, то знак перевода строки отобразится как <constant
|
|
|
>\n</constant
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.textLine( uint line ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> строка номер</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает текст строки номер <parameter
|
|
|
>line</parameter
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>document.textRange( <parameter
|
|
|
>uint startLine</parameter
|
|
|
>, <parameter
|
|
|
>uint startColumn</parameter
|
|
|
>, <parameter
|
|
|
>uint endLine</parameter
|
|
|
>, <parameter
|
|
|
>uint endColumn</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startLine</parameter
|
|
|
> указывает начальную строку</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startColumn</parameter
|
|
|
> указывает начальный столбец</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endLine</parameter
|
|
|
> указывает конечную строку</para>
|
|
|
</listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endColumn</parameter
|
|
|
> указывает конечный столбец</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Возвращает указанный участок текста. Если в пределах участка есть переводы строк, то знак перевода отобразится как <constant
|
|
|
>\n</constant
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
</variablelist
|
|
|
><!--/ document API -->
|
|
|
|
|
|
<variablelist id="advanced-editing-tools-scripting-view">
|
|
|
<title
|
|
|
>Аппаратно-программный интерфейс (API) <classname
|
|
|
>view</classname
|
|
|
></title>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.clearSelection(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Снимает выделение со всего текста.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.cursorColumn(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает столбец, в котором находится курсор (учитываются все знаки табуляции).</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.cursorColumnReal(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер столбца, в котором реально находится курсор (знак табуляции считается за один символ).</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.cursorLine(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер строки, в которой находится курсор.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.hasSelection(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Если выделенный текст есть, возвращает <constant
|
|
|
>true</constant
|
|
|
>, иначе <constant
|
|
|
>false</constant
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.removeSelectedText(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Если есть выделенный текст, он удаляется.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selectAll(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Выделяет весь текст.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selection(); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает выделенный текст. Если в пределах выделенного текста есть переводы строк, они отображаются знаком <constant
|
|
|
>\n</constant
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selectionEndColumn; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер последней позиции выделяемого участка.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selectionEndLine; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер последней строки выделяемого участка.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selectionStartColumn; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер начальной позиции выделяемого участка.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.selectionStartLine; [свойство:только для чтения]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<para
|
|
|
>Возвращает номер начальной строки выделяемого участка.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.setCursorPosition( <parameter
|
|
|
>uint line</parameter
|
|
|
>, <parameter
|
|
|
>uint column</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> Указывает строку для курсора.</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>column</parameter
|
|
|
> Указывает столбец для курсора.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Устанавливает курсор ввода в позицию [<parameter
|
|
|
>line</parameter
|
|
|
>, <parameter
|
|
|
>col</parameter
|
|
|
>]. Установка курсора происходит визуально, символ табуляции считается за несколько символов, в зависимости от расположения текста, но не больше значения параметра <guilabel
|
|
|
>Ширина табуляции</guilabel
|
|
|
>. Отсчёт номеров строк и столбцов начинается от нуля.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.setCursorPositionReal( <parameter
|
|
|
>uint line</parameter
|
|
|
>, <parameter
|
|
|
>uint column</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>line</parameter
|
|
|
> Указывает строку для курсора.</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>column</parameter
|
|
|
> Указывает столбец для курсора.</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Устанавливает курсор в позицию [<parameter
|
|
|
>line</parameter
|
|
|
>, <parameter
|
|
|
>col</parameter
|
|
|
>]. При рассчёте позиции табуляция соответствует одному символу. Отсчёт строк и столбцов начинается от нуля.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
<varlistentry>
|
|
|
<term
|
|
|
><function
|
|
|
>view.setSelection( <parameter
|
|
|
>uint startLine</parameter
|
|
|
>, <parameter
|
|
|
>uint startColumn</parameter
|
|
|
>, <parameter
|
|
|
>uint endLine</parameter
|
|
|
>, <parameter
|
|
|
>uint endColumn</parameter
|
|
|
> ); [функция]</function
|
|
|
></term>
|
|
|
<listitem>
|
|
|
<itemizedlist>
|
|
|
<title
|
|
|
>Параметры</title>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startLine</parameter
|
|
|
> указывает начальную строку</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>startColumn</parameter
|
|
|
> указывает начальный столбец</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endLine</parameter
|
|
|
> указывает конечную строку</para
|
|
|
></listitem>
|
|
|
<listitem
|
|
|
><para
|
|
|
><parameter
|
|
|
>endColumn</parameter
|
|
|
> указывает конечный столбец</para
|
|
|
></listitem>
|
|
|
</itemizedlist>
|
|
|
<para
|
|
|
>Устанавливает выделение от строки номер <parameter
|
|
|
>startLine</parameter
|
|
|
> и столбца номер <parameter
|
|
|
>startColumn</parameter
|
|
|
> до строки номер <parameter
|
|
|
>endLine</parameter
|
|
|
> и столбца номер <parameter
|
|
|
>endColumn</parameter
|
|
|
>.</para>
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
<example id="advanced-editing-tools-scripting-example">
|
|
|
|
|
|
<title
|
|
|
>Пример сценария</title>
|
|
|
<para
|
|
|
>В качестве примера рассмотрим небольшой сценарий, переводящий выделенный текст в верхний регистр. Очевидно, сначала необходимо проверить, есть ли выделенный текст вообще. Если есть - возьмём этот текст, изменим регистр и заменим его новым текстом. Сценарий будет выглядеть примерно так:</para>
|
|
|
|
|
|
<programlisting
|
|
|
>if ( view.hasSelection() )
|
|
|
{
|
|
|
column = view.selectionStartColumn;
|
|
|
line = view.selectionStartLine;
|
|
|
|
|
|
selection = view.selection().toUpperCase();
|
|
|
|
|
|
document.editBegin();
|
|
|
view.removeSelectedText();
|
|
|
document.insertText( line, column, selection );
|
|
|
document.editEnd();
|
|
|
}
|
|
|
</programlisting>
|
|
|
|
|
|
<para
|
|
|
>Для группировки действий так, чтобы их можно было отменить одним вызовом пункта меню <guimenuitem
|
|
|
>Отмена</guimenuitem
|
|
|
>, мы поместили строки <programlisting
|
|
|
>view.removeSelectedText()</programlisting
|
|
|
> и <programlisting
|
|
|
>document.insertText()</programlisting
|
|
|
> между <programlisting
|
|
|
>document.editBegin()</programlisting
|
|
|
> и <programlisting
|
|
|
>document.editEnd()</programlisting
|
|
|
>.</para>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<example id="advanced-editing-tools-desktop-example">
|
|
|
<title
|
|
|
>Пример файла <filename
|
|
|
>.desktop</filename
|
|
|
></title>
|
|
|
|
|
|
<para
|
|
|
>Вот пример простого .desktop-файла, соответствующего приведенному выше сценарию.</para>
|
|
|
|
|
|
<programlisting
|
|
|
>[Desktop Entry]
|
|
|
Encoding=UTF-8
|
|
|
Name=Kate Part JavaScript Uppercase
|
|
|
Comment=Script to uppercase the selection
|
|
|
X-Kate-Command=uppercase-selection
|
|
|
X-Kate-Help=<p>Usage: <code>uppercase-selection</code></p>
|
|
|
</programlisting>
|
|
|
|
|
|
<para
|
|
|
>Мы видим, что здесь можно определить кодировку, ввести название, комментарий, указать путь к справке с помощью X-Kate-Help и название для командной строки через X-Kate-Command. Если файлы находятся в SVN-хранилище KDE, то пункты Name, Comment and X-Kate-Help автоматически переводятся на другие языки командами переводчиков KDE.</para>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<sect3>
|
|
|
<title
|
|
|
>Резюме</title>
|
|
|
|
|
|
<para
|
|
|
>&kate; может разыскивать в определённых папках (см. <link linkend="advanced-editing-tools-scripting-introduction"
|
|
|
>выше</link
|
|
|
>) файлы <filename
|
|
|
>*.js</filename
|
|
|
>. Для каждого найденного файла будет проведен поиск соответствующего файла <filename
|
|
|
>.desktop</filename
|
|
|
>, например файлу uppercase.js соответствует файл uppercase.desktop. </para>
|
|
|
<para
|
|
|
>Если требуемый файл <filename
|
|
|
>.desktop</filename
|
|
|
> не найден, сценарий будет зарегистрирован в командной строке katepart с именем без расширения .js, для нашего примера это будет <literal
|
|
|
>uppercase</literal
|
|
|
>.Если такое формирование названия команды подходит, и вам не требуются какие-то дополнительные возможности, которые предоставляет файл <filename
|
|
|
>.desktop</filename
|
|
|
>, он может не понадобиться вам совсем. </para>
|
|
|
<para
|
|
|
>Если файл <filename
|
|
|
>.desktop</filename
|
|
|
> найден, то katepart считывает имя из пункта .desktop-файла X-Kate-Command, например X-Kate-Command=uppercase-selection.</para>
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
</chapter>
|