Запуск приложений в зависимости от типа файлов в zsh
Когда то в http://linsovet.com/zsh-lazy-run-url я обещал рассказать о том как запускать программы lazy-style.. рассказываю Ж:-)
Есть в zsh особенность которая напоминает возможность в Windows запускать приложения "вызовом" файла которое это приложение обрабатывает.
В zsh для этого сущетвуют специальный тип алиасов. Например:
$ alias -s avi=mplayer
$ ezhik.v.tumane.avi
запустит команду mplayer ezhik.v.tumane.avi
примеры использования:
alias -s {avi,mpeg,mpg,mov,m2v}=mplayer
alias -s {odt,doc,sxw,rtf}=ooffice
alias -s {c,h}=vim
alias -s tgz="tar zxvf"
к сожалению alias -s tar.gz="tar zxvf" не работает.. никто не хочет патчик сделать? Ж:-D
но это еще не все Ж:-) как обычно когда в zsh есть какая то фича, то найдется кто то и доведет идею до маразм.. совершенства Ж:-) cуществует плагин в стандартной поставке zsh который обрабатывает базу данных mime и создает множество алиасов для всех типов файлов.
достаточно запустить
autoload -U zsh-mime-setup
zsh-mime-setup
после чего запустив
alias -s
можете посмотреть какие именно расширения файлов обрабатываются. все что не достает можно или добавить самостоятельно или подправить свой ~/.mailcap. если у вас его нет то пример можно подсмотреть в /etc/mailcap. ну и man mime Ж:-)
hint для Debian:
"запустите" какой нибуть .deb и приятно удивитесь Ж:-)
hint:
для тех у кого отличный от zsh шелл и линукс нужно посмотреть в сторону фичи ядра binfmt_misc. но это уже совсем другая история и другой типс.. Ж:-)
- Добавить комментарий
- 763 просмотра
Страница для печати


Только вот, для всякого рода gqview и пр. (которые выводят на консоль много текста) придется написать в ~/.zshrc так:
alias -s jpg='gqview 2&>1 >/dev/null'
Ну, и имена файлов, без бита исполнения, zsh по Tab не дополняет. Может быть, это можно поправить?
Мои опции для загрузки модулей и автодополнения:
autoload -U compinit
compinit
autoload -U incremental-complete-word
zle -N incremental-complete-word
autoload -U insert-files
zle -N insert-files
autoload -U predict-on
zle -N predict-on
пофиксил уже? у меня все окейно..
--
Signature invent in progress 21% #.........