Компонент редактирования 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, нажать кнопку , сохранить файл и выполнить компиляцию — успешно и без ошибок.Пример 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, затем нажмите кнопку . Символ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, a2natsort(a10, a1, a2): результатом будетa1, a2, a10moveLinesDown
Переместить выделенные строки ниже.
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
Открыть диалог печати текущего документа.