Все макрокоманды хранятся в SQLite базе macros.db
Макрокоманды делятся на 17 областей действий (см. Области действия) и 2 области для хранения глобальных переменных и констант:
| Область | Назначение | 
|---|---|
Shell | 
    Файловые панели | 
Info | 
    Информационная панель | 
QView | 
    Панель быстрого просмотра | 
Tree | 
    Панель дерева папок | 
Search | 
    Быстрый поиск в панелях | 
FindFolder | 
    Панель поиска папок | 
Viewer | 
    Внутренняя программа просмотра | 
Editor | 
    Редактор | 
Dialog | 
    Диалоги | 
Menu | 
    Прочие меню | 
MainMenu | 
    Основное меню | 
UserMenu | 
    Пользовательское меню | 
Disks | 
    Меню выбора диска | 
Shell.AutoCompletion | 
    Список автодополнения в панелях | 
Dialog.AutoCompletion | 
    Список автодополнения в диалогах | 
Help | 
    Система помощи | 
Other | 
    Режим копирования текста с экрана | 
Common | 
    Макросы из этой области работают везде. Far Manager просматривает эту область последней. | 
Vars | 
    Область для глобальных переменных, которые Far Manager считывает при старте. В эту область можно писать с помощью функции msave().  | 
  
Consts | 
    Область для глобальных констант, которые Far Manager считывает при старте.  | 
  
Если Far Manager запущен с ключами /e или /v, то не грузятся макросы из следующих макрообластей: Shell,
Info, QView, Tree, Search, FindFolder,
MainMenu, Disks, Shell.AutoCompletion, Dialog.AutoCompletion.
На каждую макрокоманду в базе заводится отдельная запись со следующими полями:
| Поле | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
area | 
    Имя макрообласти | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
key | 
    Назначенная клавиша | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
flags | 
    Флаги для макрополедовательности (перечисленные через символ '|'):
 DisableOutput|Selection - не выводить на экран и если есть выделенные файлы/блок.
     | 
  ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description | 
    Описание макроса | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sequence | 
    Макропоследовательность | 
При импорте каждая запись в XML-файле имеет вид:
<macro area="%AREA%" key="%KEY%" flags="%FLAGS%" description="%DESC%">%SEQUENCE%</macro>
В значениях area, key и description символы "<>& должны быть заменены на " < > и &, соответственно.
Если макропоследовательность %SEQUENCE% содержит символы <>&, то последовательность должна быть обрамлена в "скобки": <![CDATA[%SEQUENCE%]]>
Обязательными являются параметры area и key, остальные могут отсутствовать и принимать значение по умолчанию.
Если %SEQUENCE% отсутствует, то при импорте xml-файла макрос, заданный параметрами area и key будет удален из базы.
Последовательность "sequence" содержит строковое представление макрокоманды. Каждая клавиша имеет свой строковый
эквивалент, разделителем клавиш является пробел, табуляция, или символы конца строки.
При старте Far Manager компилирует последовательность "sequence" во внутренний байткод. Если в процессе компиляции обнаружена ошибка,
то макрос "отбрасывается".
Перед исполнением макроса Far Manager проверяет условия запуска в следующей последовательности:
NoSendKeysToPluginsEmptyCommandLine + NotEmptyCommandLineNoFilePanels     + NoPluginPanelsNoFilePPanels    + NoPluginPPanelsNoFolders        + NoFilesNoPFolders       + NoPFilesViewer, Editor и Dialog:
     Selection        + NoSelectionPSelection       + NoPSelectionViewer, Editor и Dialog:
      EVSelection      + NoEVSelectionВсе дополнительные параметры хранятся в SQLite-базе generalconfig.db (key="KeyMacros").
| Имя | Тип | Default | Описание | 
|---|---|---|---|
DateFormat | 
    TEXT | 
    %a %b %d %H:%M:%S %z %Y | 
    Формат вывода даты/времени по умолчанию (см. date()) | 
CONVFMT | 
    TEXT | 
    %.6g | 
    Формат преобразования чисел (констант и переменных) с плавающей точкой в строку. | 
KeyRecordCtrlDot | 
    TEXT | 
    Ctrl. | 
    Имя комбинации клавиш для записи макроса в общем режиме (см. "Запись макроса"). | 
KeyRecordCtrlShiftDot | 
    TEXT | 
    CtrlShift. | 
    Имя комбинации клавиш для записи макроса в специальном режиме (см. "Запись макроса"). |