FAR Manager — консольный файловый менеджер для операционных систем семейства Microsoft Windows и Linux. Автор программы — Евгений Рошал. С 18 июня 2000 года разработкой FAR Manager занимается группа FAR Group. Начиная с версии 2.0 программа распространяется под модифицированной лицензией BSD. Предыдущие версии имели проприетарную лицензию, по которой коммерческое использование программы являлось платным.ИнтерфейсПрограмма FAR Manager наследует двухоконную идеологию, стандартную расцветку и управление с клавиатуры у файлового менеджера Norton Commander. FAR поддерживает работу с файловой системой NTFS, различные кодировки текстов, может использовать системные функции для копирования файлов, имеет многоязычный интерфейс и систему помощи. FAR Manager был с самого начала ориентирован на платформу Windows, поддерживал длинные имена файлов.Подключаемые модули (плагины)Окно FAR развёрнуто на весь экран, в одной панели открыт «быстрый просмотр». Используется плагин Multimedia viewer Возможности FAR расширяются плагинами различного назначения: управление принтерами, как подключёнными к ПК, так и сетевыми; подсветка синтаксиса в исходных текстах программ; работа с FTP-серверами (с поддержкой доступа через различные типы прокси, автоматической докачкой и прочее); работа с SFTP-серверами (плагин WinSCP); работа с любым ssh-сервером по протоколу FISH (только в far2l); поиск и замена символов одновременно во множестве файлов с применением регулярных выражений; средства переименования групп файлов с возможностью использования сложных составных масок из символов подстановки и шаблонов; NNTP-/SMTP-/POP3-/IMAP4-клиенты и отправка сообщений на пейджер; работа при нестандартных размерах текстового экрана; перекодировка текстов с учётом национальных кодовых таблиц; манипуляции с содержимым корзины; управление приоритетами процессов на локальном или на сетевом ПК; автозавершение слов в редакторе и работа с шаблонами; редактирование реестра Windows; создание и изменение ярлыков Windows; всевозможные манипуляции с файлами и текстом, делающие комфортной работу с фидонетовскими материалами; кодирование и декодирование файлов в формате UUE; симметричное и асимметричное шифрование файлов; управление программой Winamp и модификация комментариев MP3-файлов; просмотр и редактирование содержимого ресурсов различных игр; работа с различными серверами через ODBC + работа с серверами Oracle через OCI; управление службой RRAS; запуск внешних программ (компиляторов, конвертеров и проч.) при редактировании текстов в редакторе FAR; отображение содержимого файлов справки Windows (.hlp и .chm); калькуляторы с разными возможностями; различные игры; функции проверки орфографии при обработке текста в редакторе FAR; работа с файл-образами дисков для ZX Spectrum и ПК Вектор-06Ц; подготовка каталога сменных накопителей; вычисление и проверка CRC и криптографических хеш значений файлов (SHA-1; SHA-2; Whirlpool и других). Отображение скрытой файловой системы на сотовых телефонах SonyEricsson. Некоторые плагины (работа с FTP, печати, сравнения файлов, работы с архивами, сетью) входят в поставку FAR. Остальные плагины доступны для скачивания в интернете, пользователь может устанавливать их в соответствии со своими задачами. В настоящее время насчитывается более 700 плагинов для FAR. Большинство плагинов написано на Си/C++ и Паскале с использованием оригинального FAR API. Существуют и современные альтернативы: FarNet предоставляет API и инструменты для написания .NET-модулей; модуль PowerShellFar реализует поддержку Windows PowerShell и открывает объектную модель FarNet для управления из скриптов или командной строки; модуль LuaFAR предоставляет API для написания скриптов и плагинов на языке Lua.Создаем bat-файл для компиляции и линковкиПишем bat-файл, который по щелчку мыши или по нажатию на Enter создает исполняемые файлы под Windows, причем, если в той же папке будет rc-файл с тем же именем, тогда к нашему obj-файлу будет добавлен res-файл. Запускаем Far. Нажимаем F4+Shift Создаем текстовый файл «asm2.bat». Набираем в нем следующие строки: Код (Text): cls <-- очистить экран set masm64_path= <-- путь к папке, где находится masm64 set filename=%1 <-- имя asm-файла без расширения if exist errors.txt del errors.txt <-- если существует errors.txt файл -- удаляем его call :read_settings %filename% <-- вызов подпрограммы, которая определит дальнейшие действия с asm-файлом @echo %kind_of_file% <-- выводим сообщение о том как мы будем компилировать asm-файл goto %kind_of_file% :CONSOLE del %filename%.exe %masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm >> errors.txt if errorlevel 1 exit %masm64_path%bin\link /SUBSYSTEM:CONSOLE /LIBPATH:"%masm64_path%Lib" ^ /entry:WinMain %filename%.obj /LARGEADDRESSAWARE:NO ^ /ALIGN:16 /SECTION:.text,W /BASE:0x400000 /STUB:%masm64_path%\bin\stubby.exe >> errors.txt if errorlevel 1 exit del %filename%.obj goto exit1 :GUI if exist %filename%.exe del %filename%.exe if exist %filename%.obj del %filename%.obj if exist errors.txt del errors.txt %masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm >> errors.txt if errorlevel 1 exit if exist %filename%.rc ( %masm64_path%bin\RC /r /i"%masm64_path%\Include" %filename%.rc >> errors.txt %masm64_path%bin\link /LIBPATH:"%masm64_path%Lib" ^ /LARGEADDRESSAWARE:NO /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe ^ /SECTION:.text,W /ALIGN:16 /entry:WinMain /MERGE:.rdata=.text ^ /fixed /nocoffgrpinfo %filename%.obj %filename%.res >> errors.txt if exist %filename%.res del %filename%.res ) else ( %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:"%masm64_path%Lib" ^ /LARGEADDRESSAWARE:NO /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe ^ /SECTION:.text,W /ALIGN:16 /entry:WinMain /MERGE:.rdata=.text ^ /fixed /nocoffgrpinfo %filename%.obj >> errors.txt ) if errorlevel 1 exit goto exit1 :DLL if exist %filename%.dll del %filename%.dll %masm64_path%bin\ml64 /c /Cp /I %masm64_path%include %filename%.asm >> errors.txt if errorlevel 1 exit if exist %filename%.rc ( %masm64_path%bin\RC /r %filename%.rc >> errors.txt if errorlevel 1 exit %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib ^ /ENTRY:DllMain /DLL /DLL /section:.bss,S /stub:%masm64_path%bin\stubby.exe ^ %filename%.obj %filename%.res /DEF:%filename%.def >> errors.txt if exist %filename%.res del %filename%.res ) else ( %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib ^ /ENTRY:DllMain /DLL /DLL /section:.bss,S /stub:%masm64_path%bin\stubby.exe ^ %filename%.obj /DEF:%filename%.def >> errors.txt ) if errorlevel 1 exit del %filename%.exp :exit1 del %filename%.obj del errors.txt exit :read_settings for /f "eol=# tokens=2-3" %%A in (%filename%.asm) do ( set kind_of_file=%%A if %%B == # exit /b ) exit /b Нажимаем на F2 и сохраняем bat-файл. Жмем на F10 ― выходим из файла. Far Manager, так же как до этого Norton commander, можно «приучить» к определенным действиям с файлами, имеющими одинаковое расширение. Far Manager поддерживает ассоциации файлов, которые позволяют задавать разнообразные действия на запуск, редактирование и просмотр файлов, заданных маской (в данном случае маска «*.asm»). Можно добавлять новые ассоциации с помощью команды «Ассоциация файлов» в «Меню команд». Можно задать несколько ассоциаций для одного типа файлов и выбрать желаемую ассоциацию из меню. В списке ассоциаций доступны следующие действия: Ins ― добавить новую ассоциацию; F4 ― изменить настройки текущей ассоциации; Del ― удалить текущую ассоциацию. При запуске компиляции и линковки asm-файла из командной строки, мы бы набрали на клавиатуре примерно следующее: > asm2.bat msgbox.asmbat-файл должен проанализировать командную строку, взять первый аргумент после своего имени, выделить из него название файла без расширения «.asm» и подставить это имя в переменную filename. Первый аргумент после имени программы обозначают как %1. Осталось научиться, как из полного имени файла выделять название файла без расширения. В ассоциированных командах используются специальные метасимволы, среди которых «!» означающий длинное имя без расширения. Жмем на F9 → «Команды» → «Ассоциации файлов» → Enter Жмем на Insert «Одна или несколько масок файлов:» → Набираем «*.asm» → «Команда, выполняемая по Enter» → Набираем полный путь к asm2.bat и «asm2.bat !», жмем на «ОК». Теперь достаточно по любому asm-файлу щелкнуть мышью или навести курсор и нажать на Enter, как будет запущен процесс компиляции и линковки. Наш bat-файл разделен на несколько частей, в одной части bat-файла есть строки, которые собирают EXE-файлы для Windows (причем, когда нам нужен GUI подставляется параметр /SUBSYSTEM:WINDOWS а когда нужна консоль ― параметр /SUBSYSTEM:CONSOLE), в другой ― DLL-файлы, в третьей ― SYS-файлы и т.д., а часть строк asm2.bat будет общей ― удаление «мусора» в виде obj-файлов, res-файлов и т.п. Первая строка нашего asm-файла подскажет bat-файлу какой тип файла должен получиться в результате компиляции и линковки. Если первую строку в asm-файле закомментировать, то она будет игнорироваться компилятором, но будет восприниматься командным процессором, который, в свою очередь, игнорирует символ «точка с запятой». Вернемся к содержимому asm2.bat и посмотрим в завершающие строки, где описана процедура read_settings Код (Text): :read_settings for /f "eol=# tokens=2-3" %%A in (%filename%.asm) do ( set kind_of_file=%%A if %%B == # exit /b ) exit /b Процедура read_settings читает первую строку asm-файла и работает с первыми тремя лексемами, разделенными пробелами или табуляцией и сопоставляет их с переменными начиная с %%A. Первое поле ― знак «;» экранирует всю строку от компилятора, значение из второго поля помещаем в переменную kind_of_file, если третье поле равно «#» ― выходим из процедуры. Далее по значению в переменной kind_of_file обрабатываем asm-файл. Возможны следующие значения kind_of_fileописаниеCONSOLEПриложение в символьном режиме (CUI). Операционная система предоставляет консоль для приложений. Взаимодействие между пользователем и Windows через отправку команд, представляющих собой последовательность символов.GUIПриложение в графическом режиме (GUI). Консоль не требуется, потому что приложение создает собственные окна для взаимодействия с пользователем. Взаимодействие пользователя с Windows с использованием графических элементов, таких как окна, кнопки и менюDLLБудет выполнена сборка динамически подключаемой библиотеки DLLNATIVEСоздание драйвера режима ядра. Этот параметр зарезервирован для системных компонентов Windows.
Общие действие с файламиF1 ― помощь F1+Shift ― архивироватьF2 ― меню пользователя F2+Shift ― распаковатьF3 по имени файла ― файл открывается для просмотра F3+Shift ― архивные командыF4 по имени файла ― файл открывается для редактирования F4+Shift ввести имя asm-/rc-файла ― будет создан новый файлF5 по имени файла ― файл копируется F6 по имени файла ― файл переносится F6+Alt ― меню создать ссылку на файлF7 ― создание каталога F7+Alt ― поиск файлаF8 по имени файла ― файл удаляется F8+Alt ― история командF9, щелчок левой клавишей мыши на верхней строке экрана ― активация конфигурационного меню F9+Alt ― видеорежимF10 ― выход из Far Manager F10+Shift ― выбрать последний использованный пункт менюF11 ― Меню команд плагинов F11+Alt ― история просмотраF12 ― Экраны F12+Alt ― история папок F12+Ctrl ― режимы сортировкиA+Ctrl ― атрибуты файлов G+Ctrl ― применить команду I+Ctrl ― фильтр панели файлов L+Ctrl ― панель информации M+Ctrl ― восстановить пометку N+Ctrl ― показывать длинные имена O+Ctrl ― панели «Включить/Выключить» Q+Ctrl ― быстрый просмотр R+Ctrl ― перечитать U+Ctrl ― поменять панели W+Ctrl ― список задач Z+Ctrl ― описание файлов Enter по имени exe-файла ― запуск exe-файла на исполнениенаходимся внутри файлаF1 ― помощь F2 ― в режиме просмотра, переключить режим переноса текста «Развернуть/Свернуть» или изменить режим просмотра F2 ― в режиме редактирования, сохранение содержимого файла F2+Shift ― «сохранить файл как»F3, Numpad5 ― в режиме просмотра ― выход из файла F4 F4 ― в режиме редактирования ― выход из файла F4 ― в режиме просмотра ― переключение на Hex-режимF5 F6 ― переключение между режимами просмотра/редактирования F7 ― поиск F7+Ctrl ― замена F7+Shift ― продолжить поиск/замену F7+Alt ― продолжить поиск/замену в обратном направленииF8 ― переключить кодовую страницу между OEM и ANSI F8+Shift ― выбрать кодовую страницу из меню F8+Alt ― перейти на указанную строкуF9 F9+Alt ― максимизировать или восстановить размер окна Far Manager F9+Alt+Shift ― вызов диалога «Настройка программы просмотра»F10, Esc ― выход из файла F11 ― Плагины F12 ― Экраны Alt+Backspace, Z+Ctrl ― Отмена действия (Undo) Z+Ctrl+Shift ― Повтор действия (Redo) Y+Ctrl ― удалить строку Home+Ctrl ― в начало файла End+Ctrl ― в конец файла B+Ctrl+Shift ― спрятать/показать статусную строкуПодсветка синтаксиса Интеграция с компилятором и диагностика: Интегрированное управление проектом и системой сборки: Отладчик с точками останова, трассировкой стека и т.п: справочное руководство: