Mercurial > vim
comparison runtime/autoload/netrw.vim @ 18594:e9a47bcf7b94
Update runtime files
Commit: https://github.com/vim/vim/commit/5ef1c6a4838a9629b793f3ae676f72a764171b00
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 10 22:09:11 2019 +0100
Update runtime files
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 10 Nov 2019 22:15:04 +0100 |
parents | ca8e754bdd53 |
children | 99586852c2db |
comparison
equal
deleted
inserted
replaced
18593:89a359d7bcd2 | 18594:e9a47bcf7b94 |
---|---|
1 " netrw.vim: Handles file transfer and remote directory listing across | 1 " netrw.vim: Handles file transfer and remote directory listing across |
2 " AUTOLOAD SECTION | 2 " AUTOLOAD SECTION |
3 " Date: Jul 16, 2019 | 3 " Date: Nov 06, 2019 |
4 " Version: 165 | 4 " Version: 166 |
5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> | 5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> |
6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim | 6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim |
7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 | 7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 |
8 " Permission is hereby granted to use and distribute this code, | 8 " Permission is hereby granted to use and distribute this code, |
9 " with or without modifications, provided that this copyright | 9 " with or without modifications, provided that this copyright |
37 finish | 37 finish |
38 endif | 38 endif |
39 endfor | 39 endfor |
40 endif | 40 endif |
41 | 41 |
42 let g:loaded_netrw = "v165" | 42 let g:loaded_netrw = "v166" |
43 if !exists("s:NOTE") | 43 if !exists("s:NOTE") |
44 let s:NOTE = 0 | 44 let s:NOTE = 0 |
45 let s:WARNING = 1 | 45 let s:WARNING = 1 |
46 let s:ERROR = 2 | 46 let s:ERROR = 2 |
47 endif | 47 endif |
230 let s:netrw_ftp_cmd= g:netrw_ftp_cmd | 230 let s:netrw_ftp_cmd= g:netrw_ftp_cmd |
231 if !exists("g:netrw_ftp_options") | 231 if !exists("g:netrw_ftp_options") |
232 let g:netrw_ftp_options= "-i -n" | 232 let g:netrw_ftp_options= "-i -n" |
233 endif | 233 endif |
234 if !exists("g:netrw_http_cmd") | 234 if !exists("g:netrw_http_cmd") |
235 if executable("curl") | 235 if executable("wget") |
236 let g:netrw_http_cmd = "wget" | |
237 call s:NetrwInit("g:netrw_http_xcmd","-q -O") | |
238 elseif executable("curl") | |
236 let g:netrw_http_cmd = "curl" | 239 let g:netrw_http_cmd = "curl" |
237 call s:NetrwInit("g:netrw_http_xcmd","-L -o") | 240 call s:NetrwInit("g:netrw_http_xcmd","-L -o") |
238 elseif executable("wget") | |
239 let g:netrw_http_cmd = "wget" | |
240 call s:NetrwInit("g:netrw_http_xcmd","-q -O") | |
241 elseif executable("elinks") | 241 elseif executable("elinks") |
242 let g:netrw_http_cmd = "elinks" | 242 let g:netrw_http_cmd = "elinks" |
243 call s:NetrwInit("g:netrw_http_xcmd","-source >") | 243 call s:NetrwInit("g:netrw_http_xcmd","-source >") |
244 elseif executable("fetch") | 244 elseif executable("fetch") |
245 let g:netrw_http_cmd = "fetch" | 245 let g:netrw_http_cmd = "fetch" |
687 endif | 687 endif |
688 endif | 688 endif |
689 | 689 |
690 " save registers | 690 " save registers |
691 if has("clipboard") | 691 if has("clipboard") |
692 " call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>")) | |
692 sil! let keepregstar = @* | 693 sil! let keepregstar = @* |
693 sil! let keepregplus = @+ | 694 sil! let keepregplus = @+ |
694 endif | 695 endif |
695 sil! let keepregslash= @/ | 696 sil! let keepregslash= @/ |
696 | 697 |
914 " Nexplore | 915 " Nexplore |
915 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) | 916 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) |
916 if !exists("w:netrw_explore_list") " sanity check | 917 if !exists("w:netrw_explore_list") " sanity check |
917 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) | 918 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) |
918 if has("clipboard") | 919 if has("clipboard") |
920 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
919 sil! let @* = keepregstar | 921 sil! let @* = keepregstar |
920 sil! let @+ = keepregplus | 922 sil! let @+ = keepregplus |
921 endif | 923 endif |
922 sil! let @/ = keepregslash | 924 sil! let @/ = keepregslash |
923 " call Dret("netrw#Explore") | 925 " call Dret("netrw#Explore") |
939 " Pexplore | 941 " Pexplore |
940 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) | 942 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) |
941 if !exists("w:netrw_explore_list") " sanity check | 943 if !exists("w:netrw_explore_list") " sanity check |
942 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) | 944 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) |
943 if has("clipboard") | 945 if has("clipboard") |
946 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
944 sil! let @* = keepregstar | 947 sil! let @* = keepregstar |
945 sil! let @+ = keepregplus | 948 sil! let @+ = keepregplus |
946 endif | 949 endif |
947 sil! let @/ = keepregslash | 950 sil! let @/ = keepregslash |
948 " call Dret("netrw#Explore") | 951 " call Dret("netrw#Explore") |
994 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*" | 997 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*" |
995 catch /^Vim\%((\a\+)\)\=:E480/ | 998 catch /^Vim\%((\a\+)\)\=:E480/ |
996 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) | 999 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) |
997 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif | 1000 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif |
998 if has("clipboard") | 1001 if has("clipboard") |
1002 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
999 sil! let @* = keepregstar | 1003 sil! let @* = keepregstar |
1000 sil! let @+ = keepregplus | 1004 sil! let @+ = keepregplus |
1001 endif | 1005 endif |
1002 sil! let @/ = keepregslash | 1006 sil! let @/ = keepregslash |
1003 " call Dret("netrw#Explore : no files matched pattern") | 1007 " call Dret("netrw#Explore : no files matched pattern") |
1030 " call Decho("....w:netrw_explore_listlen=".w:netrw_explore_listlen,'~'.expand("<slnum>")) | 1034 " call Decho("....w:netrw_explore_listlen=".w:netrw_explore_listlen,'~'.expand("<slnum>")) |
1031 | 1035 |
1032 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') | 1036 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') |
1033 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) | 1037 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) |
1034 if has("clipboard") | 1038 if has("clipboard") |
1039 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
1035 sil! let @* = keepregstar | 1040 sil! let @* = keepregstar |
1036 sil! let @+ = keepregplus | 1041 sil! let @+ = keepregplus |
1037 endif | 1042 endif |
1038 sil! let @/ = keepregslash | 1043 sil! let @/ = keepregslash |
1039 " call Dret("netrw#Explore : no files matched") | 1044 " call Dret("netrw#Explore : no files matched") |
1078 " call Decho("..your vim does not have +path_extra",'~'.expand("<slnum>")) | 1083 " call Decho("..your vim does not have +path_extra",'~'.expand("<slnum>")) |
1079 if !exists("g:netrw_quiet") | 1084 if !exists("g:netrw_quiet") |
1080 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) | 1085 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) |
1081 endif | 1086 endif |
1082 if has("clipboard") | 1087 if has("clipboard") |
1088 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
1083 sil! let @* = keepregstar | 1089 sil! let @* = keepregstar |
1084 sil! let @+ = keepregplus | 1090 sil! let @+ = keepregplus |
1085 endif | 1091 endif |
1086 sil! let @/ = keepregslash | 1092 sil! let @/ = keepregslash |
1087 " call Dret("netrw#Explore : missing +path_extra") | 1093 " call Dret("netrw#Explore : missing +path_extra") |
1151 " since Explore may be used to initialize netrw's browser, | 1157 " since Explore may be used to initialize netrw's browser, |
1152 " there's no danger of a late FocusGained event on initialization. | 1158 " there's no danger of a late FocusGained event on initialization. |
1153 " Consequently, set s:netrw_events to 2. | 1159 " Consequently, set s:netrw_events to 2. |
1154 let s:netrw_events= 2 | 1160 let s:netrw_events= 2 |
1155 if has("clipboard") | 1161 if has("clipboard") |
1162 " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>")) | |
1156 sil! let @* = keepregstar | 1163 sil! let @* = keepregstar |
1157 sil! let @+ = keepregplus | 1164 sil! let @+ = keepregplus |
1158 endif | 1165 endif |
1159 sil! let @/ = keepregslash | 1166 sil! let @/ = keepregslash |
1160 " call Dret("netrw#Explore : @/<".@/.">") | 1167 " call Dret("netrw#Explore : @/<".@/.">") |
1640 let {a:vt}netrw_cinokeep = &l:cino | 1647 let {a:vt}netrw_cinokeep = &l:cino |
1641 let {a:vt}netrw_comkeep = &l:com | 1648 let {a:vt}netrw_comkeep = &l:com |
1642 let {a:vt}netrw_cpokeep = &l:cpo | 1649 let {a:vt}netrw_cpokeep = &l:cpo |
1643 let {a:vt}netrw_diffkeep = &l:diff | 1650 let {a:vt}netrw_diffkeep = &l:diff |
1644 let {a:vt}netrw_fenkeep = &l:fen | 1651 let {a:vt}netrw_fenkeep = &l:fen |
1645 " call Decho("saving current settings: got here#1",'~'.expand("<slnum>")) | |
1646 if !exists("g:netrw_ffkeep") || g:netrw_ffkeep | 1652 if !exists("g:netrw_ffkeep") || g:netrw_ffkeep |
1647 let {a:vt}netrw_ffkeep = &l:ff | 1653 let {a:vt}netrw_ffkeep = &l:ff |
1648 endif | 1654 endif |
1649 let {a:vt}netrw_fokeep = &l:fo " formatoptions | 1655 let {a:vt}netrw_fokeep = &l:fo " formatoptions |
1650 let {a:vt}netrw_gdkeep = &l:gd " gdefault | 1656 let {a:vt}netrw_gdkeep = &l:gd " gdefault |
1659 let {a:vt}netrw_rnukeep = &l:rnu | 1665 let {a:vt}netrw_rnukeep = &l:rnu |
1660 let {a:vt}netrw_repkeep = &l:report | 1666 let {a:vt}netrw_repkeep = &l:report |
1661 let {a:vt}netrw_rokeep = &l:ro | 1667 let {a:vt}netrw_rokeep = &l:ro |
1662 let {a:vt}netrw_selkeep = &l:sel | 1668 let {a:vt}netrw_selkeep = &l:sel |
1663 let {a:vt}netrw_spellkeep = &l:spell | 1669 let {a:vt}netrw_spellkeep = &l:spell |
1664 " call Decho("saving current settings: got here#2",'~'.expand("<slnum>")) | |
1665 if !g:netrw_use_noswf | 1670 if !g:netrw_use_noswf |
1666 let {a:vt}netrw_swfkeep = &l:swf | 1671 let {a:vt}netrw_swfkeep = &l:swf |
1667 endif | 1672 endif |
1668 let {a:vt}netrw_tskeep = &l:ts | 1673 let {a:vt}netrw_tskeep = &l:ts |
1669 let {a:vt}netrw_twkeep = &l:tw " textwidth | 1674 let {a:vt}netrw_twkeep = &l:tw " textwidth |
1673 | 1678 |
1674 " save a few selected netrw-related variables | 1679 " save a few selected netrw-related variables |
1675 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) | 1680 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) |
1676 if g:netrw_keepdir | 1681 if g:netrw_keepdir |
1677 let {a:vt}netrw_dirkeep = getcwd() | 1682 let {a:vt}netrw_dirkeep = getcwd() |
1683 " call Decho("saving to ".a:vt."netrw_dirkeep<".{a:vt}netrw_dirkeep.">",'~'.expand("<slnum>")) | |
1678 endif | 1684 endif |
1679 if has("clipboard") | 1685 if has("clipboard") |
1680 sil! let {a:vt}netrw_starkeep = @* | 1686 sil! let {a:vt}netrw_starkeep = @* |
1681 sil! let {a:vt}netrw_pluskeep = @+ | 1687 sil! let {a:vt}netrw_pluskeep = @+ |
1682 endif | 1688 endif |
1743 " s:NetrwOptionsRestore: restore options (based on prior s:NetrwOptionsSave) {{{2 | 1749 " s:NetrwOptionsRestore: restore options (based on prior s:NetrwOptionsSave) {{{2 |
1744 fun! s:NetrwOptionsRestore(vt) | 1750 fun! s:NetrwOptionsRestore(vt) |
1745 " call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) | 1751 " call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) |
1746 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) | 1752 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) |
1747 if !exists("{a:vt}netrw_optionsave") | 1753 if !exists("{a:vt}netrw_optionsave") |
1754 " call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>")) | |
1748 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) | 1755 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) |
1749 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 1756 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
1750 " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist") | 1757 " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist") |
1751 return | 1758 return |
1752 endif | 1759 endif |
1827 call s:NetrwLcd(dirkeep) | 1834 call s:NetrwLcd(dirkeep) |
1828 unlet {a:vt}netrw_dirkeep | 1835 unlet {a:vt}netrw_dirkeep |
1829 endif | 1836 endif |
1830 endif | 1837 endif |
1831 if has("clipboard") | 1838 if has("clipboard") |
1839 " call Decho("has clipboard",'~'.expand("<slnum>")) | |
1832 call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*") | 1840 call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*") |
1833 call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+") | 1841 call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+") |
1834 endif | 1842 endif |
1835 call s:NetrwRestoreSetting(a:vt."netrw_slashkeep","@/") | 1843 call s:NetrwRestoreSetting(a:vt."netrw_slashkeep","@/") |
1836 | 1844 |
1888 " setting last when it really didn't actually change it. | 1896 " setting last when it really didn't actually change it. |
1889 " | 1897 " |
1890 " Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting | 1898 " Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting |
1891 " keepvars are set up by s:NetrwOptionsSave | 1899 " keepvars are set up by s:NetrwOptionsSave |
1892 fun! s:NetrwRestoreSetting(keepvar,setting) | 1900 fun! s:NetrwRestoreSetting(keepvar,setting) |
1893 "" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)") | 1901 """ call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)") |
1894 | 1902 |
1895 " typically called from s:NetrwOptionsRestore | 1903 " typically called from s:NetrwOptionsRestore |
1896 " call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option') | 1904 " call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option') |
1897 " ex. call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel") | 1905 " ex. call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel") |
1898 " Restores option (if different) from a keepvar | 1906 " Restores option (if different) from a keepvar |
1903 "" call Decho("fyi: a:keepvar<".a:keepvar."> exists") | 1911 "" call Decho("fyi: a:keepvar<".a:keepvar."> exists") |
1904 "" call Decho("fyi: keepvarval=".keepvarval) | 1912 "" call Decho("fyi: keepvarval=".keepvarval) |
1905 "" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">") | 1913 "" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">") |
1906 | 1914 |
1907 if setting != keepvarval | 1915 if setting != keepvarval |
1908 "" call Decho("restore setting<".a:setting."=".setting."> to keepvarval<".keepvarval.">") | 1916 "" call Decho("restore setting<".a:setting."> (currently=".setting.") to keepvarval<".keepvarval.">") |
1909 if type(a:setting) == 0 | 1917 if type(a:setting) == 0 |
1910 exe "let ".a:setting."= ".keepvarval | 1918 exe "let ".a:setting."= ".keepvarval |
1911 elseif type(a:setting) == 1 | 1919 elseif type(a:setting) == 1 |
1912 exe "let ".a:setting."= '".keepvarval."'" | 1920 exe "let ".a:setting."= '".keepvarval."'" |
1913 else | 1921 else |
2861 " call Dfunc("NetrwGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)") | 2869 " call Dfunc("NetrwGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)") |
2862 | 2870 |
2863 " readcmd=='t': simply do nothing | 2871 " readcmd=='t': simply do nothing |
2864 if a:readcmd == 't' | 2872 if a:readcmd == 't' |
2865 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 2873 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
2866 " call Dret("NetrwGetFile : skip read of <".a:tfile.">") | 2874 " call Dret("NetrwGetFile : skip read of tfile<".a:tfile.">") |
2867 return | 2875 return |
2868 endif | 2876 endif |
2869 | 2877 |
2870 " get name of remote filename (ie. url and all) | 2878 " get name of remote filename (ie. url and all) |
2871 let rfile= bufname("%") | 2879 let rfile= bufname("%") |
5192 endif | 5200 endif |
5193 " call Dret("s:NetrwBrowseUpDir") | 5201 " call Dret("s:NetrwBrowseUpDir") |
5194 endfun | 5202 endfun |
5195 | 5203 |
5196 " --------------------------------------------------------------------- | 5204 " --------------------------------------------------------------------- |
5197 " netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2 | 5205 " netrw#BrowseX: (implements "x" and "gx") executes a special "viewer" script or program for the {{{2 |
5198 " given filename; typically this means given their extension. | 5206 " given filename; typically this means given their extension. |
5199 " 0=local, 1=remote | 5207 " 0=local, 1=remote |
5200 fun! netrw#BrowseX(fname,remote) | 5208 fun! netrw#BrowseX(fname,remote) |
5209 let use_ctrlo= 1 | |
5201 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") | 5210 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") |
5202 | 5211 |
5203 " if its really just a local directory, then do a "gf" instead | 5212 " if its really just a local directory, then do a "gf" instead |
5204 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:') | 5213 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:') |
5205 norm! gf | 5214 norm! gf |
5300 let redir= &srr . "/dev/null" | 5309 let redir= &srr . "/dev/null" |
5301 endif | 5310 endif |
5302 endif | 5311 endif |
5303 " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) | 5312 " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) |
5304 | 5313 |
5305 " extract any viewing options. Assumes that they're set apart by quotes. | 5314 " extract any viewing options. Assumes that they're set apart by spaces. |
5306 " call Decho("extract any viewing options",'~'.expand("<slnum>")) | |
5307 if exists("g:netrw_browsex_viewer") | 5315 if exists("g:netrw_browsex_viewer") |
5308 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5316 " call Decho("extract any viewing options from g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5309 if g:netrw_browsex_viewer =~ '\s' | 5317 if g:netrw_browsex_viewer =~ '\s' |
5310 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') | 5318 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') |
5311 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " | 5319 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " |
5312 let oviewer = '' | 5320 let oviewer = '' |
5313 let cnt = 1 | 5321 let cnt = 1 |
5326 endif | 5334 endif |
5327 | 5335 |
5328 " execute the file handler | 5336 " execute the file handler |
5329 " call Decho("execute the file handler (if any)",'~'.expand("<slnum>")) | 5337 " call Decho("execute the file handler (if any)",'~'.expand("<slnum>")) |
5330 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' | 5338 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' |
5331 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5339 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5332 let ret= netrwFileHandlers#Invoke(exten,fname) | 5340 let ret= netrwFileHandlers#Invoke(exten,fname) |
5333 | 5341 |
5334 elseif exists("g:netrw_browsex_viewer") && executable(viewer) | 5342 elseif exists("g:netrw_browsex_viewer") && executable(viewer) |
5335 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5343 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5336 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) | 5344 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) |
5337 let ret= v:shell_error | 5345 let ret= v:shell_error |
5338 | 5346 |
5339 elseif has("win32") || has("win64") | 5347 elseif has("win32") || has("win64") |
5340 " call Decho("win".(has("win32")? "32" : "64")",'~'.expand("<slnum>")) | 5348 " call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>")) |
5341 if executable("start") | 5349 if executable("start") |
5342 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) | 5350 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) |
5343 elseif executable("rundll32") | 5351 elseif executable("rundll32") |
5344 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) | 5352 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) |
5345 else | 5353 else |
5346 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) | 5354 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) |
5347 endif | 5355 endif |
5348 " call inputsave()|call input("Press <cr> to continue")|call inputrestore() | |
5349 let ret= v:shell_error | 5356 let ret= v:shell_error |
5350 | 5357 |
5351 elseif has("win32unix") | 5358 elseif has("win32unix") |
5352 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') | 5359 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') |
5353 " call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) | 5360 " call Decho("(netrw#BrowseX) cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) |
5354 if executable("start") | 5361 if executable("start") |
5362 " call Decho("(netrw#BrowseX) win32unix+start",'~'.expand("<slnum>")) | |
5355 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) | 5363 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) |
5356 elseif executable("rundll32") | 5364 elseif executable("rundll32") |
5365 " call Decho("(netrw#BrowseX) win32unix+rundll32",'~'.expand("<slnum>")) | |
5357 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) | 5366 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) |
5358 elseif executable("cygstart") | 5367 elseif executable("cygstart") |
5368 " call Decho("(netrw#BrowseX) win32unix+cygstart",'~'.expand("<slnum>")) | |
5359 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) | 5369 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) |
5360 else | 5370 else |
5361 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) | 5371 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) |
5362 endif | 5372 endif |
5363 " call inputsave()|call input("Press <cr> to continue")|call inputrestore() | |
5364 let ret= v:shell_error | 5373 let ret= v:shell_error |
5365 | 5374 |
5366 elseif has("unix") && executable("kfmclient") && s:CheckIfKde() | 5375 elseif has("unix") && executable("kfmclient") && s:CheckIfKde() |
5367 " call Decho("unix and kfmclient",'~'.expand("<slnum>")) | 5376 " call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>")) |
5368 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) | 5377 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) |
5369 let ret= v:shell_error | 5378 let ret= v:shell_error |
5370 | 5379 |
5371 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") | 5380 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") |
5372 " call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>")) | 5381 " call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>")) |
5373 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) | 5382 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) |
5374 let ret= v:shell_error | 5383 let ret= v:shell_error |
5375 | 5384 |
5376 elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril") | 5385 elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril") |
5377 " call Decho("unix and atril",'~'.expand("<slnum>")) | 5386 " call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>")) |
5378 call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir) | 5387 if a:fname =~ '^https\=://' |
5388 " atril does not appear to understand how to handle html -- so use gvim to edit the document | |
5389 let use_ctrlo= 0 | |
5390 " call Decho("(COMBAK) fname<".fname.">") | |
5391 " call Decho("(COMBAK) a:fname<".a:fname.">") | |
5392 call s:NetrwExe("sil! !gvim ".fname.' -c "keepj keepalt file '.fnameescape(a:fname).'"') | |
5393 | |
5394 else | |
5395 call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir) | |
5396 endif | |
5379 let ret= v:shell_error | 5397 let ret= v:shell_error |
5380 | 5398 |
5381 elseif has("unix") && executable("xdg-open") | 5399 elseif has("unix") && executable("xdg-open") |
5382 " call Decho("unix and xdg-open",'~'.expand("<slnum>")) | 5400 " call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>")) |
5383 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) | 5401 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) |
5384 let ret= v:shell_error | 5402 let ret= v:shell_error |
5385 | 5403 |
5386 elseif has("macunix") && executable("open") | 5404 elseif has("macunix") && executable("open") |
5387 " call Decho("macunix and open",'~'.expand("<slnum>")) | 5405 " call Decho("(netrw#BrowseX) macunix and open",'~'.expand("<slnum>")) |
5388 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) | 5406 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) |
5389 let ret= v:shell_error | 5407 let ret= v:shell_error |
5390 | 5408 |
5391 else | 5409 else |
5392 " netrwFileHandlers#Invoke() always returns 0 | 5410 " netrwFileHandlers#Invoke() always returns 0 |
5411 " call Decho("(netrw#BrowseX) use netrwFileHandlers",'~'.expand("<slnum>")) | |
5393 let ret= netrwFileHandlers#Invoke(exten,fname) | 5412 let ret= netrwFileHandlers#Invoke(exten,fname) |
5394 endif | 5413 endif |
5395 | 5414 |
5396 " if unsuccessful, attempt netrwFileHandlers#Invoke() | 5415 " if unsuccessful, attempt netrwFileHandlers#Invoke() |
5397 if ret | 5416 if ret |
5417 " call Decho("(netrw#BrowseX) ret=".ret," indicates unsuccessful thus far",'~'.expand("<slnum>")) | |
5398 let ret= netrwFileHandlers#Invoke(exten,fname) | 5418 let ret= netrwFileHandlers#Invoke(exten,fname) |
5399 endif | 5419 endif |
5400 | 5420 |
5401 " restoring redraw! after external file handlers | 5421 " restoring redraw! after external file handlers |
5402 redraw! | 5422 redraw! |
5414 if a:remote == 1 | 5434 if a:remote == 1 |
5415 setl bh=delete bt=nofile | 5435 setl bh=delete bt=nofile |
5416 if g:netrw_use_noswf | 5436 if g:netrw_use_noswf |
5417 setl noswf | 5437 setl noswf |
5418 endif | 5438 endif |
5419 exe "sil! NetrwKeepj norm! \<c-o>" | 5439 if use_ctrlo |
5420 " redraw! | 5440 exe "sil! NetrwKeepj norm! \<c-o>" |
5441 endif | |
5421 endif | 5442 endif |
5422 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) | 5443 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) |
5423 call winrestview(screenposn) | 5444 call winrestview(screenposn) |
5424 let @@ = ykeep | 5445 let @@ = ykeep |
5425 let &aw= awkeep | 5446 let &aw= awkeep |
6074 " separated patterns given in g:netrw_list_hide | 6095 " separated patterns given in g:netrw_list_hide |
6075 fun! s:NetrwListHide() | 6096 fun! s:NetrwListHide() |
6076 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") | 6097 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") |
6077 " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$'))) | 6098 " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$'))) |
6078 let ykeep= @@ | 6099 let ykeep= @@ |
6079 " call DechoBuf(bufnr("%"),"COMBAK#3") | |
6080 | 6100 |
6081 " find a character not in the "hide" string to use as a separator for :g and :v commands | 6101 " find a character not in the "hide" string to use as a separator for :g and :v commands |
6082 " How-it-works: take the hiding command, convert it into a range. | 6102 " How-it-works: take the hiding command, convert it into a range. |
6083 " Duplicate characters don't matter. | 6103 " Duplicate characters don't matter. |
6084 " Remove all such characters from the '/~@#...890' string. | 6104 " Remove all such characters from the '/~@#...890' string. |
6118 endif | 6138 endif |
6119 | 6139 |
6120 " remove any blank lines that have somehow remained. | 6140 " remove any blank lines that have somehow remained. |
6121 " This seems to happen under Windows. | 6141 " This seems to happen under Windows. |
6122 exe 'sil! NetrwKeepj 1,$g@^\s*$@d' | 6142 exe 'sil! NetrwKeepj 1,$g@^\s*$@d' |
6123 " call DechoBuf(bufnr("%"),"COMBAK#4") | |
6124 | 6143 |
6125 let @@= ykeep | 6144 let @@= ykeep |
6126 " call Dret("s:NetrwListHide") | 6145 " call Dret("s:NetrwListHide") |
6127 endfun | 6146 endfun |
6128 | 6147 |
6326 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>")) | 6345 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>")) |
6327 endif | 6346 endif |
6328 | 6347 |
6329 " generate default <Plug> maps {{{3 | 6348 " generate default <Plug> maps {{{3 |
6330 if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif | 6349 if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif |
6331 if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir |endif | 6350 if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir|endif |
6332 if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif | 6351 if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif |
6333 if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif | 6352 if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif |
6334 if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif | 6353 if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif |
6335 if !hasmapto('<Plug>NetrwLcd') |nmap <buffer> <silent> <nowait> cd <Plug>NetrwLcd|endif | 6354 if !hasmapto('<Plug>NetrwLcd') |nmap <buffer> <silent> <nowait> cd <Plug>NetrwLcd|endif |
6336 if !hasmapto('<Plug>NetrwSetChgwin') |nmap <buffer> <silent> <nowait> C <Plug>NetrwSetChgwin|endif | 6355 if !hasmapto('<Plug>NetrwSetChgwin') |nmap <buffer> <silent> <nowait> C <Plug>NetrwSetChgwin|endif |
6786 if exists("s:netrwmarkfilelist") | 6805 if exists("s:netrwmarkfilelist") |
6787 let dname= s:ComposePath(b:netrw_curdir,a:fname) | 6806 let dname= s:ComposePath(b:netrw_curdir,a:fname) |
6788 if index(s:netrwmarkfilelist,dname) == -1 | 6807 if index(s:netrwmarkfilelist,dname) == -1 |
6789 " append new filename to global markfilelist | 6808 " append new filename to global markfilelist |
6790 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) | 6809 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) |
6791 " call Decho("append filename<".a:fname."> to global markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) | 6810 " call Decho("append filename<".a:fname."> to global s:markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) |
6792 else | 6811 else |
6793 " remove new filename from global markfilelist | 6812 " remove new filename from global markfilelist |
6794 " call Decho("filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>")) | 6813 " call Decho("remove new filename from global s:markfilelist",'~'.expand("<slnum>")) |
6814 " call Decho("..filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>")) | |
6795 call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"') | 6815 call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"') |
6796 " call Decho("ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) | 6816 " call Decho("..ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) |
6797 if s:netrwmarkfilelist == [] | 6817 if s:netrwmarkfilelist == [] |
6818 " call Decho("s:netrwmarkfilelist is empty; unlet it",'~'.expand("<slnum>")) | |
6798 unlet s:netrwmarkfilelist | 6819 unlet s:netrwmarkfilelist |
6799 endif | 6820 endif |
6800 endif | 6821 endif |
6801 else | 6822 else |
6802 " initialize new global-directory markfilelist | 6823 " initialize new global-directory markfilelist |
6816 " " call Decho("2match none",'~'.expand("<slnum>")) | 6837 " " call Decho("2match none",'~'.expand("<slnum>")) |
6817 2match none | 6838 2match none |
6818 endif | 6839 endif |
6819 endif | 6840 endif |
6820 let @@= ykeep | 6841 let @@= ykeep |
6821 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">") | 6842 " call Decho("s:netrwmarkfilelist[".(exists("s:netrwmarkfilelist")? string(s:netrwmarkfilelist) : "")."] (avail in all buffers)",'~'.expand("<slnum>")) |
6843 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist")."> (buf#".curbufnr."list)") | |
6822 endfun | 6844 endfun |
6823 | 6845 |
6824 " --------------------------------------------------------------------- | 6846 " --------------------------------------------------------------------- |
6825 " s:NetrwMarkFileArgList: ma: move the marked file list to the argument list (tomflist=0) {{{2 | 6847 " s:NetrwMarkFileArgList: ma: move the marked file list to the argument list (tomflist=0) {{{2 |
6826 " mA: move the argument list to marked file list (tomflist=1) | 6848 " mA: move the argument list to marked file list (tomflist=1) |
7571 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 7593 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
7572 let curbufnr = bufnr("%") | 7594 let curbufnr = bufnr("%") |
7573 let curdir = s:NetrwGetCurdir(a:islocal) | 7595 let curdir = s:NetrwGetCurdir(a:islocal) |
7574 | 7596 |
7575 if exists("s:netrwmarkfilelist") | 7597 if exists("s:netrwmarkfilelist") |
7576 " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) | 7598 " call Decho("using s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) |
7577 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) | 7599 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) |
7600 " call Decho("keeping copy of s:netrwmarkfilelist in function-local variable,'~'.expand("<slnum>"))" | |
7578 call s:NetrwUnmarkAll() | 7601 call s:NetrwUnmarkAll() |
7579 else | 7602 else |
7580 " call Decho('no marked files, using "*"','~'.expand("<slnum>")) | 7603 " call Decho('no marked files, using "*"','~'.expand("<slnum>")) |
7581 let netrwmarkfilelist= "*" | 7604 let netrwmarkfilelist= "*" |
7582 endif | 7605 endif |
7583 | 7606 |
7584 " ask user for pattern | 7607 " ask user for pattern |
7608 " call Decho("ask user for search pattern",'~'.expand("<slnum>")) | |
7585 call inputsave() | 7609 call inputsave() |
7586 let pat= input("Enter pattern: ","") | 7610 let pat= input("Enter pattern: ","") |
7587 call inputrestore() | 7611 call inputrestore() |
7588 let patbang = "" | 7612 let patbang = "" |
7589 if pat =~ '^!' | 7613 if pat =~ '^!' |
9558 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl | 9582 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl |
9559 let newcolstart = w:netrw_bannercnt + fpc | 9583 let newcolstart = w:netrw_bannercnt + fpc |
9560 let newcolend = newcolstart + fpc - 1 | 9584 let newcolend = newcolstart + fpc - 1 |
9561 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>")) | 9585 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>")) |
9562 if has("clipboard") | 9586 if has("clipboard") |
9587 " call Decho("(s:NetrwWideListing) save @* and @+",'~'.expand("<slnum>")) | |
9563 sil! let keepregstar = @* | 9588 sil! let keepregstar = @* |
9564 sil! let keepregplus = @+ | 9589 sil! let keepregplus = @+ |
9565 endif | 9590 endif |
9566 while line("$") >= newcolstart | 9591 while line("$") >= newcolstart |
9567 if newcolend > line("$") | let newcolend= line("$") | endif | 9592 if newcolend > line("$") | let newcolend= line("$") | endif |
9574 endif | 9599 endif |
9575 exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _' | 9600 exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _' |
9576 exe 'sil! NetrwKeepj '.w:netrw_bannercnt | 9601 exe 'sil! NetrwKeepj '.w:netrw_bannercnt |
9577 endwhile | 9602 endwhile |
9578 if has("clipboard") | 9603 if has("clipboard") |
9604 " call Decho("(s:NetrwWideListing) restore @* and @+",'~'.expand("<slnum>")) | |
9579 sil! let @*= keepregstar | 9605 sil! let @*= keepregstar |
9580 sil! let @+= keepregplus | 9606 sil! let @+= keepregplus |
9581 endif | 9607 endif |
9582 exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e' | 9608 exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e' |
9583 NetrwKeepj call histdel("/",-1) | 9609 NetrwKeepj call histdel("/",-1) |
10847 " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>")) | 10873 " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>")) |
10848 | 10874 |
10849 for filename in filelist | 10875 for filename in filelist |
10850 " call Decho(" ",'~'.expand("<slnum>")) | 10876 " call Decho(" ",'~'.expand("<slnum>")) |
10851 " call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>")) | 10877 " call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>")) |
10852 " call DechoBuf(bufnr("%"),"COMBAK#1") | |
10853 | 10878 |
10854 if getftype(filename) == "link" | 10879 if getftype(filename) == "link" |
10855 " indicate a symbolic link | 10880 " indicate a symbolic link |
10856 " call Decho("indicate <".filename."> is a symbolic link with trailing @",'~'.expand("<slnum>")) | 10881 " call Decho("indicate <".filename."> is a symbolic link with trailing @",'~'.expand("<slnum>")) |
10857 let pfile= filename."@" | 10882 let pfile= filename."@" |
10905 " call Decho("filename<".filename.">",'~'.expand("<slnum>")) | 10930 " call Decho("filename<".filename.">",'~'.expand("<slnum>")) |
10906 " call Decho("pfile <".pfile.">",'~'.expand("<slnum>")) | 10931 " call Decho("pfile <".pfile.">",'~'.expand("<slnum>")) |
10907 | 10932 |
10908 if w:netrw_liststyle == s:LONGLIST | 10933 if w:netrw_liststyle == s:LONGLIST |
10909 let sz = getfsize(filename) | 10934 let sz = getfsize(filename) |
10935 let fsz = strpart(" ",1,15-strlen(sz)).sz | |
10910 if g:netrw_sizestyle =~# "[hH]" | 10936 if g:netrw_sizestyle =~# "[hH]" |
10911 let sz= s:NetrwHumanReadable(sz) | 10937 let sz= s:NetrwHumanReadable(sz) |
10912 endif | 10938 endif |
10913 let fsz = strpart(" ",1,15-strlen(sz)).sz | |
10914 let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile) | 10939 let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile) |
10915 let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename)) | 10940 let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename)) |
10916 " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>")) | 10941 " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>")) |
10917 endif | 10942 endif |
10918 | 10943 |
10940 else | 10965 else |
10941 " sort by name | 10966 " sort by name |
10942 " call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>")) | 10967 " call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>")) |
10943 sil! NetrwKeepj put=pfile | 10968 sil! NetrwKeepj put=pfile |
10944 endif | 10969 endif |
10945 " call DechoBuf(bufnr("%"),"COMBAK#2") | 10970 " call DechoBuf(bufnr("%"),"bufnr(%)") |
10946 endfor | 10971 endfor |
10947 | 10972 |
10948 " cleanup any windows mess at end-of-line | 10973 " cleanup any windows mess at end-of-line |
10949 sil! NetrwKeepj g/^$/d | 10974 sil! NetrwKeepj g/^$/d |
10950 sil! NetrwKeepj %s/\r$//e | 10975 sil! NetrwKeepj %s/\r$//e |
11257 " for example. | 11282 " for example. |
11258 fun! netrw#Expose(varname) | 11283 fun! netrw#Expose(varname) |
11259 " call Dfunc("netrw#Expose(varname<".a:varname.">)") | 11284 " call Dfunc("netrw#Expose(varname<".a:varname.">)") |
11260 if exists("s:".a:varname) | 11285 if exists("s:".a:varname) |
11261 exe "let retval= s:".a:varname | 11286 exe "let retval= s:".a:varname |
11287 " call Decho("retval=".retval,'~'.expand("<slnum>")) | |
11262 if exists("g:netrw_pchk") | 11288 if exists("g:netrw_pchk") |
11289 " call Decho("type(g:netrw_pchk=".g:netrw_pchk.")=".type(retval),'~'.expand("<slnum>")) | |
11263 if type(retval) == 3 | 11290 if type(retval) == 3 |
11264 let retval = copy(retval) | 11291 let retval = copy(retval) |
11265 let i = 0 | 11292 let i = 0 |
11266 while i < len(retval) | 11293 while i < len(retval) |
11267 let retval[i]= substitute(retval[i],expand("$HOME"),'~','') | 11294 let retval[i]= substitute(retval[i],expand("$HOME"),'~','') |
11268 let i = i + 1 | 11295 let i = i + 1 |
11269 endwhile | 11296 endwhile |
11270 endif | 11297 endif |
11271 " call Dret("netrw#Expose ".string(retval)) | 11298 " call Dret("netrw#Expose ".string(retval)),'~'.expand("<slnum>")) |
11272 return string(retval) | 11299 return string(retval) |
11273 endif | 11300 else |
11274 else | 11301 " call Decho("g:netrw_pchk doesn't exist",'~'.expand("<slnum>")) |
11302 endif | |
11303 else | |
11304 " call Decho("s:".a:varname." doesn't exist",'~'.expand("<slnum>")) | |
11275 let retval= "n/a" | 11305 let retval= "n/a" |
11276 endif | 11306 endif |
11277 | 11307 |
11278 " call Dret("netrw#Expose ".string(retval)) | 11308 " call Dret("netrw#Expose ".string(retval)) |
11279 return retval | 11309 return retval |