/ Soft-обзор / / Vifm /

Vifm

Дата публикации: Aug. 19, 2010
Теги: vi, console,
Автор:

Название: Vifm
Логотип: vifm
Скриншот: vifm
Vifm - 0.5
Тип: Файловый менеджер
Тип интерфейса: Ncurses
Версия: 0.5
от: Aug. 7, 2009
Лицензия: GPL
Размер архива: 272kb
Сайт: http://vifm.sourceforge.net/

Vifm - vi-like консольный файловый менеджер для Linux

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

Vifm - довольно молодой но юзабельный файловый менеджер. Основные черты vifm - управление файловым менеджером в стиле текстового редактора Vi с помощью клавиатуры. Как и MC, он основан на ncurses. Как только я его увидел, то сразу решил, что следую/щие несколько часов проведу, ковыряя конфиги. Однако, конфигурационный файл оказался довольно простым, а привыкание к клавишам управления заняло буквально пару минут. Скажу сразу - в нем есть некоторые недостатки и недоделки, но и плюсов не мало. Русские символы, кстати, понимает "из коробки", если, конечно, сама система нормально локализована.

Что Vifm может и как им пользоваться
Навигация
j - вниз
k - вверх
l - перейти в директорию или запустить файл
h - перейти в предыдущую директорию

gg - перейти в верх списка файлов
G - перейти в низ списка файлов
14G - перейти вниз по списку файлов на 14-ю линию
Ctrl-F или Page Down - прокрутить список файлов на одну страницу вниз
Ctrl-B или Page Up - прокрутить список файлов на одну страницу вверх

Space или Tab - переключение между списками файлов

Ctrl+G - показать подробную информацию о файле



Метки

Vifm позволяет ставить метки на директориях и файлах. Поставив метку на один каталог, в будущем, вы сможете перейти в него с помощью горячей клавиши. Это очень удобно!

Чтобы установить метку на каталог, нажмите "m", затем нажмите любую букву (регистр имеет значение) или цифру. К примеру, 'm' - для каталога Music. Теперь, для перехода из любого места файловой системы в каталог Music, надо нажать 'm (одинарная кавычка + клавиша "m"). Не забывайте, что команды vifm понимает только в англ. раскладке клавиатуры. Посмотреть все созданные метки можно командой :marks. Удалить ненужную метку из списка - dd.



Поиск

Поиск в vifm, естественно, подобен поиску в Vim. Сам поиск вызывается клавишей "/", после чего вы вводите слово или регулярное выражение.

"n" - перейти к следующему результату поиска
"N" - перейти к предыдущему результату поиска

Между прочим, поиск чувствителен к регистру. Так и не нашел, как это отключить.


Работа с файлами

dd - удалить выделенный(ые) файл(ы)
yy - скопировать выделенный(ые) файл(ы)
p - вставить последний скопированный или удаленный (!) файл
t - выделить файл
v - перейти в визуальный режим для выделения группы файлов

К слову о удалении файлов. Если в конфигурационном файле стоит опция USE_TRASH=1, то vifm при удалении файлов по dd будет не удалять их а перемещать в свою корзину, которая по умолчанию находится по адресу ~/.vifm/Trash. Так что не удивляйтесь, когда DVD образы будут удаляться по несколько минут :) Впрочем, использование корзины можно отключить.




Встроенные команды vifm
Команды, как и в vim, вводятся через двоеточие.
:com - показать список пользовательских команд
:fil regexp pattern - скрыть файлы, соответствующие 
регулярному выражению.
:empty - очистить корзину vifm
:sh - запустить командный шелл. При этом vifm исчезнет
 из виду, вы увидите
приглашение командной строки. Чтобы попасть обратно 
в vifm, следует закрыть
шелл с помощью Ctrl-D.
:q или :x - выйти из vifm
:! команда - выполнить программу в командном шелле
:!! команда - то же, что и :!, но после выполнения команды вы увидите ее
вывод. Если вывод не показывается, один раз выполните :screen.
:!! - выполнить последнюю команду
:e - перейти в vi
:pwd - показать текущую рабочую директорию
:cd - сменить директорию.
:s - изменить тип сортировки файлов
:his - показать историю перемещения по файловой системе
:h - показать помощь
:marks - показать список меток (марок)
:only - скрыть вторую колонку
:split - показать вторую колонку


Подробнее о фильтре (:fil)

Если честно, не могу понять, зачем оно надо. С помошью :fil можно скрыть все файлы с расширением, к примеру, *.avi - :fil \.avi$ . Не забудьте вернуть все обратно командой :fil \ . Но вот как _показать_ только файлы определенного типа (что более полезно на мой взгляд) я так и не нашел. В документации об этом ни слова.

Некоторые хот-кеи для фильтра:
zo - показать файлы, начинающиеся на точку
zm - скрыть файлы, начинающиеся на точку
zf - скрыть все выделенные файлы



Создание пользовательских команд для vifm

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

%a - доп. аргументы для команды, введенные пользователем
%f - выделенные файлы или директории
%F - выделенные файлы или файлы в другой директории
%d - текущая директория
%D - текущая директория другого окна
%m - показать результат выполнения в отдельном окне
Команды записываются прямо в конфигурационный файл (~/.vimfm/vimfmrc). Вот, например, команда, которая покажет размер выделенной директории или файла:
COMMAND=du=du -hs %f%m
Использовать эту команду теперь можно как обычно - :du. Дальше разберетесь сами. Тут полное раздолье для творчества =)


Архивирование файлов в vifm

Все просто и даже удобно. И можно не создавать пользовательскую команду:

:!tar -cvzf test.tgz %f
А если хотите увидеть вывод команды, делайте так:
:!!tar -cvzf test.tgz %f
Если вывода все-равно не видно, один раз выполните :screen
Для 7z:
:!!7z a test.7z %f
Выделяете в визуальном режиме или клавишей "t" файлы, которые хотите заархивировать и вводите эту команду. Можно создать пользовательскую команду, если хотите это сократить:
COMMAND=ar=7z a %a %f%m
Теперь для архивации выделенных файлов/каталогов надо ввести лишь "ar имя-архива". Будте внимательны - если выделена "директория" ".." (в самом верху), то начнет архивироваться весь верхний каталог :)

Ну а распаковать 7z архив можно так:
:!!7z x %f
Думаю, логика понятна.


Открытие определенных файлов определенной программой

По умолчанию vifm открывает все файлы в vim =) Это легко исправить. Вы можете определить тип файлов и указать, какой программой их открывать. К примеру:

FILETYPE=Image=png,jpg,jpeg,gif,bmp,tiff=gqview &
FILETYPE=Video=avi,mpg,mpeg,mkv,wmv,mp4=mplayer %f &
Вот так просто. Эти строки добавляются в любое место конфигурационного файла. Не забывайте про символ "&" в конце, т.к. с ним выполнение программы уйдет в фон и вы сможете продолжить работу с vifm не закрывая, к примеру, просмотрщик изображений.




Цветовые схемы vifm

Конфигурационный файл цветовой схемы лежит по адресу ~/.vifm/colorschemes. Выкладывать цветовые схемы тут я не буду, т.к. вы можете легко найти несколько готовых цветовых схемд для vifm в Интернете.




Баги (фичи?)

Я не так долго работаю с vifm, но успел обнаружить для себя пару минусов.
1) Команда :fil не работает в обратном направлении, т.е. нельзя показать только определенную группу файлов. Если это не так, поправьте меня - буду очень благодарен!
2) Почему-то не получается перейти в директорию, содержащую в своем имени пробелы, с помощью команды :cd. Баг, по-моему, просто детский.

Ну а в целом, файловый менеджер вполне себе ничего :)





Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(11)

# sergtat Jan. 2, 2011, 2:26 p.m.
как _показать_ только файлы определенного типа (что более полезно на мой взгляд) я так и не нашел

Повесить map - выделить нужные файлы, реверс выделения, скрыть все выделенные файлы (zf).

# Roof June 8, 2011, 3:20 p.m.
В режиме поиска невозможно ввести кириллицей названия файлов. Латинские названия вводятся и ищцться отлично.

# xaizek June 12, 2011, 6:54 p.m.
2Brainsburn,2sergtat: на самом деле всё просто, есть команда инвертирования фильтра :invert
так что можно выполнить
:filter .*\.c$
:invert
и будут видны только c-файлы

2Roof: теперь возможно, в последних версиях была доработана поддержка юникода (правда как и раньше поддерживается только одна его форма - UTF-8)

# Brainsburn June 14, 2011, 7:52 p.m.
xaizek, отлично :)

# Roof Sept. 19, 2011, 6:14 p.m.
Поставил последнюю версию и теперь искать можно и названия на кириллице.
Надеюсь, что разработчики добавят функциональность для ftp.

# Roof Sept. 21, 2011, 2:43 p.m.
Насчёт ftp.
Подмонтировал каталог на ftp командой
curlftpfs ftp://<login>:<pass>@domen.ru/ /<path>
в vifm получил доступ к файлам.

# Roof Sept. 22, 2011, 10:10 p.m.
Замечено торможение при перемещении курсора по именам файлов, когда окно терминала развернуто на весь экран. В mc такого не заметил, нет торможения. Пробовал в htop перемещаться по именам процессов - не тормозит. Пробовал несколько разных терминалов - результат один. У кого-то еще есть такое?

# Roof Sept. 23, 2011, 9:34 p.m.
Мне все больше нравится vifm. Добавил пользовательские команды и уже не вылажу с него.
Еще одно мое наблюдение - тормозит навигация по файлам и ввод команд в подмонтированном через curlftpfs каталоге.

2xaizek - Вы и есть разработчик vifm?

# Brainsburn Sept. 24, 2011, 7:39 p.m.
Roof, меня vifm тоже радует, если б я полностью не отказался от файловых менеджеров, то сидел бы скорее всего в нем. При перемещении по списку файлов, в развернутом на весь экран окне, ничего не тормозит.

# Roof Sept. 25, 2011, 2:41 a.m.
2Brainsburn - спасибо за ответ. Я связался с разработчиком, он тоже не находит торможения в данном случае. Но указывает, что причина тут должна быть в лишней перерисовке экрана и в следующей версии, которая, как я понял сейчас разрабатывается, это оптимизировано.
Возможно, дело в настройках видео драйвера, установленного на моей машине. Попробую ещё на нескольких машинах установить и погляжу.

# Roof Sept. 30, 2011, 2:31 p.m.
Разработчик выложил новую версию vifm и мои проблемы исчезли.

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Eugene: Галка, внешний вид изменить совершенно не сложно.... >>>
Галка: А сильно сложно Убунту переделывать?... >>>
Brainsburn_: “Написание в 1-й” подразумевает “в первой”, а не в... >>>
ZZZ: “Написание в 1-й” подразумевает &ldquo... >>>
SBOdin: Спасибо за полезное руководство... >>>