Для меня файловый менеджер FAR — это настоящий центр компьютерной вселенной. Это та самая программа, которую я запускаю сразу после загрузки операционной системы. Это то самое приложение, которое у меня всегда открыто, что бы я ни делал, какие бы задачи ни решал. За много лет мой FAR превратился в привычный инструмент, который так удобно ложится в руку, что тут же становится её естественным продолжением.
FAR — это тихая надёжная гавань, в которой я могу отдохнуть от пёстрых окон, разноцветных иконок и безумных графических интерфейсов. Это то место, откуда начинаются все мои цифровые экспедиции, где хранятся все мои привычные инструменты и находятся дверцы во все мои заветные сокровищницы знаний.
В статье я расскажу о том, как можно настроить и кастомизировать пользовательское меню файлового менеджера FAR.
Это меню позволяет не просто запускать заданные программы и открывать файлы. С помощью различных дополнительных настроек можно гибко и удобно расширять возможности его команд. Например, можно вывести результат выполнения консольного приложения во встроенном текстовом редакторе FAR. Или ввести значение какого-нибудь параметра или ключа в специальном окне непосредственно перед запуском команды. Давайте разбираться, как это сделать.

Дисклеймер. Все примеры в статье содержат команды для Windows.
Главное и местное пользовательское меню
Сначала небольшая порция ликбеза. Разберёмся, что вообще такое пользовательское меню FAR, как оно работает и где хранятся его настройки.
Пользовательское меню FAR — это окно с вертикальным списком команд, расположенное по центру родительского окна FAR. Оно вызывается клавишей F2. Каждая строка меню либо вызывает заданную команду, либо открывает вложенный раздел меню.
Настройки главного пользовательского меню хранятся в файле FarMenu.ini в каталоге FAR\Profile. Кроме того, вы можете создать местное меню для любого каталога. Для этого можно завести в этом каталоге отдельный файл FarMenu.ini. Если на активной панели выбран каталог с файлом FarMenu.ini, то по кнопке F2 FAR откроет местное меню вместо главного. Но вы всегда можете переключиться в главное меню, нажав Shift+F2.
Пользовательское меню можно редактировать непосредственно в интерфейсе FAR с помощью горячих клавиш:
Ins — добавить строку или подменю;
Del — удалить выбранную строку;
F4 — редактировать выбранную строку;
Alt+F4 — открыть файл
FarMenu.iniменю в редакторе FAR.
Я предпочитаю настраивать меню в редакторе — так удобнее, можно свободно управлять строками. Например, только в редакторе можно быстро поменять их порядок.
Формат файла FarMenu.ini
Файл FarMenu.ini состоит из блоков, каждый из которых описывает строку меню. Формат блока:
K: Заголовок
КомандыЗдесь:
K— горячая клавиша для вызова строки меню. Может отсутствовать, тогда первая строка блока начинается просто с двоеточия.Заголовок— текст, который будет отображаться в строке меню.Команды— список команд, которые нужно выполнить. Может содержать несколько строк с командами, которые будут выполняться последовательно. По сути это аналог строк bat-файла.
Пример команды меню:
T: Текущее время
time.exe /t
pauseНа любом уровне меню можно добавить строку вызова вложенного меню. Список строк вложенного меню нужно включить в фигурные скобки: {}.
Например:
: Команды операционной системы
{
C: Панель управления
rundll32 shell32,Control_RunDLL
F: Безопасное извлечение устройства
rundll32 shell32.dll,Control_RunDLL hotplug.dll
I: Сведения о системе
rundll32 shell32.dll,ShellAboutA
}
В любое место меню можно добавить горизонтальный разделитель:
--:Запуск программ
Базовая функция пользовательского меню — запуск программ или скриптов.
Например:
C: Калькулятор
C:\Windows\System32\calc.exeПо сути это функциональность обычного «лаунчера». Но этим возможности пользовательского меню не ограничиваются. На самом деле это мощный интерфейс, с помощью которого можно много чего сделать и автоматизировать.
Использование макросов
В командах можно использовать различные макросы, вместо которых FAR будет подставлять реальные значения. Я чаще всего использую вот такие макросы:
!— длинное имя файла без расширения;!.!— длинное имя файла с расширением;!\— полное имя текущего пути без имени файла;!\!.!— полный путь и имя текущего файла.
Все макросы в этом списке соответствуют текущему каталогу и файлу, который выбран на активной панели FAR в момент вызова пользовательского меню.
Пример:
: Распаковать архив
winrar.exe x "!.!" "!"\Эта команда создаёт папку с именем выбранного архива (без расширения) и распаковывает туда этот архив.
Не буду в этой статье перечислять полный список доступных макросов — их полный список есть в справке FAR, в разделе «Метасимволы». Посмотрите на досуге, там много чего интересного.
Задание параметров вызова
Из пользовательского меню можно не только запускать программы, но и передавать им какие-то значения, заданные пользователем. После выбора строки меню, но до запуска команды в FAR появится окно для ввода нужного значения.
Чтобы провернуть такой фокус, нужно непосредственно в текст команды добавить конструкцию:
!?$<history>$<title>?<init>!Здесь:
$<history>$— имя журнала истории. Это отдельный журнал, в котором FAR будет хранить список ранее введённых значений и предлагать их при последующих вызовах. Эту часть конструкции можно опустить, тогда FAR будет использовать общий журнал.<title>— заголовок окна.<init>— значение по умолчанию. Можно не задавать.
Пример:
: Создать виртуальный диск для текущего каталога
subst.exe !?Введите имя диска?K!: !\В этом примере не используется отдельный журнал — нет смысла запоминать буквы диска. А вот, например, при вызове команды ping журнал очень пригодится:
P: Великий Попингуй
ping.exe !?$ping$Введите адрес?127.0.0.1!
pauseКогда вы начнёте вводить адрес в окне, FAR будет услужливо предлагать ранее введённые адреса из журнала, которые начинаются с тех же цифр. Удобно!

Вывод результата выполнения команды в окне сообщения FAR
Всё это были базовые возможности. Теперь давайте попробуем сделать что-нибудь более сложное, чего нет в справке. Например, использовать LUA-код в тексте команды. Для этого можно использовать префикс lua:. В следующем примере вызовем какую-нибудь команду и выведём результат её выполнения в стандартном окне сообщения FAR.
Пример:
T: Текущее время
lua: local handle = io.popen ("time.exe /t"); local res = handle:read("*a"); handle:close(); msgbox ('Текущее время', res)Здесь мы вызываем time.exe с ключом /t — только выводить текущее время без запроса нового времени. Потом мы перехватываем вывод этой программы и транслируем его в окно сообщения FAR с помощью команды msgbox. Весь этот LUA-скрипт написан в одну строку.

Использование возможностей плагина FAR Commands
Плагин FAR Commands добавляет нам ещё больше возможностей по работе с результатами выполнения команд. Для этого можно использовать префиксы:
view:— вывести результаты в окне просмотра FAR;edit:— вывести результаты в окне редактирования FAR;clip:— скопировать результаты в буфер обмена.
Например, давайте усовершенствуем наш «Великий Попингуй». Пусть он выводит результаты своей работы в окно редактирования FAR.
P: Великий Попингуй II
edit:<"ping.exe !?$ping$Введите адрес?127.0.0.1!"Ещё пример — скопируем текущее время в буфер обмена:
T: Копировать текущее время в буфер обмена
clip:<"time.exe /t"В плагине FAR Commands есть ещё несколько интересных возможностей. Например, можно запустить какую-то команду и сохранить результат её выполнения в файл с заданным именем. Для этого нужно использовать конструкцию:
run:имяфайла<командаМожно перейти к заданному пути с помощью команды:
goto:путьПуть можно взять из текста заданного файла:
goto:<имяфайлаИспользование возможностей EMenu
Плагин EMenu изначально предназначен для вызова контекстного меню Windows на выбранном файле в интерфейсе FAR. Но возможности этого плагина можно использовать и в пользовательском меню. Например, вызвать для выбранного файла заранее заданную команду контекстного меню (чтобы не возиться каждый раз с выбором этой команды).
Для выполнения заданной команды контекстного меню с файлом можно использовать конструкцию:
rclk_item: <название> [файлы]Например:
: Показать свойства выбранного файла
rclk_item: "Свойства" "!\!.!"Эта команда показывает Windows-окно со свойствами выбранного файла.
Работа со временной панелью
В FAR есть очень удобная функциональность — временная панель. Для этого предназначен плагин, который так и называется «Временная панель». Он позволяет на отдельной виртуальной панели выводить список файлов, отобранных по определённому правилу. Этой панелью тоже можно управлять командами — с помощью префикса tmp:.
Пример:
F: Избранное
tmp: +1 %FARHOME%\Favorites.txtЭта команда открывает на временной панели 1 список моих избранных файлов, пути к которым хранятся в текстовом файле Favorites.txt в каталоге FAR.
Вызов окна с системными параметрами файлов
Для вызова списка системных параметров FAR можно использовать команду:
far:configТам тоже можно много чего кастомизировать и поднастроить для себя. Например, я сразу отключил добавление символа BOM (Byte Order Mark) в начало Unicode-файлов в редакторе FAR. Это параметр Editor.AddUnicodeBOM.
Только нужно менять все эти настройки аккуратно и со знанием дела, чтобы ненароком не сломать чего-нибудь важного. Если описание выбранного параметра есть в справке FAR, то его можно посмотреть, нажав Shift+F1.
Примечание: Кстати, все эти префиксы плагинов можно использовать и в обычной командной строке FAR.

На фото и скриншотах вы видите не базовые цвета FAR, а мою кастомизированную палитру. В своей палитре я вручную повторил привычные цвета старого доброго Dos Navigator. Просто открыл старичка DN в окне эмулятора, в другом окне открыл FAR и шаг за шагом вручную перенёс настройки цветов объектов из первой программы во вторую. Благо, что интерфейсы настройки цветов у них практически одинаковые. Так сложилось, что ещё во времена DOS серая классическая гамма Dos Navigator мне нравилась больше, чем не менее классические, но слишком яркие для меня цвета Norton Commander. Поэтому для повышения комфортности рабочей среды я решил хотя бы частично воспроизвести привычную палитру в FAR.

Знаете, за что я люблю FAR? За то, что он содержит множество точек кастомизации, которые дают практически бесконечные возможности по расширению его возможностей.
С помощью команд пользовательского меню можно вызывать практически любые скрипты и программы для выбранных файлов. Можно непосредственно при запуске менять параметры этих скриптов в удобном интерфейсе. А результаты работы этих скриптов можно просматривать, редактировать, сохранять и использовать в следующих скриптах. И всё это с помощью несложных настроек и в привычном интерфейсе.
Ещё почитать:
