Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Computer Skills
  2. File Manager
Computers

fman: Расширяемый файловый менеджр для любой системы

by
Difficulty:IntermediateLength:LongLanguages:

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

Будучи разработчиком, я постоянно пользуюсь файловым менеджером. Мне часто хочется расширить файловый менеджер, для облегчения автоматизации моих задач. К сожалению, стандартные файловые менеджеры на большинстве систем, часто очень ограничены.

fman File Manager
Файловый менеджер fman

Файловый менеджер fman полностью меняет игру. fman это минималистичный двухпанельный файл-менеджер. Расширяемый по подобию Sublime Text, используя Python. По умолчанию он использует те же сочетания клавиш, что и Commander One и другие похожие файловые менеджеры. Вы можете использовать его на macOSWindows, и Linux.

По состоянию на февраль 2017, fman все ещë в закрытой бете и каждый может запросить доступ. Автор планирует начать продажи к 1-му марта 2017.

Мощь переходов

Одной из уникальных особенностей fman является мощь перехода. Когда вы нажимаете Command-Pfman запрашивает название каталога.

Power Go To
Мощь перехода

fman ищет совпадения. Если у вас много каталогов со словом fman — вы увидите пути на все каталоги, содержащие это слово. Это позволяет довольно просто найти нужный каталог.

Пользовательские параметры

Если вам не нравится стандартное сочетание клавиш, вы можете изменить из каталога User, в котором находятся плагины. На macOS каталог с плагинами находится ~/Library/Application Support/fman/Plugins/.

На Windows, каталог плагинов находится %APPDATA%\fman. В системе Linux, он находится ~/.config/fman.

Папка User в каталоге плагинов содержит файл Key Bindings.json. Этот JSON-файл содержит ваши настройки для «горячих клавиш». Формат файла такой:

В этом файле, вы определяете при нажатии каких клавиш, выполняется желаемая команда. Я использую этот файл, чтобы понять какие команды есть в этой программе.

The Command Prompt
Командная строка

Нажмите Shift-Command-P в fman для отображения командной строки, в которой выполняются команды. Командная строка отображает горячие клавиши назначенные на команду.

Чтобы использовать команду в командной строке, вместо подчеркивания набирайте пробел. Например, команда show_volumes запускается при наборе в командной строке show volumes.

Вы можете запустить команду любого расширения из командной строки. Эта функция удобна и очень помогает.

Добавление расширения

В fman можно добавлять расширения. На странице расширений на сайте fman’а, нажмите любое расширение. чтобы загрузить его. Затем полностью скопируйте папку расширения в каталог plugins.

fman With Status Bar Extender Plugin
fman с плагином Status Bar Extender

Загрузив расширение Status Bar Extender, статус бар будет содержать больше полезной информации о текущем каталоге для каждой панели.

Расширения меняют поведение fman.

Например, моё расширение OpenWithEditor переопределяет внутреннюю команду open_with_editor.

Внутренняя команда открывает файл в программе по умолчанию для этого типа файла. Моё дополнение переопределяет эту команду, чтобы файл открывался в редакторе, выбранном в моём BitBar плагине currentFiles.1h.rb, созданном в Руководство по BitBar на Tuts+.

Пишем дополнение

Чтобы создать дополнение, сначала создайте для него папку в каталоге плагинов.

В этом уроке, я хочу создать дополнение, которое позволит мне назначать каталог в качестве каталога проекта и запускать скрипт, как только я захожу в этот каталог, когда другой проект установлен как текущий.

Таким образом, когда я покидаю каталог одного проекта, с которым я работал и перехожу в другой каталог, оно будет запускать скрипт для настройки окружения среды. Я буду создавать это дополнение на macOS, но точно такое же дополнение будет работать и в Windows и на Linux с небольшими изменениями.

Для начала создайте папку ProjectManager в каталоге плагинов. Затем создайте другую папку в этой папке, с названием projectmanager. Название этого каталога должно быть в нижнем регистре и без пробелов.

В этой папке создайте файл __init__.py. В этой папке могут быть и другие файлы, содержащие код на языке python. Когда дополнение загружается, первым делом исполняется этот файл. Поэтому он должен загружать другие файлы, при необходимости.

Добавьте в этот файл следующее:

Этот кот подгружает библиотеки, используемые в этом дополнении. Я вытаскиваю некоторые функции из библиотеки fman. Вот они:

Библиотека или функция
Описание
DirectoryPaneCommand
Это объект для подкласса для создания команды на уровне каталога.
DirectoryPaneListener Это объект для подкласса для создания функции, которая будет прослушивать изменения на панели каталога.
show_alert
Эта функция покажет предупреждающий диалог с заданным сообщением.
load_json
Это загружает данные json-файла из каталога User.
DATA_DIRECTORY
Это каталог для хранения данных fman.
show_prompt
Это получает от пользователя входящие данные с заданным сообщением.

Вы можете найти все доступные функции на странице документации fman. На данный момент, это список названия функций и их вводные данные по умолчанию.

После загрузки библиотек, настраиваем две глобальные переменные: PROJECTDIR и PROJESTSLIST.

Эти глобальные переменные помогают быстро запустить функцию проверки каталога. Это важно при написании подпрограммы, которая выполняется каждый раз при изменении каталога в fman.

Класс SetProjectDirectory это подкласс DirectoryPaneCommand. Метод __call__ вызывается каждый раз, когда запускается set_project_directory.

Эта функция получает путь текущего каталога, и назначает его в качестве текущего проекта, запрашивает у пользователя название проекта, сохраняет его в файл списка проектов, создаёт файл .startproject, и открывает его в редакторе по выбору от расширения OpenWithEditor или TextEdit.

Следующая команда это ClearProjectDirectory. Эта команда очищает файл ~/.currentproject.

Команда EditProjectStartScript позволяет вам редактировать скрипт .startproject для текущего проекта.

Вам не обязательно находится в главном каталоге проекта, чтобы запустить эту команду, но проект должен быть настроен правильно.

Команда EnteringProjectDirectory это главная команда этого дополнения. Все другие команды заставляют эту команду работать.

Так как это подкласс DirectoryPaneListener, он запускается каждый раз приизменении каталогов. По этой причине, эта процедура должны быть настолько короткой и быстрой, насколько возможно. В противном случае, fman будет очень громоздок в использовании.

Эта команда проверяет зашли ли вы в каталог проекта. Если так, она проверяет отличается ли это от проекта, установленного текущим. И если это так, тогда он настраивает каталог нового проекта и запускает скрипт проекта .startproject.

Чтобы это протестировать, я добавил этот код в файл .startproject:

Оно использует программу Pashua для отображения календаря и часов. Это делает быструю визуальную проверку, чтобы проверить работает ли эта программа.

Следующий пункт — назначение «горячей клавиши» этому дополнению. В корневой каталог этого дополнения добавьте файл Key Bindings.json:

Каждому дополнению можно назначить «горячие клавиши». Он загружается перед загрузкой такого же файла из дополнения Users.

Таким образом, пользователь может переопределить что угодно, настроенное в дополнении. Я назначаю Shift-S на команду set_project_directory. Назначаю Shift-C на команду clear_project_directory. И Shift-E на команду edit_project_start_script.

Если вы установили каталог ProjectManager в качестве каталога проекта, даем ему название Project Manager, при выходе из этого каталога, очищаем проекты с Shift-C или запустив clear_project_directory в командной строке, а затем снова заходим в каталог.

Executing the Test Script for Project Manager
Выполнение тестового скрипта для Project Manager

Вы увидите окошко Pashua, показывающее дату и время. Теперь вы можете создать начальный скрипт, который запустит текстовый редактор для файлов проекта и расположит окна на экране для удобства работы.

Я использую HammerSpoon для создания макетов окон из скрипта. Вы также можете запустить «смотрителя» за каталогом, для пересборки вашего проекта и загрузку его в веб-браузер.

Возможности безграничны.

Вывод

Теперь, когда вы знаете как создавать дополнения для fman, вы можете создать своё собственное.

Существует много способов, которыми вы можете расширить функциональность этого простого дополнения. Использовать fman очень забавно, а также его очень легко дополнить, чтобы получить желаемую функциональность.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.