## AkelPad 4 - руководство пользователя

### Содержание

1. Замечания о совместимости
2. Общие замечания
3. Возможности программы
4. Параметры командной строки
5. Ручные установки
6. Клавиатурные команды
7. Внутренние команды
8. Синтаксис регулярных выражений
9. Лицензионное соглашение
10. Авторы

### Замечание о совместимости

Программа предназначена для работы в системах Windows 95/98/Me и Windows NT 4.0/2000/XP/7/10 и выше.

### Общие замечания

Стандартный блокнот - хороший редактор, без наворотов, редактирующий в простом текстовом формате и поэтому незаменимый при программировании, редактировании html-документов, да и не только. Однако тот, который входит в состав Windows, весьма неудобен в использовании в силу ряда ограничений. Данная программа претендует на то, чтобы восполнить эти недостатки.
Внимание: для того, чтобы в полной мере использовать преимущества Unicode, рекомендуется выбрать один из Unicode-шрифтов, каковыми являются большинство шрифтов TrueType (например, Courier New).

### Возможности

Коротко об основных возможностях:

- Однооконный (SDI), многооконный (MDI) и псевдо-многооконный режимы (PMDI);
- Полная поддержка Unicode строк на Unicode системах (NT/2000/XP/7/10 и выше);
- Работа с кодировками Unicode (UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE);
- Работа с любой кодовой страницей, установленной в системе;
- Работа с DOS/Windows, Unix и Mac форматами перевода строки;
- Предпросмотр открытия файлов;
- Корректное отображение псевдографики;
- Блочное выделение текста;
- Многоуровневый откат действий;
- Быстрые поиск/замена строк текста;
- Запоминание кодировки и позиции каретки в файле;
- Печать и предпросмотр;
- Поддержка языковых модулей;
- Поддержка плагинов (подсветка синтаксиса, сворачивание блоков, авто-дополнение, запуск скриптов, клавиатурные макросы и много больше).

### Параметры командной строки

AkelPad.exe [параметры] "file1.ext" [параметры] "file2.ext" [параметры] ...

/Ini("%a\AkelPad.ini") | - задать ini файл. Если используется, должен быть первым параметром.
/x | - не использовать режим совместимости с MS Notepad при обработке параметров командной строки.
/p | - напечатать следующий файл и закрыть его.
/C+ | - молча создавать новый файл, если он не существует.
/C- | - не создавать новый файл, если он не существует.
/C | - спрашивать о создании нового файла, если он не существует (по умолчанию).
/B+ | - молча открывать файл, если он бинарный.
/B- | - не открывать файл, если он бинарный.
/B | - спрашивать об открытии файла, если он бинарный (по умолчанию).
/L+ | - молча сохранить файл, даже если потеряются символы в указанной кодировке.
/L- | - не сохранять файл, если потеряются символы в указанной кодировке.
/L | - спрашивать о сохранении файла, если потеряются символы в указанной кодировке (по умолчанию).
/Z | - игнорировать следующий параметр командной строки.
/NewInstance | - форсировать создание нового экземпляра программы.
/MainClass("MyAkelPad4") | - задать имя класса для нового экземпляра программы. При этом имя может содержать переменную %d, которая заменяется на идентификатор процесса.
/Reassoc | - переустановить ранее назначенные ассоциации типов файлов.
/Deassoc | - снять ранее назначенные ассоциации типов файлов.
/Quit | - закончить обработку параметров командной строки и выйти из программы.
/End | - закончить обработку параметров командной строки.

Методы: /Show(СтильГлавногоОкна) СтильГлавногоОкна 0 скрытое окно. 1 окно как есть (по умолчанию). 2 свернутое окно. 3 развернутое окно. 6 свернутое, не активное окно. 9 не развернутое окно. /Show(2) метод отображает главное окно в свернутом режиме. /OpenFile("файл"[, Кодировка][, СигнатураBOM]) "файл" Файл для открытия. Кодировка Кодировка открытия. Если -1 либо не указана, она будет определена автоматически. СигнатураBOM Сигнатура BOM файла. Если -1 либо не указана, она будет определена автоматически. /OpenFile("C:\File.txt", 65001, -1) метод открывает файл в кодировке UTF-8. /SaveFile("файл"[, Кодировка][, СигнатураBOM]) "файл" Сохранение текущего документа в указанный файл. Если "", используется текущий файл. Кодировка Кодировка сохранения. Если -1 либо не указана, будет использована текущая кодировка. СигнатураBOM Сигнатура BOM файла. 1 - присутствует, 0 - отсутствует, -1 либо не указана - используется текущий BOM. /SaveFile("C:\File.txt", 65001, 0) метод сохраняет файл в кодировке UTF-8 без BOM. /Command(ВнутренняяКоманда[, Параметр]) /Command(4162) метод вызывает внутреннюю команду под номером 4162. /Call("Плагин::Функция"[, дополнительные параметры]) /Call("Scripts::Main") метод вызывает плагин Scripts и функцию Main. /Exec("командная строка"[, "рабочая директория"][, Ожидать][, СтильОкна]) "командная строка" Командная строка. "рабочая директория" Рабочая директория. По умолчанию "". Ожидать Ожидать завершения программы. 1 - ожидать, 0 - не ожидать (по умолчанию). СтильОкна См. описание СтильГлавногоОкна метода /Show(). Замечание: программы могут игнорировать данный параметр. /Exec("notepad.exe") метод вызывает блокнот. /Exec(`notepad.exe`) метод вызывает блокнот. /Exec('notepad.exe') метод вызывает блокнот. /Exec('%windir%\notepad.exe') метод вызывает блокнот. /Exec(`rundll32.exe shell32,ShellExec_RunDLL "%f"`, "%d") метод передает активный файл для открытия по ассоциации Windows. /Font("Шрифт", Начертание, Размер) "Шрифт" Имя шрифта, например, "Courier". Не изменяется, если "". Начертание (одно из следующих): 0 игнорировать. 1 обычный шрифт. 2 жирный шрифт. 3 курсивный шрифт. 4 жирный курсивный шрифт. Размер Размер шрифта. Не изменяется, если 0. /Font("Courier", 4, 10) метод устанавливает жирный курсив Courier шрифт размером 10 pt. /Recode(ПерекодироватьИз, ПерекодироватьВ) ПерекодироватьИз Кодировка источник. Если -1, она будет определена автоматически. ПерекодироватьВ Кодировка приемник. Если -1, она будет определена автоматически. /Recode(1251, 866) метод перекодирует текст из кодировки 1251 в 866. /Insert("текст"[, Esc-последовательности]) "текст" Вставляемый текст. Esc-последовательности: 0 - "текст" не содержит Esc-последовательностей (по умолчанию). 1 - "текст" содержит Esc-последовательности. Набор последовательностей аналогичен диалогу поиска/замены в программе, а также: "\s" - заменяется на выделенный в окне редактирования текст; "\|" - указывает на положение каретки после вставки текста. /Insert("Некая строка") метод заменяет выделение на указанный текст. /Insert("<B>\s</B>", 1) метод добавляет к выделению текст по краям. /Insert("\[0031 0032 0033]", 1) метод заменяет выделение на "123". /If("выражение", "ЕслиИстина", "ЕслиЛожь") "выражение" Выражение может содержать: - математические операции: +, -, *, /, %, &, |, ^. - логические операции: >, <, ==, !=, >=, <=, &&, ||, x?y:z. - комментарии: /*комментарий*/ - методы: SendMain(nMessage, wParam, lParam) nMessage Сообщение, которое посылается главному окну программы. wParam Дополнительная информация. lParam Дополнительная информация. SendEdit(nMessage, wParam, lParam) nMessage Сообщение, которое посылается текущему окну редактирования. wParam Дополнительная информация. lParam Дополнительная информация. Call("Плагин::Функция"[, дополнительные параметры]) - Если вызывается плагин, то код выхода передаётся через специальный параметр &nResult. &nResult должен находится на месте, где синтаксис внешнего вызова требует указатель на число. /If(`Call("Coder::CodeFold", 1, &nResult)`, `/Call("Coder::CodeFold", 1)`, ``) Закрыть окно CodeFold, если открыто. - Если вызывается скрипт, то необходимо использовать внешние вызовы 2 или 4, а также передавать код выхода из скрипта через AkelPad.ScriptExitCode. /If(`Call("Scripts::Main", 4, "EvalCmd.js", 'if (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`, ``, `/Quit`) Выйти, если текущий документ не имеет имени. - Возможно вызывать метод Scripts плагина напрямую. /If(`AkelPad.Constants._X64 == 1`, `/Quit`, ``) Выйти, если программа имеет битность x64. "ЕслиИстина" Командная строка, если результат выражения - истина (не равен нулю). "ЕслиЛожь" Командная строка, если результат выражения - ложь (равен нулю). /If(`SendMain(1222 /*AKD_GETMAININFO*/, 5 /*MI_SAVESETTINGS*/, 0) == 2 /*SS_INI*/`, `/OpenFile("%a\AkelPad.ini")`, ``) метод открывает AkelPad.ini, если настройки сохраняются в ini файл. /Var(Флаги) Флаги использования переменных для методов следующих далее по командной строке. Задается суммой членов: 0 не разворачивать переменные. 1 разворачивать системные переменные (например, %windir%). 2 разворачивать переменные программы %f,%d,%a. Если флаг задан, то символ % указывается как %%. По умолчанию: 1+2=3. /Var(0) /OpenFile("1%a%2.txt") открыть файл "1%a%2.txt". Переменные в методах:
Обычное использование | Пакетные файлы (bat,cmd)
%f - активный файл %d - директория активного файла %a - директория AkelPad'а %% - символ % %системная переменная% | %%f - активный файл %%d - директория активного файла %%a - директория AkelPad'а %%%% - символ % %системная переменная% ^& - символ &

### Ручные установки

Настройки сохраняются в AkelPad.ini или в реестре (HKEY_CURRENT_USER\Software\Akelsoft\AkelPad).

CmdLineBegin | Задает код, который будет добавлен к началу командной строки, перед ее обработкой. Пример: /C+ По умолчанию: "".
CmdLineEnd | Задает код, который будет добавлен к концу командной строки, перед ее обработкой. Пример: /Call("Scripts::Main", 1, "InsertDate.js", "") /C /B /L По умолчанию: "".
ShowModify | Определяет, где можно будет увидеть, что документ изменен. Задается суммой членов: 1 - Отображение "Изменен" в строке состояния. 2 - Отображение звездочки * в заголовке главного окна (SDI). 4 - Отображение звездочки * в заголовке главного окна и в заголовке окна вкладки (MDI/PMDI). 8 - Отображение звездочки * в имени кнопки вкладки (MDI/PMDI). По умолчанию: 1+8=9, отображать везде: 1+2+4+8=15.
StatusPosType | Определяет, как будет отражаться статистика в строке статуса. Задается суммой членов: 1 - "Строка:Столбец". По умолчанию: "Строка:Символ". 2 - Перенесённые номера строк. По умолчанию: неперенесённые номера строк. По умолчанию: 0.
StatusUserFormat | Определяет формат пользователя для строки состояния:
%[ширина] | Добавить разделитель в строку состояния.
%Ch | Шестнадцатеричный код текущего символа в кодировке файла (нижний регистр).
%CH | Шестнадцатеричный код текущего символа в кодировке файла (верхний регистр).
%ch | Шестнадцатеричный код текущего символа (нижний регистр).
%cH | Шестнадцатеричный код текущего символа (верхний регистр).
%cd | Десятеричный код текущего символа.
%cl | Буква текущего символа.
%or | Смещение в символах. Любые переводы строки считаются за один символ (RichEdit).
%ob | Смещение в символах. Переводы строки: \r\r\n - три символа, \r\n - два символа, \r - один символ, \n - один символ. Используйте только при необходимости, т.к. на больших файлах может вызывать замедление работы.
%al | Количество строк в документе.
%ar | Количество символов в документе (RichEdit).
%lb | Номер первой строки выделения.
%le | Номер последней строки выделения.
%ls | Количество выделенных строк.
%f | Размер шрифта.
%t | Размер табуляции.
%m | Размер вертикального маркера.
%cap[текст] | Текст отображающийся при включенной клавише CapsLock.
%num[текст] | Текст отображающийся при включенной клавише NumLock.
%se[текст] | Текст отображающийся по достижению конца документа при поиске.
%r | Количество замен после "Заменить все".
%dc | Количество всех документов (MDI/PMDI).
%dm | Количество измененных документов (MDI/PMDI).
%ds | Количество неизмененных документов (MDI/PMDI).
%di | Индекс активного документа (MDI/PMDI).
%% | Символ %.
Табуляция | Первая табуляция выравнивает текст по центру, вторая по правому краю.
Пример: "Символ:0x%ch%[88]Шрифт:%f%[62]Таб:%t%[38]Маркер:%m%[64]Док:%dm*/%dc" По умолчанию: "" - формат не определен, дополнительная секция строки состояния не отображается.
WordBreak | Определяет, как будет перемещаться каретка по Ctrl+Left/Ctrl+Right. Работает только при отмеченном пункте в настройках "Разделители слов" (WordDelimitersEnable=1). Задается суммой членов: 1 - Движение влево прекращается, когда встречается начало слова. 2 - Движение влево прекращается, когда встречается конец слова. 4 - Движение вправо прекращается, когда встречается начало слова. 8 - Движение вправо прекращается, когда встречается конец слова. 16 - Движение прекращается, когда встречается начало серии пробелов. Не может быть использовано совместно с 64. 32 - Движение прекращается, когда встречается конец серии пробелов. Не может быть использовано совместно с 128. 64 - Движение продолжается, когда встречается начало серии пробелов. Не может быть использовано совместно с 16. 128 - Движение продолжается, когда встречается конец серии пробелов. Не может быть использовано совместно с 32. 256 - Движение прекращается, когда встречается конец строки. По умолчанию: 1+2+4+8+32+64=111 (AkelEdit), 1+8=9 (AkelPad).
CaretOptions | Определяет настройки каретки. Задается суммой членов: 1 - GUI (выход каретки за края строк). 2 - GUI (показывать активный столбец). 4 - GUI (показывать активную строку). 8 - GUI (показывать границу активной строки). 16 - Горизонтальный отступ каретки не восстанавливается после нажатия на клавиши: Up, Down, Page Up, Page Down. По умолчанию: 4+8=12.
MouseOptions | Определяет настройки мыши. Задается суммой членов: 1 - GUI (левый клик в отступ выделяет строку). 2 - GUI (RichEdit выделение мышью). 4 - GUI (перетаскивание мышью). 8 - GUI (правый клик смещает каретку). 16 - Не выделять новую строку при клике в зону левого отступа, а также при тройном клике. 32 - Не менять размер шрифта посредством колесика мыши и клавиши Ctrl. 64 - Выделять мышью всю, разделенную переносами, строку. 128 - Не прокручивать окно после клика средней клавишей мыши. 256 - Инвертировать горизонтальную прокрутку колесиком мыши. 512 - Инвертировать вертикальную прокрутку колесиком мыши. По умолчанию: 1+2+4=7.
MScrollSpeed | Скорость прокрутки после клика средней клавишей мыши. Например, 5. По умолчанию: 0 - скорость определяется программой.
ScrollPastEOF | Вертикальная прокрутка за пределы последней строки. В процентах от высоты области редактирования. Например, 100. По умолчанию: 0 - отключено.
TabOptionsMDI | Определяет настройки вкладок в режиме MDI/PMDI. Задается суммой членов: 1 - GUI (скрыть вкладки). 2 - GUI (отобразить вкладки сверху). 4 - GUI (отобразить вкладки снизу). 256 - GUI (стандартный стиль). 512 - GUI (стиль кнопки). 1024 - GUI (стиль плоской кнопки). 65536 - GUI (переключаться между вкладками как Следующая-Предыдущая). 131072 - GUI (переключаться между вкладками как Правая-Левая). 524288 - создавать вкладки сразу после текущей. 1048576 - не создавать вкладки двойным кликом левой кнопки по панели вкладок. 2097152 - не создавать вкладки кликом средней кнопки по панели вкладок. 4194304 - не закрывать вкладки двойным кликом левой кнопки по вкладке. 8388608 - не закрывать вкладки кликом средней кнопки по вкладке. 268435456 - при закрытии программы закрывать сперва измененные вкладки. По умолчанию: 2+256+131072=131330.
TabNameFind | Определяет шаблон поиска регулярного выражения для имени вкладки в режиме MDI/PMDI. Если шаблон не найден, имя файла отображается без изменений. Используется совместно с TabNameRep. По умолчанию: "".
TabNameRep | Определяет шаблон замены регулярного выражения для имени вкладки в режиме MDI/PMDI. Используется совместно с TabNameFind. Пример: TabNameFind=(.{20}).{3,}(?:\.([^.]*))? TabNameRep=\1...\2 По умолчанию: "".
PaintOptions | Определяет некоторые установки по рисованию текста. Задается суммой членов: 1 - Рисование текста по группам символов (по умолчанию посимвольная прорисовка). С этим флагом некоторые программы, использующие графическое распознавание текста, могут начать работать (если не работали), принтер может печатать быстрее, но подсвеченные символы и комбинированные символы юникода могут рисоваться иначе, а также редактирование этих символов может стать некомфортным. 2 - Не рисовать выделение перевода строки как пробела. 4 - Рисовать выделение перевода строки до правой границы. 8 - Скрывать выделение при потере фокуса. 16 - Не рисовать вертикальный маркер после последней строки. 128 - Высота строки как единица для вертикальной прокрутки (по умолчанию пиксел). 256 - Скрывать прокрутку текста у окна редактирования, если она не требуется. 512 - Рисовать тонкую границу у окна редактирования. 1024 - Не рисовать границу у окна редактирования. По умолчанию: 0.
FixedCharWidth | Определяет фиксированную ширину символа. Все символы, включая пропорциональные шрифты, будут рисоваться в заданной ширине. Специальные значения: -1 - средняя ширина латинских символов в шрифте. -4 - ширина пробела в шрифте. -6 - максимальная ширина латинских символов в шрифте. 0 - отключить фиксацию ширины. По умолчанию: 0.
CreateFile | Определяет некоторые флаги создания файла. Задается суммой членов: 1 - Использовать флаг FILE_FLAG_WRITE_THROUGH при записи файла. Может быть решением, если существует риск потери данных при проблемах с питанием. По умолчанию: 0.
EditStyle | Определяет некоторые флаги создания окна редактирования. Задается суммой членов: 1 - Буфер отмен использует кучу процесса, вместо кучи окна. Данный флаг необходим для работы сообщений AEM_DETACHUNDO и AEM_ATTACHUNDO, но при закрытии окна освобождение памяти будет происходить медленнее. По умолчанию: 0.
RichEditClass | Определяет какое имя класса будет у окна редактирования: 0 - "AkelEdit". 1 - "RichEdit20". По умолчанию: 0.
SingleOpenProgram | Опция "Не открывать программу дважды" в режиме MDI/PMDI. Задается суммой членов: 1 - GUI (опция включена). 2 - опция работает только для совпадающего exe файла. Требует запуска от имени администратора (UAC). По умолчанию: 1.
AkelAdminResident | Определяет будет ли AkelAdmin.exe оставаться в памяти: 0 - AkelAdmin.exe выгружается из памяти. Каждый раз будет запрашиваться пароль на изменение защищенного файла. 1 - AkelAdmin.exe остается в памяти. Пароль будет запрошен только первый раз на изменение защищенного файла. По умолчанию: 1.
VersionCheck | Определяет флаги проверки версий. Задается суммой членов: 1 - версия программы и языкового модуля должна совпадать. По умолчанию: 1.
DateInsertFormat | Определяет формат вставляемой даты. Время:
h | Часы без ведущего нуля в 12-часовом формате.
hh | Часы с ведущим нулем в 12-часовом формате.
H | Часы без ведущего нуля в 24-часовом формате.
HH | Часы с ведущим нулем в 24-часовом формате.
m | Минуты без ведущего нуля.
mm | Минуты с ведущим нулем.
s | Секунды без ведущего нуля.
ss | Секунды с ведущим нулем.
t | Маркер (такой как A или P).
tt | Многосимвольный маркер (такой как AM или PM).
Дата:
d | День месяца без ведущего нуля.
dd | День месяца с ведущим нулем.
ddd | Трехбуквенное сокращение дня недели.
dddd | Полное название дня недели.
M | Номер месяца без ведущего нуля.
MM | Номер месяца с ведущим нулем.
MMM | Трехбуквенное сокращение названия месяца.
MMMM | Полное название месяца.
y | Двухзначное обозначение года без ведущего нуля (последние две цифры года).
yy | Двухзначное обозначение года с ведущим нулем.
yyyy | Полный номер года.
gg | Название периода или эры.
Пример: "H:mm:ss dd MMMM yyyy" -> "12:50:24 01 сентября 2010" По умолчанию: "" - формат определяется программой.
DateLogFormat | Определяет формат даты для файлов содержащих ".LOG" в начале. Работает только при отмеченном пункте в настройках "Вставить дату, если файл содержит .LOG в начале" (DateLog=1). См. DateInsertFormat для описания синтаксиса. По умолчанию: "" - формат определяется программой.
AkelUpdaterOptions | Определяет параметры командной строки для AkelUpdater.exe. По умолчанию: "".
UrlCommand | Определяет команду для запуска при клике по гиперссылке. При этом переменная %u обозначает текст гиперссылки. Пример: Exec(`"%ProgramFiles%\Mozilla Firefox\firefox.exe" "%u"`) По умолчанию: "" - гиперссылка открывается операционной системой.

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

Ctrl+X Shift+Del | Вырезать
Ctrl+C Ctrl+Ins Ctrl+Shift+C | Копировать
Ctrl+V Shift+Ins | Вставить
Ctrl+Shift+V Ctrl+Shift+Ins | Вставить текст как ANSI
Alt+V | Вставить текст в вертикальное выделение
Ctrl+A | Выделить всё
Backspace | Удалить слева
Del | Удалить справа
Ctrl+Z | Отменить
Ctrl+Shift+Z | Повторить
Insert | Режим вставки/замены
Home | Перейти на начало строки
End | Перейти на конец строки
Ctrl+Home | Перейти в начало текста
Ctrl+End | Перейти в конец текста
Ctrl+Left | Перейти на начало слова
Ctrl+Right | Перейти на конец слова
Ctrl+Up | Перейти на начало предыдущей строки
Ctrl+Down | Перейти на начало следующей строки
Ctrl+PageUp | Перейти к первому видимому символу
Ctrl+PageDown | Перейти к последнему видимому символу
Ctrl+Backspace | Удалить слово слева
Ctrl+Del | Удалить слово справа
Ctrl+N | Создать новый файл
Ctrl+Shift+N | Создать новое окно
Ctrl+O | Открыть файл
F5 Ctrl+Shift+O | Переоткрыть файл
F2 Ctrl+S | Сохранить
Shift+F2 Ctrl+Shift+S | Сохранить как
Ctrl+Alt+F2 | Сохранить все
Ctrl+Alt+F4 | Закрыть все
Ctrl+P | Печать
Esc Alt+F4 | Выход
Ctrl+F | Найти
F3 | Найти далее вниз. Диалог поиска/замены: закрыть диалог и найти далее вниз.
Shift+F3 | Найти далее вверх. Диалог поиска/замены: закрыть диалог и найти далее вверх.
Ctrl+R Ctrl+H | Найти и заменить
Ctrl+G | Перейти к строке (по номеру)
Ctrl+I | Запустить "Таблицу символов"
Ctrl+D | Вставить дату
Ctrl+T | Включить/выключить режим "Поверх всех окон"
Ctrl+U | Включить/выключить режим "Перенос по словам"
Alt+W | Открыть редактируемый файл в кодировке ANSI (Windows)
Alt+D | Открыть редактируемый файл в кодировке OEM (DOS)
Alt+K | Открыть редактируемый файл в кодировке КОИ8-Р
Alt+L | Открыть редактируемый файл в кодировке UTF-16LE
Alt+B | Открыть редактируемый файл в кодировке UTF-16BE
Alt+U | Открыть редактируемый файл в кодировке UTF-8
Shift+Alt+W | Сохранить редактируемый файл в кодировке ANSI (Windows)
Shift+Alt+D | Сохранить редактируемый файл в кодировке OEM (DOS)
Shift+Alt+K | Сохранить редактируемый файл в кодировке КОИ8-Р
Shift+Alt+L | Сохранить редактируемый файл в кодировке UTF-16LE
Shift+Alt+B | Сохранить редактируемый файл в кодировке UTF-16BE
Shift+Alt+U | Сохранить редактируемый файл в кодировке UTF-8
Alt+F5 | Переоткрыть файл с определением кодировки
F12 | Показать контекстное меню для быстрого переоткрытия/сохранения в нужной кодировке
Alt+R | Перекодировать текст
Shift+Space | Удалить пробел, если выделено несколько строк, в противном случае вставить пробел.
Shift+Backspace | Убрать первый символ в начале строк
Alt+Backspace | Убрать Tab'ы и пробелы в конце строк
Alt+P | Плагины
Ctrl+F5 | Выполнить команду
Ctrl+L | Включить/выключить режим "Сохранять отступы слева"
Ctrl+Enter | Вставить новую строку с сохранением отступов слева, если отключено "Сохранять отступы слева". Вставить новую строку без сохранения отступов слева, если включено "Сохранять отступы слева".
F4 Alt+Enter | Развернуть/восстановить окно
F8 Ctrl+Y | Удалить текущую строку
Alt+\ | Перевести каретку на другой конец выделения
Alt+, | Перевести каретку на предыдущую позицию
Alt+. | Перевести каретку на следующую позицию
Ctrl+Num + | Увеличить шрифт на 1 pt
Ctrl+Num - | Уменьшить шрифт на 1 pt
Ctrl+Num * | Восстановить размер шрифта
Ctrl+5 | Менять регистр по кругу
Ctrl+6 | Выделенный текст, как "ВСЕ ПРОПИСНЫЕ"
Ctrl+7 | Выделенный текст, как "все строчные"
Ctrl+8 | Выделенный текст, как "Как в предложениях."
Ctrl+9 | Выделенный текст, как "Начинать С Прописных"
Ctrl+0 | Выделенный текст, как "иНВЕРТИРОВАТЬ"
F6 | Перейти к следующему диалогу
Shift+F6 | Перейти к предыдущему диалогу
F9 | Перейти к следующей части разделенного окна
Shift+F9 | Перейти к предыдущей части разделенного окна
F10 | Диалог выбора окна (MDI/PMDI)
Ctrl+Tab Ctrl+F6 | Следующее окно (MDI/PMDI)
Ctrl+Shift+Tab Ctrl+Shift+F6 | Предыдущее окно (MDI/PMDI)
Ctrl+F4 Ctrl+W | Закрыть окно (MDI/PMDI)

### Внутренние команды

Могут быть использованы в параметрах командной строки, а также в ContextMenu, ToolBar, Hotkeys, Scripts плагинах.

4101 | Создать новое окно редактирования
4102 | Создать новую копию программы
4103 | Диалог открытия файлов Необязательный параметр: 1 - форсировать использование последней директории.
4104 | Переоткрыть файл
4105 | Сохранить файл
4106 | Диалог сохранения файлов Необязательный параметр: 1 - форсировать использование последней директории.
4107 | Диалог настроек печати
4108 | Диалог печати
4109 | Выход из программы
4110 | Сохранить все документы
4111 | Диалог сохранения всех документов
4113 | Печать без диалога
4114 | Диалог предпросмотра печати
4121 | Определить кодировку текущего документа заново
4122 | Переоткрыть файл как ANSI
4123 | Переоткрыть файл как OEM
4124 | Переоткрыть файл как KOI-R
4125 | Переоткрыть файл как UTF16LE
4126 | Переоткрыть файл как UTF16BE
4127 | Переоткрыть файл как UTF8
4131 | Сохранить файл как ANSI
4132 | Сохранить файл как OEM
4133 | Сохранить файл как KOI-R
4134 | Сохранить файл как UTF16LE
4135 | Сохранить файл как UTF16BE
4136 | Сохранить файл как UTF8
4137 | Сохранить файл как UTF8 без BOM
4140 | Показать контекстное меню кодировок
4151 | Отменить последнюю операцию (Undo)
4152 | Повторить последнюю операцию (Redo)
4153 | Вырезать Необязательный первый параметр: 1 - вырезать слово под кареткой, если нет выделения; 2 - вырезать строку под кареткой, если нет выделения; 4 - вырезать неперенесённую строку под кареткой, если нет выделения. 8 - вырезать также символ новой строки. Используется совместно с флагом 2 (2+8=10) или 4 (4+8=12). Необязательный второй параметр: 1 - новая строка входящих данных. 2 - новая строка исходящих данных (по умолчанию). 3 - новая строка исходника (как есть). 5 - новая строка "\r". 6 - новая строка "\n". 7 - новая строка "\r\n". 8 - новая строка "\r\r\n". Калькуляция значения параметров: (значение первого параметра) + 100000 * (значение второго параметра)
4154 | Скопировать Необязательный первый параметр: 1 - копировать слово под кареткой, если нет выделения; 2 - копировать строку под кареткой, если нет выделения; 4 - копировать неперенесённую строку под кареткой, если нет выделения. 8 - копировать также символ новой строки. Используется совместно с флагом 2 (2+8=10) или 4 (4+8=12). Необязательный второй параметр: 1 - новая строка входящих данных. 2 - новая строка исходящих данных (по умолчанию). 3 - новая строка исходника (как есть). 5 - новая строка "\r". 6 - новая строка "\n". 7 - новая строка "\r\n". 8 - новая строка "\r\r\n". Калькуляция значения параметров: (значение первого параметра) + 100000 * (значение второго параметра)
4155 | Вставить Необязательный первый параметр: 1 - вставить текст как ANSI. Тоже что и команда 4191. 2 - вставить из буфера обмена в вертикальное выделение. Тоже что и команда 4192. 4 - выделить вставленный текст. Необязательный второй параметр: 1 - новая строка входящих данных (по умолчанию). 2 - новая строка исходящих данных. 3 - новая строка исходника (как есть). 5 - новая строка "\r". 6 - новая строка "\n". 7 - новая строка "\r\n". 8 - новая строка "\r\r\n". Калькуляция значения параметров: (значение первого параметра) + 100000 * (значение второго параметра)
4156 | Удалить
4157 | Выделить все
4158 | Диалог поиска
4159 | Найти далее вниз
4160 | Найти далее вверх
4161 | Диалог замены
4162 | Диалог перехода к строке
4163 | Запуск charmap.exe
4164 | Вставить табуляцию
4165 | Вставить табуляцию, только если выделено несколько строк
4166 | Удалить табуляцию, если выделено несколько строк, в противном случае вставить табуляцию. Необязательный параметр: 1 - удалять табуляцию при однострочном выделении.
4167 | Удалить табуляцию, только если выделено несколько строк
4168 | Вставить пробел
4169 | Вставить пробел, только если выделено несколько строк
4170 | Удалить пробел, если выделено несколько строк, в противном случае вставить пробел. Необязательный параметр: 1 - удалять пробел при однострочном выделении.
4171 | Удалить пробел, только если выделено несколько строк
4172 | Удалить первый символ
4173 | Удалить первый символ, только если есть выделение
4174 | Удалить табы и пробелы в конце
4175 | Преобразовать в "ВСЕ ПРОПИСНЫЕ". Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4176 | Преобразовать в "все строчные". Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4177 | Преобразовать в "Как в предложениях.". Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4178 | Преобразовать в "Начинать С Прописных". Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4179 | Преобразовать в "иНВЕРТИРОВАТЬ". Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4180 | Преобразовать по кругу. Необязательный параметр: 1 - изменить регистр для всего текста, если нет выделения.
4182 | Диалог перекодирования
4183 | Вставить дату
4184 | Формат новой строки Windows
4185 | Формат новой строки Unix
4186 | Формат новой строки Mac
4190 | Режим вставки/замены
4191 | Вставить текст как ANSI
4192 | Вставить из буфера обмена в вертикальное выделение
4193 | Вставить текст из буфера обмена после каретки
4194 | Вставить текст из буфера обмена с учетом регистра выделения
4195 | Удалить все табы и пробелы в выделении
4196 | Вставить новую строку с сохранением отступов слева, если отключено "Сохранять отступы слева". Вставить новую строку без сохранения отступов слева, если включено "Сохранять отступы слева".
4197 | Удалить текущую строку. Необязательный параметр: 1 - удалить всю перенесённую строку.
4198 | Перевести каретку на другой конец выделения
4199 | Перевести каретку на предыдущую позицию
4200 | Перевести каретку на следующую позицию
4201 | Диалог выбора шрифта
4202 | Диалог выбора цветовой темы
4204 | Увеличить шрифт на 1pt
4205 | Уменьшить шрифт на 1pt
4206 | Восстановить размер шрифта
4209 | Перенос по словам (вкл\выкл)
4210 | Поверх всех окон (вкл\выкл)
4211 | Показать строку состояния (вкл\выкл)
4212 | Разделить окно на четыре части
4213 | Разделить окно на две вертикальные части
4214 | Разделить окно на две горизонтальные части
4215 | Разделить окно (вкл\выкл)
4216 | Только чтение (вкл\выкл)
4251 | Выполнить
4252 | Сохранять время файла (вкл\выкл)
4253 | Следить за изменением файла (вкл\выкл)
4254 | Сохранять отступы слева (вкл\выкл)
4255 | Не открывать файл дважды (вкл\выкл)
4256 | Не открывать программу дважды (вкл\выкл)
4259 | Диалог плагинов
4260 | Диалог настроек
4261 | Однооконный (SDI) режим
4262 | Многооконный (MDI) режим
4263 | Псевдо-многооконный (PMDI) режим
4301 | Вкладки сверху
4302 | Вкладки снизу
4303 | Скрыть вкладки
4304 | Стандартные вкладки
4305 | Вкладки как кнопки
4306 | Вкладки как плоские кнопки
4307 | Выстроить горизонтально MDI окна
4308 | Выстроить вертикально MDI окна
4309 | Выстроить каскадом MDI окна
4310 | Переключение вкладок: следующая-предыдущая.
4311 | Переключение вкладок: правая-левая.
4316 | Активировать следующую вкладку
4317 | Активировать предыдущую вкладку
4318 | Закрыть текущую вкладку
4319 | Закрыть все вкладки
4320 | Закрыть все вкладки, кроме активной
4321 | Закрыть все неизмененные вкладки Необязательный параметр: 1 - закрыть все измененные вкладки.
4322 | Клонировать вкладку
4323 | Копировать путь файла текущей вкладки Необязательный параметр: 0 - копировать полный путь (по умолчанию); 1 - копировать директорию; 2 - копировать имя файла; 3 - копировать имя файла без расширения; 4 - копировать расширение файла.
4324 | Закрыть файл
4325 | Закрыть файл и выйти из программы (SDI) или закрыть вкладку файла (MDI/PMDI).
4327 | Диалог выбора окна (MDI/PMDI). Тоже что и 10019.
4331 | Восстановить/Развернуть главное окно программы
4332 | Перейти к следующему диалогу
4333 | Перейти к предыдущему диалогу
4341 | Перейти к следующей части разделенного окна
4342 | Перейти к предыдущей части разделенного окна
4351 | Диалог о программе
4352 | Открыть руководство пользователя
4353 | Проверить обновления (AkelUpdater)
5001 | В списке последних файлов удалить несуществующие
5001 + n | Из списка последних файлов, открыть файл n
6001 | Выбрать внутренний язык
6001 + n | Из списка языков, выбрать язык n
7001 | Из списка кодировок, открыть в первой кодировке
7001 + n | Из списка кодировок, открыть в кодировке n
8001 | Из списка кодировок, сохранить в первой кодировке
8001 + n | Из списка кодировок, сохранить в кодировке n
10019 | Диалог выбора окна (MDI/PMDI). Тоже что и 4327.

### Синтаксис регулярных выражений

Регулярное выражение - это шаблон текста, который состоит из обычных символов (например, букв от а до я) и специальных символов, известных как метасимволы. Шаблон задает правила поиска и может осуществлять манипуляции с подстроками в тексте.

Пример шаблона | Соответствие
--- | ---
^\s*?$ | Соответствует пустой строке.
\d{2}-\d{5} | Соответствует номеру, состоящему из 2 цифр, дефиса и 5 дополнительных цифр.
<(\w+)[^>]*>.*?</\1> | Соответствует HTML тэгу.

Приведенная ниже таблица содержит полный список поддерживаемых метасимволов и их значение:

Символ | Описание
--- | ---
\ | Отмечает следующий символ как обычный символ (один из "()[]{}^$.?+*\|"), специальный символ или обратную ссылку. Например, 'n' соответствует символу "n". '\n' соответствует символу новой строки. Последовательность '\\' соответствует "\" и '\(' соответствует "(".
^ | Соответствует позиции начала строки.
$ | Соответствует позиции конца строки.
* | Найти далее предыдущий символ или выражения ноль или более раз. Например, 'zo*' соответствует "z" и "zoo". '*' эквивалентно '{0,}'.
+ | Найти далее предыдущий символ или выражения один или более раз. Например, 'zo+' соответствует "zo" и "zoo", но не "z". '+' эквивалентно '{1,}'.
? | Найти далее предыдущий символ или выражения ноль или один раз. Например, 'do(es)?' соответствует "do" в "document" или "does" в "does". '?' эквивалентно '{0,1}'.
{n} | Найти далее предыдущий символ или выражения ровно n раз. Например, 'о{2}' не соответствует "o" в "Bob", но соответствует "oo" в "food".
{n,} | Найти далее предыдущий символ или выражения не меньше n раз. Например, 'o{2,}' не соответствует "o" в "Bob", но соответствует "ooooo" в "foooood". 'o{1,}' эквивалентно 'o+'. 'o{0,}' эквивалентно 'o*'.
{n,m} | Найти далее предыдущий символ или выражения не меньше n раз, но не больше m раз. Например, 'o{1,3}' соответствует первым "ooo" в "fooooood". 'o{0,1}' эквивалентно 'o?'. Пробелы между запятой и числами не используются.
. | Соответствует любому одиночному символу.
(шаблон) | Находит соответствие шаблону и сохраняет его. К сохраненному соответствию можно обратиться через обратные ссылки \0...\9. Чтобы не группировать выражение, а найти скобки "(" или ")", используйте '\(' или '\)'.
(?^шаблон) | Находит отрицательное соответствие шаблону и сохраняет его. Шаблон должен быть фиксированной длины, но может содержать обратные ссылки.
(?:шаблон) | Находит соответствие шаблону, но не сохраняет соответствие. Это удобно использовать для объединения частей шаблона со знаком "или" (|). Например, 'industr(?:y|ies)' более экономичное выражение, чем 'industry|industries'.
(?=шаблон) | Положительный поиск вперед (positive lookahead). Соответствие не сохраняется для последующего использования. Например, 'Windows (?=95|98|NT|2000)' соответствует "Windows" в "Windows 2000", но не соответствует "Windows" в "Windows 3.1".
(?!шаблон) | Отрицательный поиск вперед (negative lookahead). Соответствие не сохраняется для последующего использования. Например, 'Windows (?!95|98|NT|2000)' соответствует "Windows" в "Windows 3.1", но не соответствует "Windows" в "Windows 2000".
(?<=шаблон) | Положительный просмотр назад (positive lookbehind). Соответствие не сохраняется для последующего использования. Например, '(?<=abc)z' соответствует "z" только, если ему предшествует "abc". Шаблон должен быть фиксированной длины.
(?<!шаблон) | Отрицательный просмотр назад (negative lookbehind). Соответствие не сохраняется для последующего использования. Например, '(?<!abc)z' соответствует "z" только, если ему не предшествует "abc". Шаблон должен быть фиксированной длины.
(?>шаблон) | Атомарная группа. Возвращение назад по строке в данном шаблоне запрещено, если часть шаблона уже найдена. Соответствие не сохраняется для последующего использования. Например, 'a(?>bc|b)c' соответствует "abcc", но не "abc".
(?(условие)шаблон-истина|шаблон-ложь) (?(условие)шаблон-истина) | В случае успешного сопоставления условия, используется шаблон-истина, в противном случае шаблон-ложь (если он присутствует). Условие может быть шаблоном с положительным/отрицательным просмотром вперед/назад или номером обратной ссылки, которая будет проверяться на успешность совпадения. Например, '(a)?b(?(1)c|d)' соответствует "abc" в "abc" и "bd" в "zbd". Т.к., если "a" найдено, то ищется "c" после "b", если "a" не найдено, то ищется "d" после "b".
(?опции) | Опции применяются для только текущей группы, если заданы в начале специального шаблона, например, 'a(?i:b)c' применяется для "b" или также для последующих, если заданы отдельно, например, 'a(?i)bc' применяется для "bc". Возможно использовать несколько опций сразу, например, 'a(?im-Us)bc'.
(?i) | не учитывать регистр.
(?m) | многострочный поиск (по умолчанию).
(?s) | точка '.' соответствует любому одиночному символу (по умолчанию).
(?U) | инвертировать жадность.
(?-i) | учитывать регистр.
(?-m) | отключить многострочный поиск. '^' соответствует началу документа, а '$' соответствует концу документа.
(?-s) | точка '.' соответствует любому одиночному символу, кроме символа новой строки.
(?-U) | отключить инвертирование жадности.
x|y | Соответствует x или y. Например, 'z|food' соответствует "z" или "food". '(z|f)ood' соответствует "zood" или "food".
[xyz] | Набор знаков. Совпадает с любым из указанных символов. Например, '[abc]' соответствует "a" в "plain".
[^xyz] | Отрицательный набор знаков. Соответствует любому не указанному символу. Например, '[^abc]' соответствует "p" в "plain".
[a-z] | Диапазон знаков. Соответствует любому знаку в указанном диапазоне. Например, '[a-z]' соответствует любому буквенному символу в нижнем регистре из диапазона от "a" до "z".
[^a-z] | Отрицательный диапазон символов. Соответствует всем символам, которые отсутствуют в указанном диапазоне. Например, '[^a-z]' соответствует всем символам, которые отсутствуют в диапазоне от "a" до "z".
\b | Соответствует границе слова, т.е. позиции между словом и разделителем. Например, 'er\b' соответствует "er" в "never", но не соответствует "er" в "verb".
\B | Соответствует позиции, отличной от границы слова. 'er\B' соответствует "e" в "verb", но не соответствует "er" в "never".
\A | Соответствует позиции начала документа. Например, '\Aabc' соответствует "abc" в "abc\ndef", но не соответствует "abc" в "def\nabc".
\Z | Соответствует позиции конца документа. Например, 'abc\Z' соответствует "abc" в "def\nabc", но не соответствует "abc" в "abc\ndef".
\a | Тоже, что и \A, но соответствует позиции начала диапазона поиска.
\z | Тоже, что и \Z, но соответствует позиции конца диапазона поиска.
\K | Все предыдущие найденные символы не включаются в конечный результат. Например, 'a+b+\K\c+' соответствует "ccc" в "aaabbbccc".
\d | Соответствует знаку цифры. Эквивалентно '[0-9]'.
\D | Соответствует любому знаку, не являющемуся цифрой. Эквивалентно '[^0-9]'.
\f | Символ перевода страницы. Эквивалентно '\x0c'.
\n | Любая новая строка. Для поиска Unix новой строки используйте '\x0a'.
\r | Любая новая строка. Для поиска Mac новой строки используйте '\x0d'.
\s | Любой знак пробела: пробел, табуляция, перевод страницы и т.д. Эквивалентно '[ \f\n\r\t\v]'.
\S | Любой символ, не являющийся пробелом. Эквивалентно '[^ \f\n\r\t\v]'.
\t | Символ табуляции. Эквивалентно '\x09'.
\v | Символ вертикальной табуляции. Эквивалентно '\x0b'.
\w | Соответствует любому символу, составляющему слово (любому символу, который не является разделителем).
\W | Соответствует любому символу, не составляющему слово (любому символу, который является разделителем).
\xn | Соответствует n, где n — шестнадцатеричный код символа, который имеет длину ровно две цифры. Например, '\x41' соответствует "A".
\un | Соответствует n, где n код символа Юникода, выраженный в виде четырех шестнадцатеричных цифр. Например, '\u00A9' соответствует символу авторского права "©".
\x{n} | Соответствует n, где n — шестнадцатеричный код символа. Например, '\x{20027}' эквивалентно суррогатной паре '\uD840\uDC27'.
\n | Соответствует n, где n - это номер обратной ссылки, состоящий из одной цифры. Например, '(.)\1' соответствует двум последовательным одинаковым символам.
\nn | Соответствует nn, где nn - это номер обратной ссылки, состоящий из двух цифр от 01 до 99. Например, '(.)\01' соответствует двум последовательным одинаковым символам.

Замечания:
- Квантификаторы регулярных выражений (*, +, {n,}) являются по умолчанию жадными. Чтобы сделать их нежадными, используется "?" после квантификатора, например, "\d*?". Чтобы сделать их сверхжадными, используется "+" после квантификатора, например, "\d*+".
- Использование сверхжадных квантификаторов увеличивает скорость выполнения выражения.
- Метасимволы \b, \B, \A, \a, \z, \Z, \K не используются в наборах знаков [xyz], т.к. не соотносятся с какими-либо конкретными знаками.
- Если метасимвол \K исключил символы из результата, кнопка "Заменить" в диалоге замены будет работать как "Найти".

### Лицензионное соглашение

Данная программа распространяется на условиях лицензии BSD. Лицензия BSD (или BSD licence) - это лицензия программного обеспечения с открытым исходным кодом, одобренная OSI (Open Source Initiative). Её текст может быть найден на сайте этой организации.

### Авторы

Шенгальц Александр (e-mail: shengalts@mail.ru)
Кузнецов Алексей
Домашняя страница: http://akelpad.sf.net