Ranger - консольный файловый менеджер на замену GUI. Установка и настройка
Ranger - консольный файловый менеджер, написанный на Python. Он отлично подойдет для тех, кто любит минимализм и использование хоткеев для продуктивной работы. Его можно настроить через конфигурационный файл, дополнить модулями и собственными командами.
Установка:
Запуск и начало использования:
Как видно на скриншоте, помимо навигации по файлам и директориям, мы можем просматривать еще и их содержимое, даже не открывая. Однако, такое возможно только с текстовыми файлами, но это легко исправить установкой модуля (рассмотрим чуть позже).
Для начала расскажу про интерфейс. По умолчанию, главное окно состоит из трех панелей (они называются Miller Columns). Левая панель отображает родительский каталог, средняя отображает содержимое текущего каталога и правая отвечает за предварительный просмотр содержимого каталога и файлов. На скриншоте выше это наглядно показано.
Управление происходит с помощью хоткеев и VIM-подобного интерфейса. Например, ranger использует h, j, k и l для навигации. Точно также можно копировать файлы (yy) и вставлять их (pp), но более подробно про управление мы поговорим чуть позже.
Для базовой навигации можно использовать стрелки (или h, j, k и l) и Enter (или l). С помощью ? можно открыть руководство, список хоткеев, команды или настройки. Команда :q или клавиша q отвечают за выход.
Обратите внимание, что в ranger по умолчанию присутствует поддержка только английской раскладки. Да, есть специальный плагин, который вроде как должен помочь с поддержкой и других раскладок, но работает он криво, поэтому не советую.
Настройка:
Для начала копируем конфиг:ranger --copy-config=all
Скопированные файлы будут находиться по пути ~/.config/ranger
Предварительный просмотр изображений
Итак, как я уже отметил ранее, по умолчанию мы можем предварительно просматривать содержимое только текстовых файлов, но нас такой вариант конечно же не устраивает, поэтому будем менять ситуацию. Допустим, я хочу чтобы у меня был предварительный просмотр изображений. Для этого я редактирую файл rc.conf:vim ~/.config/ranger/rc.conf
set preview_images true set preview_images_method kitty
Обратите внимание, что я использую метод kitty, т.к. пользуюсь терминалом kitty. Если у вас другой терминал, то используйте другой метод, который подходит вам. Список доступных методов можно посмотреть в конфиге:
Или, например в официальном руководстве:
Official User Guide · ranger/ranger Wiki · GitHub
Вообще, советую не забывать читать официальные руководства, документации и прочее. Например, можно еще поискать информацию на Arch Wiki:
ranger - ArchWiki
Окей, мы добавили предварительный просмотр изображений. Вот как это выглядит:
Визуальное оформление
Теперь давайте-ка изменим визуальное оформление. Например, сменим цветовую тему и добавим отображение иконок.
Ranger поставляется с 4 цветовыми темами:
Однако, нам необязательно пользоваться встроенными темами, ведь мы можем создать свою собственную. Например, мне очень нравится Dracula:
ranger • Dracula Themegit clone https://github.com/dracula/ranger.gitmkdir ~/.config/ranger/colorschemescd rangercp dracula.py ~/.config/ranger/colorschemes/dracula.pyvim rc.conf
set colorscheme dracula
Слева Dracula, справа Dafault. Сначала может показаться, что темы ничем не отличаются, но это только потому что у меня kitty сконфигурирован тоже в цветах Dracula. На самом деле изменения есть, например посмотрите на цвета в средней колонке.
Теперь установим плагин с иконками:git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
Чтобы плагин заработал, нам нужно прописать его в rc.conf:
default_linemode devicons
Еще можно установить переменную окружения, чтобы между иконками и текстом был разделитель. Например:
RANGER_DEVICONS_SEPARATOR=" | "
Но я предпочитаю не менять разделитель, т.к. меня устраивает дефолтный.
Есть еще второй вариант (мне он нравится больше).
Улучшенный поиск с помощью fzf
Теперь попробуем улучшить поиск файлов. Давайте представим такую ситуацию, мы хотим найти какой-то определенный файл, но не помним его полное название. Мы помним лишь часть его названия. Как найти такой файл в ranger? Очень просто! Мы будем использовать утилиту fzf и добавим для нее отдельную команду:sudo pacman -S fzfvim ~/.config/ranger/commands.py
ranger-fzf/__init__.py at master · cjbassi/ranger-fzf · GitHub - копируем код отсюда и вставляем в файл, но строчки с импортом модулей удаляем. Оставляем только import subproccess и кидаем его в начало файла. Ну и в класс пишем просто Command:
Можно ли обойтись без этих изменений и тупо скопировать код? Да, можно. Но с точки зрения программирования это неправильно и очень грязно, поэтому будем стараться делать все по красоте. В итоге получилось вот так:
Теперь мы можем использовать команду :fzf для поиска файлов:
Работа с архивами
Добавим еще один плагин, который позволит нам взаимодействовать с архивами:cd ~/.config/ranger/pluginsgit clone https://github.com/maximtrp/ranger-archives.git
Примеры использования::extract - разархивировать
:extract test - разархивировать в директорию test
:compress image.zip - архивация файла в архив image.zip
Больше примеров на странице GitHub:
Чтобы не вводить каждый раз "extract" и "compress", можно сделать свои хоткеи в файле rc.conf:
map ex extract map ec compress
Например, теперь чтобы распаковать архив, достаточно нажать e, а после c:
Больше плагинов:
GitHub - cibinmathew/ranger-awesome: Awesome list of ranger tools
Продвинутое управление:
Думаю, стоит рассмотреть более продвинутое управление, чтобы начинать потихоньку привыкать к нему. Откройте список клавиш для управления с помощью ? и k или F1:
Здесь можно посмотреть список клавиш или комбинаций клавиш для управления ranger.
Выделим самые основные и часто используемые:
Теперь предлагаю добавить комбинацию DD, чтобы решить проблему с отправкой файлов в корзину. Редактируем rc.conf:
map DD shell mv %s ~/.local/share/Trash/files
Для того, чтобы переместить файл в корзину, мы теперь можем использовать комбинацию DD, вместо dT.
Заключение:
Сегодня мы рассмотрели продвинутый файловый менеджер, который ускоряет и значительно упрощает работу. Да, возможно первое время к нему нужно будет привыкать, т.к. тут совсем другой подход, отличающийся от GUI, но зато потом вы сможете сэкономить себе кучу времени и значительно быстрее работать. В первую очередь это повышает вашу продуктивность.
Не забывайте о том, что вы можете легко кастомизировать комбинации клавиш для управления, добавлять различные модули и всячески улучшать файловый менеджер благодаря открытому исходному коду. Не многие файловые менеджеры с GUI могут этим похвастаться, а даже если и могут, то они все равно как правило подразумевают использоваться мыши для навигации и взаимодействия с файлами.