lf — терминальный файловый менеджер с открытым исходным кодом, написанный на языке Go. Проект представляет собой легковесную консольную программу, ориентированную на эффективность работы в текстовой среде и гибкую настройку управления клавишами. Интерфейс и концепции частично вдохновлены другими консольными менеджерами, такими как ranger, при этом реализация делает упор на минимализм, скорость и простоту расширения.
Программа реализует навигацию по файловой системе в виде панелей и списка каталогов, поддерживает предпросмотр содержимого файлов и имеет модульную архитектуру, допускающую интеграцию с внешними инструментами. Благодаря использованию Go, lf обеспечивает относительно быструю работу и сравнительно низкие требования к окружению. Развитие проекта включало добавление механизма пользовательских конфигураций, макросов и возможности работы в сервер-клиент режиме для взаимодействия из нескольких терминалов.
- Консольный интерфейс: навигация по файлами и каталогам в текстовом режиме с акцентом на клавиатурное управление.
- Настраиваемые клавиши: привязка действий к сочетаниям клавиш и создание пользовательских команд.
- Предпросмотр файлов: возможность отображать содержимое или метаданные файлов в отдельной панели или всплывающем окне.
- Сервер-клиент архитектура: режим работы, позволяющий запускать демон и подключаться к нему из нескольких клиентов для совместного или удалённого управления сессией.
- Расширяемость: интеграция с внешними утилитами и скриптами для выполнения пользовательских операций над файлами.
- Производительность и лёгкость: оптимизированная реализация на Go для быстрой работы и небольшого потребления ресурсов.
- Конфигурация и профили: поддержка файлов конфигурации для сохранения настроек интерфейса и поведения программы.
- Работа в потоках ввода-вывода: команды для пакетной обработки файлов и взаимодействия с оболочкой.
- Поддержка различных файловых систем: стандартные операции над файлами, включая копирование, перемещение, удаление и переименование.
- Сообщество и документация: наличие руководств и примеров конфигураций от пользователей; при ограниченности официальной документации возможны вариации в функциональности между версиями.