vils и vimv — переименование файлов с помощью текстового редактора

переименование — vils и vimvvils — это скрипт на zsh позволяющий переименовывать файлы из текстового редактора.
Работает до ужаса просто, чем и подкупает...
vils [file ...]
Без указания файлов открывает для редактирования список файлов текущей директории.
Вот пример того как будет выглядеть текстовый файл
0001 filename1
0002 filename2
0003 filename3

Редактирую имя файла и сохраняя текстовый документ мы выполняем переименование. Проще простого, ну а текстовый редактор указанный в $EDITOR может позволить сделать что-то вроде массового переименование по шаблону или какие-нибудь другие чудеса, хотя использовать vils для редактирования имени нескольких файлов мне кажется удобнее всего.
Страница vils (скачать сам скрипт)

Есть ещё схожая по функционалу программа vimv (Vi move оффсайт) написанная на python и работающая в духе vim, хотя можно использовать и любой другой редактор. Отображает в текстовом редакторе список аналогично как и vils, но не показывает номера файлов (только их имена). Так же vimv немного функциональнее, к примеру, в списке файлов не отображает каталоги, ведь их он переименовывать как и vils не умеет.
Так же у vimv есть пара полезных опций придающих ему дополнительный функционал отсутствующий в vils:
  • -a — позволяет показывать скрытые файлы
  • -v, --verbose — показывает сделанные изменения после закрытия редактируемого файла
  • -e EDITOR, --editor=EDITOR — для указания редактора, который к сожалению нельзя внести в какой-нибудь конфиг или переменную окружения, так что придется указывать редактор каждый раз если не хочется пользовать vi (хотя заменить редактор в строке default='vi' в файле программы никто не запрещает)

Две очень схожих по функционалу консольных полезняшки — я разрвался в выборе, ибо vils может переименовывать список файлов, а vimv может принимать параметрами список каталогов файлы в которых надо переименовать. Но два одновременно пользовать не удобно, лишняя команда в памяти, посему написал небольшую обёртку для одновременного использования двух этих полезняшек, дабы не задумываться о том какую сейчас лучше запустить
#!/bin/sh
# враппер для переименовальщиков vils и vimv            #
# упрощающий одновременную работу с обоими              #
#########################################################
#            by muhas            #
#########################################################

# мало ли у вас они по другому названы
# к примеру vimv может быть vimv.py
# или вообще в переменной $PATH этих двух полезняшек нет
VILS="vils"
VIMV="vimv"

if [ .$1 = ."" ]; then 
	#если нет параметров то вызываем то что больше по нраву
	$VIMV
else
	if [ -d $1 ]; then
		# если первая опция окажится каталогом, то тогда лучше пользовать vimv
		$VIMV $@
	elif [ -f $1 ]; then
		# если первой опцией файл пойдет
		$VILS $@
	else
		# ну а если не файл и не каталог, то видимо какая-то опция, а опции у нас только vimv понимает
		$VIMV $@
	fi
fi
Надеюсь со временем vimv возымеет возможность редактирования списка файлов передаваемых в параметрах и надобность в этом врапере отпадет...
Minoru 11-05-2011
так что придется указывать редактор каждый раз если не хочется пользовать vi

Алиасы же :)
muhas 11-05-2011
блин, я о них забыл совсем =)
мне было проще в файле поправить имя дефолтного редактора
Slava 11-05-2011
А пользователи Emacs должны помнить сочетание C-x C-q в Dired, которое производит ту же магию с переименованием файлов.
muhas 11-05-2011
@Slava в который раз уверяюсь что emacs может всё =)
Кстати, вот этот dired на ncurses никаким боком к емаксовому? вроде когда-то слыхивал что это то же самое но вне емакса (сейчас не собрать и даже исходники не скачать ибо его сайт редиректит все страницы на главную)
bosha 11-05-2011
Видимо, ты перестал меня читать. Совсем. Я ж писал про vimv (=
muhas 11-05-2011
@bosha я кажется о vimv от тебя и узнал =) до тебя пользовал только vils
тут Тормоза прочитал что он узнал о существовании rename и хотел ему закоментить про vimv/vils но что-то вышло достаточно крупно, решил что в комментах затеряется и решил постом, к тому же скрипт для обвязки обоих нужно было куда-то разместить...
bosha 11-05-2011
@muhas я, кстати, тоже не знал про rename. Сколько никсами пользуюсь, сам узнал только от тормоза :D
muhas 11-05-2011
О, сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.
=)
Slava 11-05-2011
@muhas Я не слышал про автономный Dired, обычно я работаю с Emacs в иксах. А пользуюсь я даже не Dired, а ортодоксальным файловым менеджером Sunrise Commander, который основан на Dired. Он обладает многими вкусностями, в частности отображением всех файлов/папок внутри выбранных каталогов рекурсивно. Таким образом, можно редактировать имена файлов и папок неограниченного уровня вложенности. К сожалению, одновременно переименовывать файлы и папки, которые являются частью пути переименованных файлов, нельзя. Иначе было бы вообще замечательно.
vikos 11-10-2011
Здравствуйте, Михаил!
Отправлял вам письмо по электронной почте, но оно вернулось недоставленным. Поэтому пишу сюда, надеюсь вы увидите.

У меня к вам предложение: если вы публикуете на своем сайте оригинальную
статью, присылайте мне письмо со ссылкой и краткой аннотацией. Я дам ссылку
на своем сайте http://rus-linux.net в разделе "Новые публикации в сети"
(совершенно бэзплатно, то есть даром). Поскольку у меня 6000 посетителей в
сутки, вашему сайту это будет полезно. И трудозатраты не велики, всего навсего вставить нужный текст в следующий шаблон:


М.Мищенков,
""



Вставить URL, название и аннотацию (в пустую строку после тега ).

В.Костромин
vikos 11-10-2011
Шаблон отобразился неверно, я не учел, что html-теги работают. Правльно будет так:


М.Мищенков,
""



Вставить URL, название и аннотацию (в пустую строку после тега ).
vikos 11-10-2011
Лпять не то. Если заинтересуетесь, пишите на эл почту kos@rus-linux.net, вышлю в ответ шаблон