mirror of
https://github.com/vim/vim.git
synced 2025-08-27 20:13:38 -04:00
runtime(netrw): update netrw's decompress logic
Detect a few more default archive types, correctly handle file extensions with digits in it. fixes: #16099 closes: #16104 Signed-off-by: Konfekt <Konfekt@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
4dd6c22ebe
commit
cacfccf803
@ -36,6 +36,7 @@
|
|||||||
" 2024 Nov 07 by Vim Project: fix a few issues with netrw tree listing (#15996)
|
" 2024 Nov 07 by Vim Project: fix a few issues with netrw tree listing (#15996)
|
||||||
" 2024 Nov 10 by Vim Project: directory symlink not resolved in tree view (#16020)
|
" 2024 Nov 10 by Vim Project: directory symlink not resolved in tree view (#16020)
|
||||||
" 2024 Nov 14 by Vim Project: small fixes to netrw#BrowseX (#16056)
|
" 2024 Nov 14 by Vim Project: small fixes to netrw#BrowseX (#16056)
|
||||||
|
" 2024 Nov 23 by Vim Project: update decompress defaults (#16104)
|
||||||
" }}}
|
" }}}
|
||||||
" Former Maintainer: Charles E Campbell
|
" Former Maintainer: Charles E Campbell
|
||||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||||
@ -365,7 +366,39 @@ call s:NetrwInit("g:netrw_cygdrive","/cygdrive")
|
|||||||
" Default values - d-g ---------- {{{3
|
" Default values - d-g ---------- {{{3
|
||||||
call s:NetrwInit("s:didstarstar",0)
|
call s:NetrwInit("s:didstarstar",0)
|
||||||
call s:NetrwInit("g:netrw_dirhistcnt" , 0)
|
call s:NetrwInit("g:netrw_dirhistcnt" , 0)
|
||||||
call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }')
|
let s:xz_opt = has('unix') ? "XZ_OPT=-T0" :
|
||||||
|
\ (has("win32") && &shell =~? '\vcmd(\.exe)?$' ?
|
||||||
|
\ "setx XZ_OPT=-T0 &&" : "")
|
||||||
|
call s:NetrwInit("g:netrw_decompress ", "{"
|
||||||
|
\ .."'.lz4': 'lz4 -d',"
|
||||||
|
\ .."'.lzo': 'lzop -d',"
|
||||||
|
\ .."'.lz': 'lzip -dk',"
|
||||||
|
\ .."'.7z': '7za x',"
|
||||||
|
\ .."'.001': '7za x',"
|
||||||
|
\ .."'.zip': 'unzip',"
|
||||||
|
\ .."'.bz': 'bunzip2 -k',"
|
||||||
|
\ .."'.bz2': 'bunzip2 -k',"
|
||||||
|
\ .."'.gz': 'gunzip -k',"
|
||||||
|
\ .."'.lzma': 'unlzma -T0 -k',"
|
||||||
|
\ .."'.xz': 'unxz -T0 -k',"
|
||||||
|
\ .."'.zst': 'zstd -T0 -d',"
|
||||||
|
\ .."'.Z': 'uncompress -k',"
|
||||||
|
\ .."'.tar': 'tar -xvf',"
|
||||||
|
\ .."'.tar.bz': 'tar -xvjf',"
|
||||||
|
\ .."'.tar.bz2': 'tar -xvjf',"
|
||||||
|
\ .."'.tbz': 'tar -xvjf',"
|
||||||
|
\ .."'.tbz2': 'tar -xvjf',"
|
||||||
|
\ .."'.tar.gz': 'tar -xvzf',"
|
||||||
|
\ .."'.tgz': 'tar -xvzf',"
|
||||||
|
\ .."'.tar.lzma': '"..s:xz_opt.." tar -xvf --lzma',"
|
||||||
|
\ .."'.tlz': '"..s:xz_opt.." tar -xvf --lzma',"
|
||||||
|
\ .."'.tar.xz': '"..s:xz_opt.." tar -xvfJ',"
|
||||||
|
\ .."'.txz': '"..s:xz_opt.." tar -xvfJ',"
|
||||||
|
\ .."'.tar.zst': '"..s:xz_opt.." tar -xvf --use-compress-program=unzstd',"
|
||||||
|
\ .."'.tzst': '"..s:xz_opt.." tar -xvf --use-compress-program=unzstd',"
|
||||||
|
\ .."'.rar': '"..(executable("unrar")?"unrar x -ad":"rar x -ad").."'"
|
||||||
|
\ .."}")
|
||||||
|
unlet s:xz_opt
|
||||||
call s:NetrwInit("g:netrw_dirhistmax" , 10)
|
call s:NetrwInit("g:netrw_dirhistmax" , 10)
|
||||||
call s:NetrwInit("g:netrw_fastbrowse" , 1)
|
call s:NetrwInit("g:netrw_fastbrowse" , 1)
|
||||||
call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
|
call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
|
||||||
@ -6510,7 +6543,6 @@ fun! s:NetrwMarkFileArgList(islocal,tomflist)
|
|||||||
NetrwKeepj call winrestview(svpos)
|
NetrwKeepj call winrestview(svpos)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
@ -6536,7 +6568,7 @@ fun! s:NetrwMarkFileCompress(islocal)
|
|||||||
|
|
||||||
" for every filename in the marked list
|
" for every filename in the marked list
|
||||||
for fname in s:netrwmarkfilelist_{curbufnr}
|
for fname in s:netrwmarkfilelist_{curbufnr}
|
||||||
let sfx= substitute(fname,'^.\{-}\(\.\a\+\)$','\1','')
|
let sfx= substitute(fname,'^.\{-}\(\.[[:alnum:]]\+\)$','\1','')
|
||||||
if exists("g:netrw_decompress['".sfx."']")
|
if exists("g:netrw_decompress['".sfx."']")
|
||||||
" fname has a suffix indicating that its compressed; apply associated decompression routine
|
" fname has a suffix indicating that its compressed; apply associated decompression routine
|
||||||
let exe= g:netrw_decompress[sfx]
|
let exe= g:netrw_decompress[sfx]
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
*pi_netrw.txt* For Vim version 9.1. Last change: 2024 Nov 12
|
*pi_netrw.txt* For Vim version 9.1. Last change: 2024 Nov 23
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
Original Author: Charles E. Campbell
|
||||||
(remove NOSPAM from Campbell's email first)
|
|
||||||
|
|
||||||
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
|
||||||
The VIM LICENSE applies to the files in this package, including
|
The VIM LICENSE applies to the files in this package, including
|
||||||
@ -2659,10 +2658,34 @@ your browsing preferences. (see also: |netrw-settings|)
|
|||||||
netrw last saw |g:netrw_cursor| >= 5 or when
|
netrw last saw |g:netrw_cursor| >= 5 or when
|
||||||
netrw was initially run.
|
netrw was initially run.
|
||||||
|
|
||||||
*g:netrw_decompress* = { ".gz" : "gunzip" ,
|
*g:netrw_decompress* = { '.lz4': 'lz4 -d',
|
||||||
".bz2" : "bunzip2" ,
|
'.lzo': 'lzop -d',
|
||||||
".zip" : "unzip" ,
|
'.lz': 'lzip -dk',
|
||||||
".tar" : "tar -xf"}
|
'.7z': '7za x',
|
||||||
|
'.001': '7za x',
|
||||||
|
'.tar.bz': 'tar -xvjf',
|
||||||
|
'.tar.bz2': 'tar -xvjf',
|
||||||
|
'.tbz': 'tar -xvjf',
|
||||||
|
'.tbz2': 'tar -xvjf',
|
||||||
|
'.tar.gz': 'tar -xvzf',
|
||||||
|
'.tgz': 'tar -xvzf',
|
||||||
|
'.tar.zst': 'tar --use-compress-program=unzstd -xvf',
|
||||||
|
'.tzst': 'tar --use-compress-program=unzstd -xvf',
|
||||||
|
'.tar': 'tar -xvf',
|
||||||
|
'.zip': 'unzip',
|
||||||
|
'.bz': 'bunzip2 -k',
|
||||||
|
'.bz2': 'bunzip2 -k',
|
||||||
|
'.gz': 'gunzip -k',
|
||||||
|
'.lzma': 'unlzma -T0 -k',
|
||||||
|
'.xz': 'unxz -T0 -k',
|
||||||
|
'.zst': 'zstd -T0 -d',
|
||||||
|
'.Z': 'uncompress -k',
|
||||||
|
'.rar': 'unrar x -ad',
|
||||||
|
'.tar.lzma': 'tar --lzma -xvf',
|
||||||
|
'.tlz': 'tar --lzma -xvf',
|
||||||
|
'.tar.xz': 'tar -xvJf',
|
||||||
|
'.txz': 'tar -xvJf'}
|
||||||
|
|
||||||
A dictionary mapping suffices to
|
A dictionary mapping suffices to
|
||||||
decompression programs.
|
decompression programs.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user