LINUX.ORG.RU

vifm обновился до версии 0.7.4

 , , , ,


2

3

vifm является двухпанельным консольным файловым менеджером с Vi-подобным модальным управлением, который нацелен на Unix-way, высокую скорость работы, а также максимальную схожесть с Vim.

0.7.4 — это минорный релиз, которых улучшает существующие возможности, а также добавляет несколько новых. Улучшения коснулись в основном двух направлений. Во-первых, интерфейса, который теперь поддерживает отображение произвольного количества колонок, ls-подобное (как `ls -x`, а не `ls -l`) отображение списка файлов, а также настраиваемые суффиксы и префиксы для файлов в зависимости от их типов (каталог, ссылка и т. д.). Во-вторых, изменения коснулись интерпретатора команд: была добавлена поддержка встроенных функций, операторов сравнения и выражений ветвления (if-else-endif). Дополнительно, был уменьшен объем потребляемой памяти, а обработка списка файловых ассоциаций теперь более «интеллектуальная» (будут совершаться попытки открыть файлы, пока одна из программ не будет найдена в системе или не закончится их список).

Менее значимые изменения:

  • более адекватные ./configure (лучшие проверки) и make-файлы (лучшая обработка целей очистки и тестирования);
  • замена gl на gr в нормальном режиме под Windows (связано с опцией 'lsview');
  • поддержка путей в двойных кавычках в :file[x]type на Windows;
  • добавлены сочетания Ctrl-W H/J/K/L нормального режима (значения, аналогичные им же в Vim);
  • добавлены сочетания gh, gj, gk и gl в нормальном и визуальном режимах (связано с опцией 'lsview');
  • добавлены сочетания 0, ^ и $ в нормальном и визуальном режимах, которые также работают в качестве селекторов (a.k.a. text-objects в Vim);
  • Control-T и Alt-. сочетания для командной строки (работает как в оболочках);
  • добавлены команды :echo, :normal;
  • добавлены команды для определения сочетаний в режимах предпросмотра и меню;
  • изменён базовый путь для относительных путей в командах :split и :vsplit на директорию текущего окна;
  • теперь выполняется подстановка макросов в аргументах пользовательских команд;
  • добавлены опции 'viewcolumns' (локальная, задаёт набор колонок), 'lsview' (локальная, выбирает способ отображения файлов), 'dotdirs' (управляет отображением каталога ../), 'classify' (задаёт префиксы и суфиксы для имён файлов);
  • опция 'statusline' приобрела макрос %E (суммарный размер выделеных файлов);
  • в опцию 'cpoptions' добавлен флаг «t» (определяет поведение табуляции);
  • автодополнение командной строки для :set option=<tab> для строковых и числовых опций;
  • более Vim-подобное дополнение опций :set;
  • значительно меньше миганий при выполнении команды :restart;
  • подправлены уведомления (больше не включают Ctrl-C, когда это не имеет смысла);
  • уменьшена задержка обновления экрана при изменении размера терминала;
  • яркие цвета фона теперь доступны в нативной консоли GNU/Linux;
  • добавлены имена ярких цветов для настройки цветовых схем;
  • мелкие улучшения в обработке ввода комбинаций вроде 2d2j, 4^W2<, и подобных;
  • добавлена первая встроенная функция filetype(), возвращающая тип файла под курсором;
  • теперь подмонтированное через FUSE не будет отмонтировано, если каталог (или его подкаталог) всё ещё открыт во втором окне.

Скриншоты

Ссылки для скачивания

>>> Подробности

★★★★★

Проверено: tazhate ()
Последнее исправление: tazhate (всего исправлений: 3)
Ответ на: комментарий от backbone

я тоже не знал, пока не залез в «подробности». Надо будет посмотреть

das_tier ★★★★★
()
Ответ на: комментарий от das_tier

но удобней прям из новости на них перейти

Fixed.

xaizek ★★★★★
() автор топика

У меня так и не прижился, хотя основной vim у меня основной инструмент.
Вот чего хотелось бы, так vi-подобное управление в mc, типа как pentadactyl/vimperator для firefox.

andreyu ★★★★★
()

Ухты, я вот тоже не знал о такой штуке! Спасибо!
Это типа ranger, только двух-панельный?

kovrik ★★★★★
()
Ответ на: комментарий от kovrik

Да вроде ranger, но vifm более стандартный в плане интерфейса. При желании можно использовать и в одно-панельном режиме (таких скриншотов правда нету на сайте).

xaizek ★★★★★
() автор топика
Ответ на: комментарий от kovrik

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

xaizek ★★★★★
() автор топика
Ответ на: комментарий от kovrik

О, так вы являетесь разработчиком!

Ага :)

А deb пакеты будут?

Должны появится на днях. Обновятся впервые за последние 4 года, наконец-то новый маэнтейнер. Он ждал этого релиза для сборки пакета, что не должно занять много времени.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от xaizek

Отлично! А то по ссылке на сайте пакеты только для версии 0.4 :(
Если какие-то баги или комментарии по работе будут - напишу!

kovrik ★★★★★
()
Ответ на: комментарий от Pinkbyte

Спасибо, эта версия как раз исправляет пару мелкий вещей, которые я вычитал на баг-трэкере gentoo. Правда странно, что их не отметили на оф. сайте, так можно долго ждать пока баги в программах исправяться.

xaizek ★★★★★
() автор топика

я просто обязан это заюзать

amazpyel ★★★
()
Ответ на: комментарий от imul

:) бикать не умеет. Портить файловую систему может, если случайно нажать CapsLock и то, только после отключения предупреждения перед безвозвратным удалением файла. Многие остальные операции можно откатить или выполнить заново (undo/redo).

xaizek ★★★★★
() автор топика

Зачем?

Я вот давно уже соскочил с двухпанельников (переход на Linux в котором есть нормальный шелл).

Сейчас приходится работать с виндой, вот тут да, без commanderов не обойтись

NixU
()

подсказок по минимальному минимуму необходимых команд(как в mc и nano) на интерфейсе нет - ни нужно.

anonymous
()
Ответ на: комментарий от anonymous

Угу, тоже интересует ответ на этот вопрос.

Через gvfs всяко умеет, только вот не сбивает ли он права на файлы при этом (vim сбивает :) )?

kovrik ★★★★★
()

Ссылки на скачивание vifm 0.4, и 0.7.4 в дебиане будет лет через 5 :) Где-нибудь есть готовый пакет 0.7.4?

bohm ★★★★★
()
Ответ на: комментарий от NixU

Зачем?

Далеко не все операции можно нормально выполнять в шеле. Вот для них всё ещё есть файловые менеджеры.

Ну и для кросплатформенности, везде одно и тоже использовать.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Только с помощью соответствующих FUSE файловых систем, но автоматичести. Внедрять VFS в файловый менеджер это как-то неправильно, для этого есть vfs в ядре ОС.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Если Вам nano по дуже, то vifm врятли понравится. А засорять интерфейс справочной информацией - вот это настоящее «не нужно», так как для этого есть документация, а место в интерфейсе всегда ограничено.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от kovrik

С чем-то подобным работает только через FUSE, но с их автоматическим монтированием/отмонтированием. В файловом менеджере для VFS не лучшее место, если ОС и так это умеет.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от bohm

Вскоре должно появится в дебиане, над пакетом уже работают.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Можно, с ним идёт плагин для vim, который позволяет использовать vifm для выбора файлов, которые надо открыть.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

И что тут необычного то? Если следовать вашей логике, то и vim не Unix-way. Unix-way предполагает комбинирование утилит, которые делают что-то одно. По сути vifm оперирует только путями и их упорядоченными коллекциями, а уже обработку самих файлов выполняют внешние утилиты.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от xaizek

Обновятся впервые за последние 4 года

вот вот, только хотел сказать что в репах debian и buntu слииишком старые версии, а чтоб конпелять у меня слишком большой радиус кривизны рук

а вообще - отличная новость отличной утилиты
с некоторых пор планирую полностью уйти от mc на vifm

q11q11 ★★★★★
()
Ответ на: комментарий от NixU

Сейчас приходится работать с виндой, вот тут да, без commanderов не обойтись

а вот тут и пригодился бы vifm+vim
ибо и первого и второго есть для венды
только конфиги скопировать - и та-же самая привычная среда разработки

q11q11 ★★★★★
()
Ответ на: комментарий от xaizek

> О, так вы являетесь разработчиком!
Ага :)

тоесть теперь напрямую можно будет задавать глупые вопросы если что? :)

q11q11 ★★★★★
()
Ответ на: комментарий от q11q11

Конечно :) Плюс на русском, а то необходимость общения на английском иногда мешает пользователям присылать feedback разработчикам.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от q11q11

а чтоб конпелять у меня слишком большой радиус кривизны рук

радиус кривизны - величина, обратная кривизне

kovrik ★★★★★
()
     1	# Copyright 1999-2012 Gentoo Foundation
     2	# Distributed under the terms of the GNU General Public License v2
     3	# $Header: /var/cvsroot/gentoo-x86/app-misc/vifm/vifm-0.7.2.ebuild,v 1.5 2012/09/16 14:26:42 armin76 Exp $
       
     4	EAPI=4
     5	inherit base
       
     6	DESCRIPTION="Console file manager with vi(m)-like keybindings"
     7	HOMEPAGE="http://vifm.sourceforge.net/"
     8	SRC_URI="mirror://sourceforge/vifm/${P}.tar.bz2"
       
     9	LICENSE="GPL-2"
    10	SLOT="0"
    11	KEYWORDS="~amd64"
    12	IUSE="+extended-keys +magic +desktop-files vim-plugin vim-syntax"
       
    13	DEPEND="
    14		>=sys-libs/ncurses-5.7-r7
    15		magic? ( sys-apps/file )
    16	"
    17	RDEPEND="
    18		${DEPEND}
    19		vim-plugin? ( >=app-editors/vim-7.3 )
    20		vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
    21	"
       
    22	DOCS=( AUTHORS TODO README )
       
    23	src_prepare() {
    24		aclocal
    25	    eautoreconf
    26	}
       
    27	src_configure() {
    28		econf \
    29			$(use_enable extended-keys) \
    30			$(use_with magic libmagic) \
    31			$(use_enable desktop-files)
    32	}
       
    33	src_install() {
    34		base_src_install
       
    35		if use vim-syntax; then
    36			local t
    37			for t in ftdetect ftplugin syntax; do
    38				insinto /usr/share/vim/vimfiles/"${t}"
    39				doins "${S}"/data/vim/"${t}"/"${PN}".vim
    40			done
    41		fi
    42		if use vim-plugin; then
    43			local t
    44			for t in doc plugin; do
    45				insinto /usr/share/vim/vimfiles/"${t}"
    46				doins "${S}"/data/vim/"${t}"/"${PN}".*
    47			done
    48		fi
    49	}
       
    50	pkg_postinst() {
    51		elog "To use vim to view the vifm help, copy /usr/share/${P}/vifm.txt"
    52		elog "	to ~/.vim/doc/ and run ':helptags ~/.vim/doc' in vim,"
    53		elog "then edit ~/.vifm/vifmrc${PV/a/} and set USE_VIM_HELP=1"
    54		elog ""
    55		elog "To use the vifm plugin in vim, copy /usr/share/${P}/vifm.vim to"
    56		elog "	/usr/share/vim/vimXX/"
    57	}

Собирается, но 24-ю строку надо бы заменить (на что?), поскольку emerge недоволен:

 * QA Notice: 'aclocal' called by src_prepare: app-misc/vifm-0.7.4
 * Use autotools.eclass instead of calling 'aclocal' directly.

anonymous
()
Ответ на: комментарий от anonymous

Ага, вот как надо:

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-misc/vifm/vifm-0.7.2.ebuild,v 1.5 2012/09/16 14:26:42 armin76 Exp $

EAPI=4
inherit base autotools

DESCRIPTION="Console file manager with vi(m)-like keybindings"
HOMEPAGE="http://vifm.sourceforge.net/"
SRC_URI="mirror://sourceforge/vifm/${P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+extended-keys +magic +parse-desktop-files vim-plugin vim-syntax"

DEPEND="
	>=sys-libs/ncurses-5.7-r7
	magic? ( sys-apps/file )
"
RDEPEND="
	${DEPEND}
	vim-plugin? ( >=app-editors/vim-7.3 )
	vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
"

DOCS=( AUTHORS TODO README )

src_prepare() {
    eautoreconf
}

src_configure() {
	econf \
		$(use_enable extended-keys) \
		$(use_with magic libmagic) \
		$(use_enable parse-desktop-files desktop-files)
}

src_install() {
	base_src_install

	if use vim-syntax; then
		local t
		for t in ftdetect ftplugin syntax; do
			insinto /usr/share/vim/vimfiles/"${t}"
			doins "${S}"/data/vim/"${t}"/"${PN}".vim
		done
	fi
	if use vim-plugin; then
		local t
		for t in doc plugin; do
			insinto /usr/share/vim/vimfiles/"${t}"
			doins "${S}"/data/vim/"${t}"/"${PN}".*
		done
	fi
}

pkg_postinst() {
	elog "To use vim to view the vifm help, copy /usr/share/${P}/vifm.txt"
	elog "	to ~/.vim/doc/ and run ':helptags ~/.vim/doc' in vim,"
	elog "then edit ~/.vifm/vifmrc${PV/a/} and set USE_VIM_HELP=1"
	elog ""
	elog "To use the vifm plugin in vim, copy /usr/share/${P}/vifm.vim to"
	elog "	/usr/share/vim/vimXX/"
}

anonymous
()
Ответ на: комментарий от xaizek

Bug report

Под оффтопиком отображает русские имена каталогов не полностью. Например, «Администратор» выглядит как «Адми», «Все пользователи» как «Все по». При этом, если зайти в каталог, то в заголовке окна название каталога отображается полностью.

anonymous
()
Ответ на: Bug report от anonymous

Ещё: проблемы с запуском файлов с пробелами в названии - если указывать аргумент %f. Если указать в кавычках («%f») - тоже не работает.

anonymous
()
Ответ на: комментарий от anonymous

Это в какой версии? В последних таких проблем уже давно нету. Ошибки больше похожи на vifm 0.5.

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Команда :version выводит

 Version: 0.7.4
 Git commit hash: 949a2c449daaca9f60f81e8f59f73a5716cb2cd2
 Compiled at: Oct 18 2012 22:50:58

 Support of extended keys is on
 Parsing of .desktop files is disabled
 Without GTK+ library
 Without magic library
 Without X11 library
 Without file program

anonymous
()
Ответ на: комментарий от anonymous

Спасибо! Собирал бинарники на виртуальной машине и не заметил. Исправлю и можно будет выложить багфикс версию (в Linux тоже проблема обнаружилась :( ).

xaizek ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Для Windows есть специальный вариант макросов: %«f

У cmd.exe и системных вызовов изврашённые представления об экранировании, поэтому с ними требуется специальное обращение. %f не ведёт себя как %„f на Windows по умолчанию, так как при использовании bash и %f будет работать практически всегда.

Программы кстати можно запускать и по „l“ и Enter, только надо опцию 'runexec' установить. Если что-то не распознаётся как исполняемый файл по расшинению, в vifmrc можно добавить (пример для *.msi файлов):

let $PATHEXT.=';.msi'
xaizek ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.