Файловые менеджеры в терминале делятся на два лагеря по клавиатурной традиции. Один вырос на функциональных клавишах и менюшках, другой унаследовал грамматику редактора семейства vim: режимы, двоеточие перед командой, буквы как действия. Для тех, кто проводит дни в текстовом редакторе с той же грамматикой, второй лагерь экономит часы на переучивании рук. Статья разбирает навигацию трёх колонок, встроенные команды, предпросмотр, настройку через файлы конфигурации, правила открытия файлов и интеграцию со сторонними скриптами, которая и превращает менеджер в личный инструмент.
Три колонки и навигация в духе редактора семейства vim
Экран менеджера делится на три колонки: слева родительский каталог, в центре текущий, справа предпросмотр выбранного файла или содержимое каталога. Курсор живёт в центре, навигация держится на четырёх буквах левого края домашнего ряда: вниз, вверх, вглубь каталога и на уровень вверх. Навигация одним пальцем, без стрелок и без мыши, и руки не покидают привычную зону клавиатуры.
Слева виден контекст: где мы находимся относительно родителя, какие соседи у текущего каталога. Справа виден результат: что внутри выбранного. Трёхколонная схема отвечает на три вопроса одновременно, и после недели привычки возвращение к одноколоночным спискам ощущается как работа с завязанными глазами.
Двоеточие открывает строку команд, знакомую по редактору: команды набираются словами, с автодополнением по табуляции и историей. Создание каталога, файла, переход по пути, поиск, фильтрация, всё живёт в командной строке менеджера, и мышечная память из редактора переносится без переучивания.
Цветовая дифференциация файлов по типам работает как быстрая карта: каталоги, ссылки, исполняемые и сжатые файлы различаются до чтения имён, и глаз выхватывает нужное из длинного списка без вчитывания. Вечер настройки цветов под свои приоритеты превращает колонки в приборную панель.
Закладки и метки дополняют навигацию: клавиша установки закладки и клавиша перехода сохраняют любимые пути, а произвольные метки на файлах позволяют вернуться к важному в большом дереве. Дисциплина закладок личная, но у большинства пользователей менеджера она складывается сама: пять путей, в которые ходишь постоянно, получают свои буквы в первую неделю.
Встроенные команды от копирования до пакетного переименования
Основные действия набраны в грамматике редактора. Копирование файла в буфер, вырезание, вставка: буквы знакомы всякому, кто переносил текст между строками редактора. Отмечание нескольких файлов строится на визуальном режиме, тоже позаимствованном: выделил блок, отметил, действуй. Отмеченные файлы образуют набор для копирования и перемещения, и работа с группами не требует ни меню, ни мыши.
Переименование живёт отдельной командой для одного файла и жемчужиной для групп. Пакетное переименование открывает список имён в текстовом редакторе: правь как текст, сохраняй, имена применяются. Массовая замена части имени, нумерация, склейка суффиксов делаются привычными средствами редактора, без изучения синтаксиса отдельной утилиты переименования. Для фотографий, выгрузок и архивов с кривыми именами это самая быстрая дорога к порядку.
Удаление вежливо по умолчанию: команда перемещает в системный буфер обмена каталога, если он существует, и переспрашивает при настоящем удалении. Права меняются командой с диалогом флажков, а для любителей цифр живёт и короткая форма. Смена владельца и другие административные действия выполняются внешними командами, о них ниже, в интеграции.
Командная строка закрывает остальное: переходы, поиск по имени вглубь дерева, фильтрация текущего каталога по шаблону, сортировки и режимы отображения. Фильтрация заслуживает отдельной похвалы: набор символов сужает содержимое колонки на лету, и поиск файла в шумном каталоге занимает секунды без открытия диалогов.
Предпросмотр содержимого прямо в третьей колонке
Третья колонка это не оформление, а рабочий инструмент. Текстовый файл показывает содержимое, каталог показывает входящие файлы, архив показывает структуру без распаковки. Курсор по списку в центре, содержимое меняется справа, и просмотр десятка файлов превращается в один плавный проход вниз, а не в десять открытий и закрытий.
Предпросмотр настраивается по типам: утилиты для изображений показывают картинки в терминале при поддержке терминального окружения, утилиты архивов показывают содержимое упакованного, у документов со сложным форматом извлекается текстовая часть. Строки предпросмотра окрашиваются по типам файлов, и длинные списки читаются по цвету быстрее, чем по расширениям.
Управление глубиной предпросмотра настраивается: тяжёлые каталоги и огромные файлы не тормозят навигацию, лимиты на размер и тип отключают дорогие предпросмотры выборочно. Отдельная клавиша скрывает колонку целиком для узких терминалов, и вектор поведения всегда за пользователем.
Предпросмотр выглядит мелочью ровно до первого большого разбора: час работы с деревом файлов, где содержимое видно сразу, ощущается как полчаса. Разница набирается на экономии открытий, и колонка окупает всю высоту экрана, которое занимает.
Отдельный сценарий предпросмотра это контроль выгрузок: каталог с дюжиной свежих файлов просматривается одним проходом вниз, содержимое каждого мелькает в третьей колонке, и решение о судьбе файла принимается за секунды. После такого прохода ни один файл не остаётся неописанным, и разбор выгрузки перестаёт быть вечным отложенным делом.
Настройка через файлы конфигурации и собственные команды на python
Настройки живут в каталоге пользователя, и структура конфигурации говорит о зрелости инструмента. Файл параметров хранит поведение: скрытые файлы, размер колонок, глубину предпросмотра, цвета. Файл клавиш хранит привязки: каждая клавиша может быть перепривязана к любой команде с аргументами, и клавиатура собирается под руку конкретного человека.
map x shell chmod +x %f
map V shell vim %f
map dc shell -w df -h %d
Третий файл это правила открытия, о нём отдельный раздел. Четвёртый, самый мощный, файл собственных команд на языке python: пользователь пишет класс команды, и она становится доступной в командной строке менеджера наравне со встроенными. Обёртка для сборки проекта, синхронизация текущего каталога на приёмник, отчёт по размерам, любые повторяющиеся ритуалы превращаются в одну короткую команду с доступом к состоянию менеджера.
Собственные команды это и есть та интеграция, ради которой менеджер выбирают любители скриптов: доступ к отметкам, к текущему пути, к выделению, к списку файлов, всё открыто через программный интерфейс. Команда получает контекст, выполняет внешние утилиты, обновляет панель, и граница между менеджером и собственным инструментарием исчезает.
Культура конфигурации переносимая: каталог настроек копируется между машинами, живёт в хранилище файлов пользователя и наследуется вместе с привычками. Вечер настройки однажды окупается годами скорости, и у большинства давних пользователей файлы конфигурации менеджера входят в личный набор первой установки.
Rifle и правила открытия файлов внешними инструментами
Файл правил открытия, rifle, это таблица соответствий между типами файлов и действиями. Правило описывает условие: расширение, содержание, назначение файла, и команду, которая обрабатывает совпадение. При открытии файла менеджер проходит правила сверху вниз и выполняет первое подходящее, с диалогом выбора при нескольких кандидатах.
Каждый тип файла получает своего обработчика: текст в редакторе, изображение в просмотрщике, архив в списке содержимого, звук и видео в проигрывателе. Правила настраиваются: свой редактор для журналов, свой просмотрщик для конфигов, свои действия для скриптов, и поведение открытия перестаёт быть лотереей умолчаний системы.
Приоритет действий выбирается клавишей выбора: одна клавиша открывает файл с лучшим кандидатом, другая показывает весь список кандидатов с выбором. Выбор запоминается на сессию, и потоковая работа с однотипными файлами не прерывается диалогами.
Правила открытия дают ещё один уровень интеграции: в командах правил доступны те же подстановки, что и в пользовательских командах, и открытие файла может означать любой сценарий, от простой правки до запуска конвейера обработки. Таблица правил читается как документация о том, как именно машина работает с типами файлов, и правится без страха: это текст, а не двоичный разум.
Диагностика правил проще, чем кажется: при сомнении в том, какое правило сработает, открытие с показом кандидатов выводит весь список совпавших правил с их номерами. Выбор в диалоге не меняет таблицу, и повторяемость поведения проверяется глазами за один показ.
Интеграция со скриптами через подстановки имён и каталогов
Мост между менеджером и командной строкой строится на подстановках. В пользовательских командах, в правилах открытия и в разовых запусках внешних утилит доступны подстановки: текущий файл, текущий каталог, отметка, множество отмеченных файлов. Команда внешней утилиты пишется с подстановками, и менеджер разворачивает их в конкретные пути перед запуском:
shell -w rsync -av %d/ backup-server:/srv/backup/
Разовая внешняя команда запускается восклицательным знаком, с теми же подстановками, и результат показывается на экране до нажатия клавиши возврата. Постоянные внешние действия живут в привязках и правилах, разовые вводятся руками по мере надобности, и обе дороги приводят к одному: командная строка системы и файловая навигация работают как одно целое.
Пробел в текущем каталоге открывает полноценную оболочку: работай командами, возвращайся тем же приглашением, контекст не потерян. Для администратора это снимает вечный вопрос "менеджер или командная строка": и то и другое одновременно, с мгновенным переходом и без потери состояния.
Отдельный класс интеграции это менеджер как запускатель скриптов: каталог с личными утилитами открывается навигацией, скрипт запускается по отметке, аргументы берутся из подстановок текущего файла. Дисциплина личного набора скриптов укореняется именно здесь, потому что запуск становится быстрее, чем вспоминание имени скрипта.
Рабочие сценарии ranger в ежедневных делах администратора
Сценарии, где менеджер с грамматикой редактора показывает лучшие времена, выглядят так:
- Разбор деревьев файлов с предпросмотром и массовым переименованием;
- Выравнивание прав и обработка групп файлов через отметки и внешние команды;
- Просмотр архивов и выгрузок без распаковки;
- Запуск личных скриптов по текущему файлу через подстановки;
- Правка конфигов с переходом в редактор по одной клавише;
- Ведение закладок путей для повторяющихся обходов сервера.
За списком стоит философия инструмента: клавиатура как язык, конфигурация как личный словарь, интеграция как право гражданства для любых внешних утилит. Менеджер не ограничивает мир списком встроенных возможностей, он предоставляет грамматику, в которую встраивается всё остальное.
Итоговое суждение адресное. Инструмент создан для тех, чьи руки уже говорят на языке редактора, и новички этого языка получат двойную выгоду: и менеджер, и причину выучить буквы-команды. Администратору со скриптами и привычкой к настройке он даёт то, чего не даёт ни один готовый менеджер: свой собственный, собранный из его же инструментов, с предпросмотром в подарок.
Мелкая привычка с большим эффектом: личные команды получают короткие имена из трёх букв, и список их держится в комментарии файла команд. Через месяц собственный словарь команд превращается в язык, понятный без документации, и работа с файлами ускоряется до скорости мысли.