X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.mc%2Fmenu;h=a63f044a7cb4c891b874a52ea67c2cccf7886a99;hp=730357a2aa3ec095ebc9a881749d902607e468d6;hb=ea09d9ec6d1f3954239c70c3f2ef6f0058a7a284;hpb=54ae58d0e2b74f337ddf10805aff6de07bd5e798 diff --git a/.mc/menu b/.mc/menu index 730357a..a63f044 100644 --- a/.mc/menu +++ b/.mc/menu @@ -10,9 +10,9 @@ shell_patterns=0 exec $CMD %s + t t -@ Do something on the tagged files one by one +@ Do something on the selected files one by one CMD=%{Enter command} - for f in %t; do + for f in %s; do $CMD "$f" done @@ -20,16 +20,20 @@ shell_patterns=0 p View the file in a pager exec ${PAGER:-more} %f ++ t r +g Edit the file in gvim + gvim %f & + + t r b View the file in a browser exec webbrowser file://%d/%f + t r += f \.(htm(l?)|txt)$ w View the file in a new browser window exec webbrowser -n file://%d/%f + t r -= f \.(htm(l?)|txt)$ t View the file in a new browser tab exec webbrowser -t file://%d/%f @@ -57,59 +61,63 @@ T fb2txt esac $A %f | xsltproc /usr/local/src/FictionBook/FB2_2_txt_ru.xsl - | webstdin -e txt -t ++= t r & f \.(pdf|PDF|ps|PS)(\.bz2|\.gz)?$ +e View pdf/ps + qpdfview %f & + ++= t r & f \.djvu(\.bz2|\.gz)?$ +e View djvu + djview %f & + += t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$ o View OpenDoc with odt2txt odt2txt %f | ${PAGER:-more} -+ t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$ -e Edit OpenDoc with libreoffice ++ t r & f \.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg|doc|DOC|rtf|docx|DOCX|xls|XLS|xlsx|XLSX)$ +e Edit (Open)Docs with libreoffice libreoffice %f & -+= t r & f \.(pdf|PDF|djvu)(\.bz2|\.gz)?$ -e View pdf/djvu with evince - evince %f & - += t r & f \.(doc|DOC|rtf)$ d View doc with catdoc catdoc %f | ${PAGER:-more} -+ t r & f \.(doc|DOC|rtf)$ -e Edit doc with libreoffice - libreoffice %f & - += t r & f \.(docx|DOCX)$ d View docx with docx2txt - docx2txt %f - | ${PAGER:-more} + docx2txt %f - | iconv.py -f utf-8 | ${PAGER:-more} += t r & f \.(xls|XLS)$ x View xls with xls2csv xls2csv %f | ${PAGER:-more} -+ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ | t t -= t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ ++ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t += t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ i View image(s) scaled xli -title "`echo %s | sed 's/ /_/g'`" -zoom auto %s & -+ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|xpm)$ | t t ++ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ | t t I View image(s) full size xli -title "`echo %s | sed 's/ /_/g'`" %s & -+ t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$ | t t -= t r & f \.(ico|jp2|tif|TIF|tiff|TIFF)$ -I View icon, JPEG-2000 or TIFF image ++ t r & f \.(bmp|BMP|gif|GIF|jpg|JPG|jpeg|JPEG|pbm|PBM|ppm|PPM|png|PNG|xbm|xpm)$ +I Identify image + xli -identify %f + ++ t r & f \.(ico|jp2|tif|TIF|tiff|TIFF|webp)$ | t t += t r & f \.(ico|jp2|tif|TIF|tiff|TIFF|webp)$ +I View icon, JPEG-2000, TIFF, WebP image display %s & -+ t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t ++ t r & f \.(aac|ac3|ape|cue|dts|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t a Add the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #for f in %s; do # audtool --playlist-addurl "$f" #done - #smplayer -add-to-playlist %s & + #smplay -add-to-playlist %s & deadbeef --queue %s & -+ t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t -= t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ ++ t r & f \.(aac|ac3|ape|cue|dts|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t += t r & f \.(aac|ac3|ape|cue|dts|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ p Load the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #audtool --playlist-clear @@ -117,10 +125,10 @@ p Load the audiofile(s) or playlist(s) # audtool --playlist-addurl "$f" #done #smplayer -send-action pl_remove_all - #smplayer -add-to-playlist %s & + #smplay -add-to-playlist %s & deadbeef --queue %s & -+ t r & f \.(aac|ac3|ape|cue|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t ++ t r & f \.(aac|ac3|ape|cue|dts|flac|m3u|mka|mp3|MP3|ogg|OGG|pls|WAV|wav|wv)$ | t t P Play the audiofile(s) or playlist(s) #if [ "`audtool --get-volume`" -eq 0 ]; then cgmem_nice 500 audacious & sleep 3; fi #audtool --playlist-clear @@ -128,8 +136,8 @@ P Play the audiofile(s) or playlist(s) # audtool --playlist-addurl "$f" #done #exec audtool --playback-play - #mplayer -playlist %f & - #smplayer %s & + #mplay -playlist %f & + #smplay %s & deadbeef %s & #exec mediaplayer_open %f @@ -140,218 +148,319 @@ R Play the playlist in random order #audtool --playlist-clear #audtool --playlist-addurl random-playlist-tmp.m3u #audtool --playback-play - #mplayer -playlist random-playlist-tmp.m3u & - #smplayer random-playlist-tmp.m3u & - #smplayer -actions pl_shuffle %f & + #mplay -playlist random-playlist-tmp.m3u & + #smplay random-playlist-tmp.m3u & + #smplay -actions pl_shuffle %f & deadbeef --queue random-playlist-tmp.m3u & deadbeef --play #mediaplayer_open random-playlist-tmp.m3u (sleep 5; exec rm random-playlist-tmp.m3u) & -+ f \.(aac|ac3|ape|cue|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t d | t t -= t r & f \.(aac|ac3|ape|cue|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ ++ f \.(aac|ac3|ape|cue|dts|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t d | t t s Play audio/video file(s) or directory with smplayer - smplayer %s & + smplay %s & -+= t d & f (video_ts|VIDEO_TS)$ ++ t d & f (video_ts|VIDEO_TS)$ c Play the current directory with smplayer - smplayer . & + smplay . & -+ t r & f \.(m3u|mp3|MP3|cue|aac|ac3|ape|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t ++ t r & f \.(m3u|mp3|MP3|cue|aac|ac3|ape|dts|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ i Audio/video info - exec mplayer -msglevel identify=6 -frames 0 %s + exec "$HOME"/.config/mpv/mpv_identify.sh %f + t d & f (video_ts|VIDEO_TS)$ i DVD info - exec mplayer -dvd-device . dvd:// -msglevel identify=6 -frames 0 + exec "$HOME"/.config/mpv/mpv_identify.sh . -+ f \.(avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t -m Play video file(s) with mplayer - mplayer %s & ++ f \.(aac|ac3|ape|cue|dts|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t d | t t += f \.(aac|ac3|ape|cue|dts|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ +m Play video file(s) with mpv + mplay %s & -+ f \.(m3u|mp3|MP3|cue|aac|ac3|ape|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t -M Play audio/video with gmplayer - gmplayer %s & ++ f \.(aac|ac3|ape|cue|dts|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t d | t t += f \.(aac|ac3|ape|cue|dts|flac|m3u|mp3|MP3|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|iso|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ +m Play video file(s) with mpv asking audio volume + AUDIO_VOLUME=%{Enter volume} + AUDIO_VOLUME=$AUDIO_VOLUME mplay %s & -+ t d & f (video_ts|VIDEO_TS)$ -d Play DVD directory with mplayer - mplayer -dvd-device . dvd:// & ++ f \.(m3u|mp3|MP3|cue|aac|ac3|ape|dts|flac|ogg|OGG|pls|WAV|wav|wv|avi|AVI|flv|m2ts|m4v|mka|mkv|MKV|mov|MOV|mp4|MP4|mpg|MPG|vob|VOB|wma|wmv)$ | t t +M Play audio/video with mpv GUI + gmplay %s & + ++= t d & f (video_ts|VIDEO_TS)$ +d Play DVD directory with mpv + mplay -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ -D Play DVD directory with gmplayer - gmplayer -dvd-device . dvd:// & +D Play DVD directory with mpv GUI + gmplay -dvd-device . dvd:// & + t d & f (video_ts|VIDEO_TS)$ -t Play DVD title with mplayer +t Play DVD title with mpv title=%{Enter title} - mplayer -dvd-device . dvd://"$title" & + mplay -dvd-device . dvd://"$title" & + t d & f (video_ts|VIDEO_TS)$ -T Play DVD title with gmplayer +T Play DVD title with mpv GUI title=%{Enter title} - gmplayer -dvd-device . dvd://"$title" & + gmplay -dvd-device . dvd://"$title" & + t d -p Play directory with mplayer - mplayer %f/* & +p Play directory with mpv + mplay %f/* & + t d -P Play directory with gmplayer - gmplayer %f/* & +P Play directory with mpv GUI + gmplay %f/* & + t d & f ^\.\.$ -b Make a .tar.bz2 release of the current directory +b Compress the current subdirectory to tar.bz2 Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi - cd .. && tar cvf - "$Pwd" | bzip2 -f9 > "$tar".tar.bz2 + cd .. && tar cvf - "$Pwd" | bzip2 -f9 > "$tar".tar.bz2 && echo ../"$tar".tar.bz2 created. + t d & f ^\.\.$ -g Make a .tar.gz release of the current directory +g Compress the current subdirectory to tar.gz Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi - cd .. && tar cvf - "$Pwd" | gzip -f9 > "$tar".tar.gz + cd .. && tar cvf - "$Pwd" | gzip -f9 > "$tar".tar.gz && echo ../"$tar".tar.gz created. + t d & f ^\.\.$ -t Make a .tar release of the current directory +l Compress the current subdirectory to tar.lzma Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read tar if [ "$tar"x = x ]; then tar="$Pwd"; fi - cd .. && tar cvf - "$Pwd" > "$tar".tar + cd .. && tar cvf - "$Pwd" | lzma -f9 > "$tar".tar.lzma && + echo ../"$tar".tar.lzma created. + ++ t d & f ^\.\.$ +x Compress the current subdirectory to tar.xz + Pwd="`basename %d /`" + echo -n "Name of the distribution file (without extension) [$Pwd]: " + read tar + if [ "$tar"x = x ]; then tar="$Pwd"; fi + cd .. && tar cvf - "$Pwd" | xz -f9 > "$tar".tar.xz && + echo ../"$tar".tar.xz created. + ++ t d & f ^\.\.$ +t Compress the current subdirectory to tar + Pwd="`basename %d /`" + echo -n "Name of the distribution file (without extension) [$Pwd]: " + read tar + if [ "$tar"x = x ]; then tar="$Pwd"; fi + cd .. && tar cvf - "$Pwd" > "$tar".tar && echo ../"$tar".tar created. + t d & f ^\.\.$ -z Make a .zip release of the current directory +z Compress the current subdirectory to zip Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read zip if [ "$zip"x = x ]; then zip="$Pwd"; fi - cd .. && zip -r9 "$zip".zip "$Pwd" + cd .. && zip -r9 "$zip".zip "$Pwd" && echo ../"$zip".zip created. + t d & f ^\.\.$ -y Make a .zip release of the current directory with recoded filenames +y Compress the current subdirectory to zip recoding filenames Pwd="`basename %d /`" echo -n "Name of the distribution file (without extension) [$Pwd]: " read zip if [ "$zip"x = x ]; then zip="$Pwd"; fi - cd .. && zip.py "$zip".zip "$Pwd" + cd .. && zip.py "$zip".zip "$Pwd" && echo ../"$zip".zip created. -+ ! f \.(\.|zip|ZIP)$ ++ t d & f ^\.\.$ +7 Compress the current subdirectory to 7z + Pwd="`basename %d /`" + echo -n "Name of the distribution file (without extension) [$Pwd]: " + read ar + if [ "$ar"x = x ]; then ar="$Pwd"; fi + cd .. && 7zr a "$ar".7z "$Pwd" && + echo ../"$ar".7z created. + ++ ! f \.(bz2|gz|lz|lzma|7z|xz|zip|ZIP)$ & t r +z bzip2 the file + exec bzip2 -9 %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +z gzip the file + exec gzip -9 %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +z lzip the file + exec lzip -9 %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +z lzma the file + exec lzma -9 %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +z 7z the file/directory + exec 7zr a %f.7z %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +z xz the file + exec xz -9 %f + ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r z zip the file/directory exec zip -r9 %f.zip %f -+ ! f \.(\.|zip|ZIP)$ -y zip the file/directory with recoded filename(s) ++ ! f \.(z|Z|bz2|gz|lz|lzma)|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +y zip the file/directory recoding filename(s) exec zip.py %f.zip %f + t t -Z zip these files/directories +Z zip selected files/directories ZIP=%{Enter zip name} exec zip -r9 "$ZIP" %s + t t -Y zip these files/directories with recoded filenames +Y zip selected files/directories recoding filenames ZIP=%{Enter zip name} exec zip.py "$ZIP" %s -+ t r & f \.tar\.bz2$ -u Extract from tar-bzip2 - exec bzip2 -cd %f | tar xpvf - - -+ f \.tar\.gz$ | f \.tgz$ & t r -u Extract from tar-gzip - exec gzip -cd %f | tar xpvf - - -+ t r & f \.tar$ -u Extract from tar - exec tar xpvf %f - -+ t r & f \.(zip|ZIP)$ -u Extract from zip - exec unzip %f - -+ t r & f \.(zip|ZIP)$ -y Extract from zip with recoded filenames - exec unzip.py %f - -+ t r & f \.7z$ -u Extract from 7zip - exec 7zr x %f - -+ t r & f \.(rar|RAR)$ -u Extract from rar - exec unrar x -y %f - -+ t r & f \.tar\.xz$ -u Extract from tar-xz - exec xz -cd %f | tar xpvf - - -+ T r & F \.tar\.bz2$ -U Extract from the other tar-bzip2 - exec bzip2 -cd %D/%F | tar xpvf - - -+ F \.tar\.gz$ | F \.tgz$ & T r -U Extract from the other tar-gzip - exec gzip -cd %D/%F | tar xpvf - - -+ T r & F \.tar$ -U Extract from the other tar - exec tar xpvf %D/%F - -+ T r & F \.(zip|ZIP)$ -U Extract from the other zip - exec unzip %D/%F - -+ T r & F \.(zip|ZIP)$ -Y Extract from the other zip with recoded filenames - exec unzip.py %D/%F ++ f \.(tar\.(z|Z|bz2|gz|lz|lzma))|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & t r +n Create a directory for this archive + case %f in + *.tar.Z) D="`basename %f .tar.Z`";; + *.tar.bz2) D="`basename %f .tar.bz2`";; + *.tar.gz) D="`basename %f .tar.gz`";; + *.tbz2) D="`basename %f .tbz2`";; + *.tgz) D="`basename %f .tgz`";; + *.tz) D="`basename %f .tz`";; + *.tar.lz) D="`basename %f .tar.lz`";; + *.tar.lzma) D="`basename %f .tar.lzma`";; + *.tar.7z) D="`basename %f .tar.7z`";; + *.zip) D="`basename %f .zip`";; + *.ZIP) D="`basename %f .ZIP`";; + *.rar) D="`basename %f .rar`";; + *.RAR) D="`basename %f .RAR`";; + *.xz) D="`basename %f .xz`";; + *.7z) D="`basename %f .7z`";; + esac + exec mkdir "$D" -+ T r & F \.(rar|RAR)$ -U Extract from the other rar - exec unrar x -y %D/%F ++ F \.(tar\.(z|Z|bz2|gz|lz|lzma))|(tbz2|tgz|tz|zip|ZIP|rar|RAR|xz|7z)$ & T r +N Create a directory for the other archive + case %D/%F in + *.tar.Z) D="`basename %F .tar.Z`";; + *.tar.bz2) D="`basename %F .tar.bz2`";; + *.tar.gz) D="`basename %F .tar.gz`";; + *.tbz2) D="`basename %F .tbz2`";; + *.tgz) D="`basename %F .tgz`";; + *.tz) D="`basename %F .tz`";; + *.tar.lz) D="`basename %F .tar.lz`";; + *.tar.lzma) D="`basename %F .tar.lzma`";; + *.tar.7z) D="`basename %F .tar.7z`";; + *.zip) D="`basename %F .zip`";; + *.ZIP) D="`basename %F .ZIP`";; + *.rar) D="`basename %F .rar`";; + *.RAR) D="`basename %F .RAR`";; + *.xz) D="`basename %F .xz`";; + *.7z) D="`basename %F .7z`";; + esac + exec mkdir "$D" -+ T r & F \.7z$ -U Extract from 7zip - exec 7zr x %D/%F ++ f \.(tar\.(z|Z|bz2|gz|lz|lzma|7z|xz))|(tbz2|tgz|tz)$ & t r +x Extract the contents of a compressed tar file + unset PRG + case %f in + *.tar.bz2|*.tbz2) + PRG="bunzip2 -c" + ;; + *.tar.gz|*.tar.z|*.tgz|*.tz|*.tar.Z) + PRG="gzip -dc" + ;; + *.tar.lz) + PRG="lzip -dc" + ;; + *.tar.lzma) + PRG="lzma -dc" + ;; + *.tar.7z) + PRG="7zr e -so" + ;; + *.tar.xz) + PRG="xz -dc" + ;; + *) + exit 1 + ;; + esac + $PRG %f | tar xvpf - -+ T r & F \.tar\.xz$ -U Extract from tar-xz - exec xz -cd %D/%F | tar xpvf - ++ F \.(tar\.(z|Z|bz2|gz|lz|lzma|7z|xz))|(tbz2|tgz|tz)$ & T r +X Extract the contents of an other compressed tar file + unset PRG + case %F in + *.tar.bz2|*.tbz2) + PRG="bunzip2 -c" + ;; + *.tar.gz|*.tar.z|*.tgz|*.tz|*.tar.Z) + PRG="gzip -dc" + ;; + *.tar.lz) + PRG="lzip -dc" + ;; + *.tar.lzma) + PRG="lzma -dc" + ;; + *.tar.7z) + PRG="7zr e -so" + ;; + *.tar.xz) + PRG="xz -dc" + ;; + *) + exit 1 + ;; + esac + $PRG %D/%F | tar xvpf - -+ f \.tar\.bz2$ | f \.tar\.gz$ | f \.tgz$ | f \.(zip|ZIP)$ | f \.(rar|RAR)$ | f \.7z$ & t r -n Create a directory for this archive ++ f \.(bz2|egg|gz|lz|lzma|7z|xz|tar|whl|zip|ZIP|rar|RAR)$ & t r +x Extract a compressed file case %f in - *.tar.bz2) D="`basename %f .tar.bz2`";; - *.tar.gz) D="`basename %f .tar.gz`";; - *.tgz) D="`basename %f .tgz`";; - *.zip) D="`basename %f .zip`";; - *.ZIP) D="`basename %f .ZIP`";; - *.rar) D="`basename %f .rar`";; - *.RAR) D="`basename %f .RAR`";; - *.7z) D="`basename %f .7z`";; + *.bz2) P="bzip2 -d";; + *.gz) P="gzip -d";; + *.lz) P="lzip -d";; + *.lzma) P="lzma -d";; + *.7z) P="7zr x";; + *.xz) P="xz -d";; + *.tar) P="tar xvpf";; + *.egg|*.whl|*.zip|*.ZIP) P="unzip";; + *.rar|*.RAR) P="unrar x -y";; esac - exec mkdir "$D" + exec $P %f -+ F \.tar\.bz2$ | F \.tar\.gz$ | F \.tgz$ | F \.(zip|ZIP)$ | F \.(rar|RAR)$ | F \.7z$ & T r -N Create a directory for this archive ++ F \.(bz2|egg|gz|lz|lzma|7z|xz|tar|whl|zip|ZIP|rar|RAR)$ & T r +X Extract another compressed file case %F in - *.tar.bz2) D="`basename %F .tar.bz2`";; - *.tar.gz) D="`basename %F .tar.gz`";; - *.tgz) D="`basename %F .tgz`";; - *.zip) D="`basename %F .zip`";; - *.ZIP) D="`basename %F .ZIP`";; - *.rar) D="`basename %F .rar`";; - *.RAR) D="`basename %F .RAR`";; - *.7z) D="`basename %F .7z`";; + *.bz2) P="bzip2 -d";; + *.gz) P="gzip -d";; + *.lz) P="lzip -d";; + *.lzma) P="lzma -d";; + *.7z) P="7zr x";; + *.xz) P="xz -d";; + *.tar) P="tar xvpf";; + *.egg|*.whl|*.zip|*.ZIP) P="unzip";; + *.rar|*.RAR) P="unrar x -y";; esac - exec mkdir "$D" + exec $P %D/%F + ++ t r & f \.(zip|ZIP)$ +y Extract from zip recoding filenames + exec unzip.py %f + ++ T r & F \.(zip|ZIP)$ +Y Extract from other zip recoding filenames + exec unzip.py %D/%F + t r v View via mailcap @@ -383,13 +492,15 @@ V vimdiff these files + t d & ! f ^\.\.$ d Diff the directory - exec diff -ru --speed-large-files %D/%f %f + exec diff -ru --speed-large-files \ + -x CVS -x .git -x .hg -x .svn -x '*.py[co]' -x __pycache__ %D/%f %f + t d & T d & ! F ^\.\.$ D Diff these directories - exec diff -ru --speed-large-files %D/%F %f + exec diff -ru --speed-large-files \ + -x CVS -x .git -x .hg -x .svn -x '*.py[co]' -x __pycache__ %D/%F %f -+= f \.(asc|sig(n)?)$ & t r ++= f \.(asc|gpg|sig(n)?)$ & t r v Verify signature exec gpg --verify %f @@ -403,4 +514,4 @@ m View a manual page + t r | t d | t t r rsync the file(s) there - rsync -ahP --del %s %D + rsync -ahPv --del %s %D