## 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 - скорость определяется программой.
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