&Anders.Lund; &Anders.Lund.mail;
&Dominik.Haumann; &Dominik.Haumann.mail;
Андрей
Балагута

    uj2@mail.ru

Перевод на русский язык
Алексей
Опарин

    opaleksej@yandex.ru

Перевод на русский язык
Олеся
Герасименко

    translation-team@basealt.ru

Обновление перевода

# Дополнительные возможности редактирования

## Комментирование

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

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

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

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

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

Чтобы закомментировать выделенный текст (или текущую строку), выберите пункт меню Сервис Закомментировать или воспользуйтесь соответствующей комбинацией клавиш (по умолчанию &Ctrl;D).

Чтобы удалить маркеры комментариев, выберите пункт меню Сервис Раскомментировать или воспользуйтесь соответствующей комбинацией клавиш ( по умолчанию &Ctrl;&Shift;D).

## Командная строка компонента редактирования

Компонент редактирования &kappname; имеет встроенную командную строку, позволяющую производить различные действия, оставляя интерфейс минималистичным. Она представляет собой поле ввода в нижней части области редактора. Чтобы получить доступ к командной строке, выберите пункт меню Вид Командная строка или нажмите клавишу F7 (по умолчанию). Описание доступных команд приводится далее. Кроме того, в модулях могут быть доступны дополнительные команды.

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

Чтобы получить справку, введите команду `help`. Для получения списка всех доступных команд введите команду `help list`, для просмотра справки по определённой команде — `help команда`.

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

### Стандартные команды

#### Типы аргументов

BOOLEAN

  Используется для команд включения или отключения. Допустимые значения: `on`, `off`, `true`, `false`, `1` или `0`

INTEGER

  Целое число.

STRING

  Строка, заключённая в одинарные (') кавычки (или двойные (") кавычки, если она содержит пробелы).

#### Параметры редактора

Эти команды предоставляются компонентом редактирования и позволяют настроить только текущие документ и представление. Удобно, если требуется установить параметры, отличные от стандартных (например, отступ).

    set-tab-widthINTEGER width

  Устанавливает ширину табуляции.

    set-indent-widthINTEGER width

  Устанавливает ширину отступа. Только при создании отступов пробелами.

    set-word-wrap-columnINTEGER width

  Устанавливает максимальную длину строк в случае, если включён автоматический перенос.

    set-icon-borderBOOLEAN enable

  Устанавливает видимость полосы отметок.

    set-folding-markersBOOLEAN enable

  Устанавливает видимость маркеров сворачивания блоков кода.

    set-line-numbersBOOLEAN enable

  Устанавливает видимость нумерации строк.

    set-replace-tabsBOOLEAN enable

  Заменять при вводе символы табуляции на пробелы.

    set-remove-trailing-spaceBOOLEAN enable

  Удалять пробелы в конце строки при снятии с неё курсора.

    set-show-tabsBOOLEAN enable

  Представлять символы табуляции и пробельное пространство в конце строк маленькими точками.

    set-show-indentBOOLEAN enable

  Представлять отступы вертикальной пунктирной линией.

    set-indent-spacesBOOLEAN enable

  Вставлять заданное количество пробелов для каждого уровня отступа, вместо одного символа табуляции.

    set-mixed-indentBOOLEAN enable

  Использовать для отступов как символы табуляции, так и пробелы. Это реализуется путём замены пробелов в количестве, кратном ширине символа табуляции, на последние.

  Эта команда также включит расстановку отступов пробелами и установит ширину отступов, если она не указана, в половину значения `tab-width` (для текущего документа во время выполнения).

    set-word-wrapBOOLEAN enable

  Выполнять динамический перенос строк.

    set-replace-tabs-saveBOOLEAN enable

  Заменять символы табуляции на пробелы при сохранении.

    set-remove-trailing-space-saveBOOLEAN enable

  Удалить пробелы в конце строк при сохранении.

    set-indent-modeSTRING name

  Выбрать режим расстановки отступов. Параметр `name` может иметь следующие значения: «none», «normal», «cstyle», «haskell», «lilypond», «lisp», «python», «ruby» или «xml». При указании других значений используется «none».

    set-auto-identBOOLEAN script

  Включить или отключить автоматическую расстановку отступов.

    set-highlightSTRING highlight

  Выбрать формат для подсветки синтаксиса (один из содержащихся в меню Сервис Подсветка). Доступно также автозавершение параметра.

    reload-scripts

  Перезагрузить сценарии &javascript;, которые используются &kate;, включая сценарии расстановки отступов и сценарии командной строки.

    set-modeSTRING mode

  Выбрать тип файла для текущего документа.

    nn[oremap]STRING original STRING mapped

  Сопоставить комбинацию клавиш `original` комбинации `mapped`.

#### Команды редактирования

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

    indent

  Подставить отступы к выделенным строкам или к текущей.

    unindent

  Снять отступы с выделенных строк или с текущей.

    cleanindent

  Очистить отступы в выделенных строках или в текущей в соответствии с параметрами расстановки отступов для текущего документа.

    comment

  Вставить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла (определяется способом подсветки синтаксиса).

    uncomment

  Удалить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла (определяется способом подсветки синтаксиса).

    kill-line

  Удалить текущую строку.

    replace STRING pattern STRING replacement

  Заменить текст, совпадающий с `pattern`, на `replacement`. Чтобы включить в `pattern` пробелы, следует заключить в двойные или одинарные кавычки и `pattern`, и `replacement`. Если аргументы не заключены в кавычки, первое слово будет принято за `pattern`, а остальное — за `replacement`. Если не указать `replacement`, все вхождения `pattern` будут удалены.

  Для настройки параметров поиска следует указать соответствующие флаги после двоеточия (`replace:options pattern replacement`). Возможные параметры:

  `b`

    Искать в обратном направлении.

  `c`

    Искать от позиции курсора.

  `e`

    Искать только в выделенном тексте.

  `r`

    Аргумент `pattern` — регулярное выражение. Возможно использовать `\N` в `replacement` для получения энной подстроки найденного текста.

  `s`

    С учётом регистра.

  `p`

    Запрашивать у пользователя подтверждение каждой замены.

  `w`

    Только целые слова.

    dateSTRING format

  Вставить строку с датой/временем в указанном формате (задаётся параметром `format`). Если параметр не указан, используется формат yyyy-MM-dd hh:mm:ss. Доступны следующие подстановки:

  `d` | Номер дня в месяце без ведущего нуля (1-31).
  `dd` | Номер дня в месяце с ведущим нулём (01-31).
  `ddd` | Сокращённое локализованное название дня недели («пн»...«вс»).
  `dddd` | Полное локализованное название дня недели («понедельник»...«воскресенье»).
  `M` | Номер месяца без ведущего нуля (1-12).
  `MM` | Номер месяца с ведущим нулём (01-12).
  `MMMM` | Полное локализованное название месяца («января»...«декабря»).
  `MMM` | Сокращённое локализованное название месяца («янв.»...«дек.»).
  `yy` | Год двумя цифрами (00-99).
  `yyyy` | Год четырьмя цифрами (1752-8000).
  `h` | Час без ведущего нуля (0...23 или 1...12, в зависимости от параметра формата часов).
  `hh` | Час с ведущим нулём (00...23 или 01...12, в зависимости от параметра формата часов).
  `m` | Минуты без ведущего нуля (0...59).
  `mm` | Минуты с ведущим нулём (00...59).
  `s` | Секунды без ведущего нуля (0...59).
  `ss` | Секунды с ведущим нулём (00...59).
  `z` | Миллисекунды без ведущих нулей (0...999).
  `zzz` | Миллисекунды с ведущими нулями (000...999).
  `AP` | Использовать 12-часовой формат часов. AP будет заменено на «AM» или «PM».
  `ap` | Использовать 12-часовой формат часов. ap будет заменено на «am» или «pm».

    charSTRING identifier

  Эта команда позволяет вставить символ по его числовому идентификатору в десятичной, восьмеричной или шестнадцатеричной системах счисления. Чтобы использовать её, откройте командную строку и наберите `char [числовой_идентификатор]`.

  ##### Примеры использования команды `char`

  Введите: `char 234`

  Получите: `ê`

  Введите: `char 0x1234`

  Получите: `ሴ`

`s///[ig]` `%s///[ig]`

  Попробуем разобраться в этих двух sed-подобных командах. Первая выполняет поиск/замену в текущей строке, вторая — во всём файле (`%s///`).

  Команды производят поиск текста, заданного маской поиска (регулярным выражением между первой и второй наклонной чертой) и, при нахождении, замену на выражение, которое задано между второй и третьей чертой. Круглые скобки в маске поиска позволяют задать подстроки в найденном тексте, на которые возможно потом ссылаться в выражении замены. Обратная ссылка — это регулярное выражение, которое при совпадении заменяется на фактический текст и может быть использовано в шаблоне замены. Для этого необходимо поставить в нужном месте обратную черту, а за ней указать номер подстроки по порядку (`\1` — для первой пары скобок, `\2` — для второй и так далее).

  Чтобы искать сами скобки `(` или `)`, следует предварить их обратной чертой: `\(\)`

  Если в самом конце указать `i`, поиск будет выполняться с учётом регистра, а если `g` — будут заменены все вхождения текста, совпадающего с регулярным выражением (иначе — только первое).

  ##### Замена текста в текущей строке

  Предположим, что получено сообщение об ошибке компиляции: класс `myClass`, упомянутый в строке 3902, не определён.

  Добравшись до строки 3902, вместо того, чтобы пытаться найти слово `MyClass` в тексте, возможно просто открыть диалоговое окно «Команда правки», ввести `s/myclass/MyClass/i`, нажать кнопку OK, сохранить файл и выполнить компиляцию — успешно и без ошибок.

  ##### Замена текста во всём файле

  Предположим, что имеется файл, в котором несколько раз упомянута госпожа Иванова. Но вдруг стало известно, что она вышла замуж за господина по фамилии Петров, в связи с чем требуется заменить все упоминания о госпоже Ивановой на текст госпожа Петрова.

  Вызовите командную строку и введите следующий текст: `%s/госпожа Иванова/госпожа Петрова/` — и всё будет готово.

  ##### Более сложный пример

  Этот пример показывает, как пользоваться обратными ссылками и классами символов (сведения о том, что это такое, доступны в документации, которая упоминается далее).

  Допустим, набрана такая строка:

      void MyClass::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

  Предположим, что этот код недостаточно «красив» и решено использовать ключевое слово `const` с параметрами, передаваемыми по ссылке (теми, перед которыми стоит амперсанд), а также удалить лишние пробелы.

  Откройте диалоговое окно «Команда правки» и введите: `s/\s+(\w+)\s+(&)/ const \1 \2/g`, затем нажмите кнопку OK. Символ `g` в конце команды указывает компилятору «пересчитывать» регулярное выражение обратной ссылки каждый раз, когда встречаются совпадения.

  Вывод: `void MyClass::DoStringOps( const String &foo, const String &bar, String *p, const int &a, const int &b )`

  Всё готово! Что было сделано? Выполнялся поиск некоторого количества пробелов (`\s+`), за которыми следуют один или несколько буквенных символов (`\w+`), за которыми находятся пробелы (`\s+`), после которых расположен амперсанд, и в процессе эти буквенные символы и амперсанд сохранялись для использования в операции замены. После этого совпадающие части строки были заменены следующей последовательностью: один пробел, за которым следует спецификатор const, за ним ещё один пробел, после которого ранее сохранённые символы (`\1`), ещё один пробел и сохранённый амперсанд (`\2`)

  В одних случаях буквенные символы составили слово String, в других — слово int, то есть символьный класс `\w` с последующим знаком `+` определяет символьный набор произвольной длины.

    sort

  Упорядочить выделенный текст или весь документ.

    natsort

  Упорядочить выделенные строки или весь документ в естественном порядке.

  ##### `sort` в сравнении с `natsort`

  ``sort`(a10, a1, a2)`: результатом будет `a1, a10, a2`

  ``natsort`(a10, a1, a2)`: результатом будет `a1, a2, a10`

    moveLinesDown

  Переместить выделенные строки ниже.

    moveLinesUp

  Переместить выделенные строки выше.

    uniq

  Удалить дубликаты строк из выделенного текста или всего документа.

    rtrim

  Удалить пробелы в конце строк из выделенного текста или всего документа.

    ltrim

  Удалить пробелы в начале строк из выделенного текста или всего документа.

    joinSTRING separator

  Объединить выделенные строки или весь документ. Возможно указать параметр, который определяет разделитель, например: ``join` ', '`

    rmblank

  Удалить все пробелы из выделенного текста или всего документа.

    alignon

  Эта команда выравнивает строки в выбранном блоке или всём документе по позиции, которая указана переданным в качестве аргумента регулярным выражением.

  Если указать пустой шаблон, выравнивание по умолчанию будет выполняться по первому непустому символу.

  Если в шаблоне есть блок захвата, для захваченного совпадения будет добавлен отступ.

  Примеры:

  `alignon -` вставит пробелы перед первым «-» в каждой строке, чтобы выровнять все дефисы по одной позиции.

  `alignon :\\s+(.)` вставит пробелы перед первым непустым символом, стоящим после двоеточия, чтобы выровнять все такие символы по одной позиции.

    unwrap

  Отключить перенос строк выделенного текста или всего документа.

    eachSTRING script

  Вызвать указанную в качестве аргумента функцию &javascript; для списка выделенных строк и заменить их возвращаемым значением этого обратного вызова.

  ##### Объединить выделенные строки

  ``each` 'function(lines){return lines.join(", ")}'`

  Или более краткий вариант:

  ``each` 'lines.join(", ")'`

    filterSTRING script

  Вызвать указанную в качестве аргумента функцию &javascript; для списка выделенных строк и удалить те, для которых этот обратный вызов возвращает значение false.

  ##### Удалить пустые строки

  ``filter` 'function(1){return 1.length > 0;}'`

  Или более краткий вариант:

  ``filter` 'line.length > 0'`

    mapSTRING script

  Вызвать указанную в качестве аргумента функцию &javascript; для списка выделенных строк и заменить строку значением этого обратного вызова.

  ##### Удалить пустые строки

  ``map` 'function(line){return line.replace(/^s+/,"");}'`

  Или более краткий вариант:

  ``map` 'line.replace(/^s+/,"")'`

    duplicateLinesUp

  Дублировать выделенные строки над текущим выделенным текстом.

    duplicateLinesDown

  Дублировать выделенные строки под текущим выделенным текстом.

#### Команды навигации

    gotoINT line

  Перейти к указанной строке.

    grep STRING pattern

  Выполнить поиск регулярного выражения `pattern` в документе. Дополнительные сведения: .

    findSTRING pattern

  Перейти к первому вхождению, заданному параметром `pattern`. Последующие вхождения возможно найти с помощью пункта меню Правка Продолжить поиск (клавиша по умолчанию — F3).

  Параметры команды поиска возможно настраивать с помощью добавления двоеточия и флагов после её имени (`find:options pattern`). Возможные параметры:

  `b`

    Искать в обратном направлении.

  `c`

    Искать от позиции курсора.

  `e`

    Искать только в выделенном тексте.

  `r`

    Аргумент `pattern` — регулярное выражение. Возможно использовать `\N` в `replacement` для получения энной подстроки найденного текста.

  `s`

    С учётом регистра.

  `w`

    Только целые слова.

    ifindSTRING pattern

  Поиск по мере набора. Для настройки параметров поиска следует указать один или несколько флагов после двоеточия: `ifind:options pattern`. Допустимые параметры:

  `b`

    Искать в обратном направлении.

  `r`

    Поиск по регулярному выражению.

  `s`

    С учётом регистра.

  `c`

    Искать от позиции курсора.

#### Команды базовых функций редактора (определяются приложением, в котором используется компонент редактирования)

    w

  Сохранить текущий документ.

    wa

  Сохранить все открытые документы.

    q

  Закрыть текущий документ.

    qa

  Закрыть все открытые документы.

    wq

  Сохранить и закрыть текущий документ.

    wqa

  Сохранить и закрыть все открытые документы.

    x

  Сохранить и закрыть текущий документ только в том случае, если он был изменён.

    x

  Сохранить и закрыть все открытые документы только в том случае, если они были изменены.

    bp

  Перейти к предыдущему документу в списке документов.

    bn

  Перейти к следующему документу в списке документов.

    new

  Открыть новый документ в представлении, разделённом по горизонтали.

    vnew

  Открыть новый документ в представлении, разделённом по вертикали.

    e

  Обновить текущий документ, если файл этого документа на диске был изменён.

    enew

  Редактировать новый документ.

    print

  Открыть диалог печати текущего документа.

## Использование сворачивания кода

Сворачивание кода позволяет скрывать участки документа в редакторе, упрощая просмотр больших документов. В &kappname; разделение на сворачиваемые участки определяется правилами подсветки синтаксиса. Следовательно, оно доступно не для всех форматов файлов. В основном сворачивание кода доступно в режиме написания исходного кода, XML-разметки и тому подобного. Большинство способов подсветки позволяют также самостоятельно определять скрываемые области, чаще всего с помощью ключевых слов `BEGIN` и `END`.

Чтобы использовать функцию сворачивания, включите отображение полосы сворачивания блоков (пункт меню Вид Полоса сворачивания блоков), если она ещё не отображается. В этой полосе, расположенной с левой стороны документа, содержится графическое представление сворачиваемых участков. Треугольник, указывающий вниз, обозначает, что участок развёрнут. Треугольник, указывающий вправо, обозначает свёрнутый участок. Щелчок по треугольнику приведёт, соответственно, к сворачиванию или разворачиванию участка (с одновременным изменением графического представления).

Для управления состоянием сворачиваемых участков доступны три команды, смотрите справку по меню.

Состояние сворачивания сохраняется при закрытии файла, поэтому при его повторном открытии свёрнутые участки останутся таковыми. Это справедливо также и для действий обновления.

Если в использовании функции сворачивания нет необходимости, возможно отключить параметр Полоса сворачивания блоков на странице Внешний вид диалога настройки редактора.