Модуль Внешние программы позволяет вызывать внешние приложения, передавая им данные, которые связаны с текущим документом (например, его URL-адрес, каталог, текст или выделенный фрагмент). После включения модуля появляется страница настройки (она показана далее), на которой возможно изменить или удалить существующие программы. Также возможно добавить новые программы. После добавления они появятся в подменю меню .

На странице настройки возможно добавить новые внешние программы, нажав кнопку Добавить. После этого появится всплывающее меню, которое позволяет добавить новую внешнюю программу, добавить существующую программу из предустановленного списка или добавить новую категорию для организации внешних программ. Существующие программы возможно изменить либо по двойному щелчку, либо нажатием кнопки Изменить.... Кнопка Удалить позволяет удалить выбранные программы.
При редактировании программы открывается диалог, который позволяет выполнить тонкую настройку:

- Возможно задать много параметров, в частности:
Название— название программы, которое затем появится в меню.Значок— необязательный значок, который показан в меню.Исполняемый файл— название исполняемого файла. Следует указать либо полный путь, либо просто название программы (если исполняемый файл хранится в одном из каталогов, описанных переменной средыPATH).Аргументы— необязательные аргументы, которые передаются исполняемому файлу.Ввод— необязательные входные данные, которые передаются процессу через stdin.Рабочий каталог— рабочий каталог, из которого будет запущена программа. Если значение не указано, рабочим каталогом будет каталог текущего документа.Типы MIME— если значение указано, программа становится активной только в том случае, если тип MIME текущего документа соответствует указанному.Сохранение до запуска— при вызове не сохраняется ничего, сохраняется текущий документ или сохраняются все документы.Активация, триггер для выполнения программы. Влияет только на текущий активный документ и срабатывает только в том случае, если тип MIME текущего активного документа соответствует типу MIME внешней программы.- Допустимы следующие триггеры:
Нет— значение по умолчанию, означает, что у программы нет переключателя.До сохранения, этот триггер запускает программу непосредственно перед сохранением документа.После сохранения, этот триггер запускает программу после сохранения документа.
Перечитать текущий документ после выполнения— эта опция полезна в тех случаях, когда текущий файл был изменён на диске.Выходные данные— вывод определяет цель stdout. Доступные варианты:Игнорировать,Вставить в текущей позиции,Заменить выбранный текст,Заменить текущий документ,Добавить в текущий документ,Вставить в новый документ,Копировать в буфер обменаилиВывести в панели.Командная строка редактора— необязательная команда, которая будет использоваться для вызова внешней программы с помощью встроенной командной строки.
Кнопка По умолчанию отображается только для программ, которые поставляются с Kate. При её нажатии все параметры программы возвращаются к стандартным (заводским) значениям.
Некоторые поля ввода, например Исполняемый файл, Аргументы, Ввод и Рабочий каталог, поддерживают переменные, которые расширяются при вызове программы. Это обозначается значком {}, который появляется при получении фокуса одним из этих полей ввода (см. красный кружок):

При наведении курсора на одно из таких полей ввода также отображается всплывающая подсказка с текущим расширенным текстом. Кроме того, при щелчке по значку {} открывается диалог с перечнем всех доступных переменных:

Эта опция позволяет сделать настройку внешней программы очень гибкой, так как все переменные вида %{...} расширяются при вызове этой программы. Поддерживаются переменные двух типов:
%{имя-переменной}%{имя-переменной:<значение>}
Если применяется первый тип %{имя-переменной}, программа просто заменяет переменную его содержимым. Например, переменная %{Document:FileName} заменяется именем файла текущего документа без пути к нему. Если применяется второй тип, %{имя-переменной:<значение>}, в качестве содержимого используется <значение>. Например, этим можно воспользоваться для расширения переменной среды с помощью %{ENV:HOME}. Или можно получить текущую дату в предпочитаемом формате: %{Date:yyyy-MM-dd}.
- Среди поддерживаемых переменных:
Document:FileBaseName: базовое имя файла текущего документа без пути и суффикса.Document:FileExtension: расширение файла текущего документа.Document:FileName: имя файла текущего документа без пути.Document:FilePath: полный путь к текущему документу, включая название файла.Document:Text: содержимое текущего документа.Document:Path: полный путь к текущему документу, исключая название файла.Document:NativeFilePath: полный путь к документу, включая название файла, с разделителем пути операционной системы (в Windows — обратная косая черта).Document:NativePath: полный путь к документу, исключая название файла, с разделителем пути операционной системы (в Windows — обратная косая черта).Document:Cursor:Line: номер строки позиции текстового курсора в текущем документе (нумерация начинается с 0).Document:Cursor:Column: номер столбца позиции текстового курсора в текущем документе (нумерация начинается с 0).Document:Cursor:XPos: компонент X глобальной позиции курсора на экране.Document:Cursor:YPos: компонент Y глобальной позиции курсора на экране.Document:Selection:Text: выбранный текст в текущем документе.Document:Selection:StartLine: начальная строка выбранного текста в текущем документе.Document:Selection:StartColumn: начальный столбец выбранного текста в текущем документе.Document:Selection:EndLine: конечная строка выбранного текста в текущем документе.Document:Selection:EndColumn: конечный столбец выбранного текста в текущем документе.Document:RowCount: количество строк в текущем документе.Document:Variable:<переменная>: развернуть произвольные переменные документа.Date:Locale: текущая дата в формате текущей локали.Date:ISO: текущая дата (ISO).Date:<значение>: текущая дата (в формате, указанном строкой формата QDate).Time:Locale: текущее время в формате текущей локали.Time:ISO: текущее время (ISO).Time:<значение>: текущее время (в формате, указанном строкой формата QTime).ENV:<значение>: доступ к переменным среды.JS:<выражение>: обработка простых инструкций JavaScript.PercentEncoded:<текст>: текст в процентной кодировке.UUID: создать новый UUID.
По умолчанию поставляются несколько программ. Если у пользователя имеются ещё какие-либо полезные инструменты, рекомендуется поделиться ими через проект на GitLab (чтобы разработчики смогли добавить их в список стандартных). Все стандартные программы по умолчанию показаны в списке. Все эти программы возможно изменить в соответствии с потребностями пользователя (например, изменить категорию или даже удалить программу из списка). Удалённые программы возможно вернуть в список нажатием кнопки на странице настройки.
Git Cola
- Git Cola — это графический клиент git, который позволяет легко подготавливать и фиксировать изменения. Если этот клиент установлен, доступ к нему также возможно получить путём ввода команды
git-colaв командной строке. Название: Git ColaЗначок: git-colaИсполняемый файл: git-colaАргументы: -r %{Document:Path}Команда редактора: git-cola
gitk
- gitk — также клиентская программа git, позволяет визуализировать журнал изменений в git.
Название: gitkЗначок: git-guiИсполняемый файл: gitkРабочий каталог: %{Document:Path}Команда редактора: gitk
git blame
- Запускает git blame для облегчения слежения за изменениями текущего файла в git.
Название: git blameИсполняемый файл: gitАргументы: gui blame %{Document:FileName}Сохранение до запуска: текущий документРабочий каталог: %{Document:Path}Команда редактора: git-blame
Запуск сценария оболочки
- Запускает внешнюю консоль, в которой выполняется текущий документ. Сценарий должен объявлять в первой строке свой интерпретатор с помощью следующей последовательности символов:
#!/путь/интерпретатор. Название: запуск сценария оболочкиЗначок: system-runИсполняемый файл: konsoleАргументы: -e sh -c "cd %{Document:Path} && pwd && chmod -vc a+x %{Document:FileName} && ./%{Document:FileName} ; echo Press any key to continue. && read -n 1"Сохранение до запуска: текущий документРабочий каталог: %{Document:Path}Команда редактора: run-script
Поиск выделенного текста в Google
- Поиск выделенного текста с помощью поисковой системы Google.
Название: поиск выделенного текста в GoogleЗначок: globeИсполняемый файл: xdg-openАргументы: "https://www.google.com/search?q=%{Document:Selection:Text}"Команда редактора: google
Вставка UUID
- Вставляет новый UUID при каждом вызове этого действия.
Название: вставка UUIDИсполняемый файл: echoАргументы: %{UUID}Выходные данные: вставить в текущей позицииКоманда редактора: uuid
Форматирование Clang всего файла
- Выполняет clang-format для текущего файла на диске. После обработки программа повторно загружает документ.
Название: форматирование Clang всего файлаИсполняемый файл: clang-formatАргументы: -i %{Document:FileName}Рабочий каталог: %{Document:Path}Сохранение до запуска: текущий документПеречитать: даКоманда редактора: clang-format-file
Форматирование Clang выделенного текста
- Выполняет clang-format только для выбранного текста в текущем документе.
Название: форматирование Clang выделенного текстаИсполняемый файл: clang-formatАргументы: -assume-fileName: %{Document:FileName}Рабочий каталог: %{Document:Path}Ввод: %{Document:Selection:Text}Выходные данные: заменить выбранный текстКоманда редактора: clang-format-selection
Предварительный просмотр Qt Quick 2 (qmlscene)
- Предварительный просмотр текущего файла QML в qmlscene.
Название: предварительный просмотр Qt Quick 2 (qmlscene)Исполняемый файл: qmlsceneАргументы: %{Document:FileName}Сохранение до запуска: текущий документРабочий каталог: %{Document:Path}Команда редактора: qml-preview
Форматирование JSON всего файла
- Форматировать весь файл кода JSON.
Название: форматирование JSON всего файлаЗначок: application-jsonИсполняемый файл: jqАргументы: %{Document:FileName}Сохранение до запуска: текущий документРабочий каталог: %{Document:Path}Выходные данные: заменить текущий документКоманда редактора: json-format-file
Форматирование XML всего файла
- Форматировать весь файл кода XML.
Название: форматирование XML всего файлаЗначок: application-xmlИсполняемый файл: xmllintАргументы: --format %{Document:FileName}Сохранение до запуска: текущий документРабочий каталог: %{Document:Path}Выходные данные: заменить текущий документКоманда редактора: xml-format-file