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

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

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

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

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

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

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

BOOLEAN

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

INTEGER

Целое число.

STRING

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

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

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

set-tab-width {INTEGER width}

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

set-indent-width {INTEGER width}

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

set-word-wrap-column {INTEGER width}

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

set-icon-border {BOOLEAN enable}

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

set-folding-markers {BOOLEAN enable}

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

set-line-numbers {BOOLEAN enable}

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

set-replace-tabs {BOOLEAN enable}

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

set-remove-trailing-space {BOOLEAN enable}

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

set-show-tabs [BOOLEAN enable]

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

set-show-indent {BOOLEAN enable}

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

set-indent-spaces {BOOLEAN enable}

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

set-mixed-indent {BOOLEAN enable}

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

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

set-word-wrap {BOOLEAN enable}

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

set-replace-tabs-save {BOOLEAN enable }

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

set-remove-trailing-space-save {BOOLEAN enable}

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

set-indent-mode {STRING name}

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

set-auto-ident {BOOLEAN script}

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

set-highlight {STRING highlight}

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

reload-scripts

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

set-mode {STRING 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

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

date {STRING 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».

char {STRING identifier}

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

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

Введите: char 234

Получите: ê

Введите: char 0x1234

Получите:


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

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

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

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

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

Пример 5.2. Замена текста в текущей строке

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

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


Пример 5.3. Замена текста во всём файле

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

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


Пример 5.4. Более сложный пример

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

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

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

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

Пример 5.5. sort в сравнении с natsort

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

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


moveLinesDown

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

moveLinesUp

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

uniq

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

rtrim

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

ltrim

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

join [STRING separator]

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

rmblank

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

unwrap

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

each {STRING script}

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

Пример 5.6. Объединить выделенные строки

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

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

each 'lines.join(", ")'


filter {STRING script}

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

Пример 5.7. Удалить пустые строки

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

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

filter 'line.length > 0'


map {STRING script}

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

Пример 5.8. Удалить пустые строки

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

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

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


duplicateLinesUp

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

duplicateLinesDown

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

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

goto {INT line}

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

grep {STRING pattern}

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

find {STRING pattern}

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

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

b

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

c

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

e

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

r

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

s

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

w

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

ifind {STRING pattern}

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

b

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

r

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

s

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

c

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

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

w

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

wa

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

q

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

qa

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

wq

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

wqa

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

x

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

x

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

bp

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

bn

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

new

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

vnew

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

e

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

enew

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

print

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