Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 1 | " netrwPlugin.vim: Handles file transfer and remote directory listing across a network |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 2 | " PLUGIN SECTION |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 3 | " Date: Feb 09, 2021 |
Bram Moolenaar | 2963456 | 2020-01-09 21:46:04 +0100 | [diff] [blame] | 4 | " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 5 | " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 6 | " Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1 |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 7 | " Permission is hereby granted to use and distribute this code, |
| 8 | " with or without modifications, provided that this copyright |
| 9 | " notice is copied with it. Like anything else that's free, |
| 10 | " netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided |
| 11 | " *as is* and comes with no warranty of any kind, either |
| 12 | " expressed or implied. By using this plugin, you agree that |
| 13 | " in no event will the copyright holder be liable for any damages |
| 14 | " resulting from the use of this software. |
| 15 | " |
| 16 | " But be doers of the Word, and not only hearers, deluding your own selves {{{1 |
| 17 | " (James 1:22 RSV) |
| 18 | " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 19 | " Load Once: {{{1 |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 20 | if &cp || exists("g:loaded_netrwPlugin") |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 21 | finish |
| 22 | endif |
Bram Moolenaar | b7398fe | 2023-05-14 18:50:25 +0100 | [diff] [blame] | 23 | let g:loaded_netrwPlugin = "v173" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 24 | let s:keepcpo = &cpo |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 25 | set cpo&vim |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 26 | "DechoRemOn |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 27 | |
| 28 | " --------------------------------------------------------------------- |
| 29 | " Public Interface: {{{1 |
| 30 | |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 31 | " Local Browsing Autocmds: {{{2 |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 32 | augroup FileExplorer |
| 33 | au! |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 34 | au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 35 | au BufEnter * sil call s:LocalBrowse(expand("<amatch>")) |
| 36 | au VimEnter * sil call s:VimEnter(expand("<amatch>")) |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 37 | if has("win32") || has("win95") || has("win64") || has("win16") |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 38 | au BufEnter .* sil call s:LocalBrowse(expand("<amatch>")) |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 39 | endif |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 40 | augroup END |
| 41 | |
| 42 | " Network Browsing Reading Writing: {{{2 |
| 43 | augroup Network |
| 44 | au! |
Bram Moolenaar | 85850f3 | 2019-07-19 22:05:51 +0200 | [diff] [blame] | 45 | au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>")) |
| 46 | au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>")) |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 47 | au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>")) |
| 48 | au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>")) |
| 49 | au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>")) |
Bram Moolenaar | 589edb3 | 2019-09-20 14:38:13 +0200 | [diff] [blame] | 50 | try |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 51 | au SourceCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>")) |
Bram Moolenaar | 589edb3 | 2019-09-20 14:38:13 +0200 | [diff] [blame] | 52 | catch /^Vim\%((\a\+)\)\=:E216/ |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 53 | au SourcePre ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>")) |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 54 | endtry |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 55 | augroup END |
| 56 | |
| 57 | " Commands: :Nread, :Nwrite, :NetUserPass {{{2 |
Bram Moolenaar | e0fa374 | 2016-02-20 15:47:01 +0100 | [diff] [blame] | 58 | com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call winrestview(s:svpos) |
| 59 | com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos) |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 60 | com! -nargs=* NetUserPass call NetUserPass(<f-args>) |
Bram Moolenaar | e0fa374 | 2016-02-20 15:47:01 +0100 | [diff] [blame] | 61 | com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos) |
Bram Moolenaar | 85850f3 | 2019-07-19 22:05:51 +0200 | [diff] [blame] | 62 | com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>) |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 63 | |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 64 | " Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2 |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 65 | com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>) |
| 66 | com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>) |
| 67 | com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>) |
| 68 | com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>) |
| 69 | com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>) |
| 70 | com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>) |
| 71 | com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>) |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 72 | com! -nargs=* -bar -bang -count=0 -complete=dir Lexplore call netrw#Lexplore(<count>,<bang>0,<q-args>) |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 73 | |
| 74 | " Commands: NetrwSettings {{{2 |
Bram Moolenaar | f233048 | 2008-06-24 20:19:36 +0000 | [diff] [blame] | 75 | com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings() |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 76 | com! -bang NetrwClean call netrw#Clean(<bang>0) |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 77 | |
Bram Moolenaar | b8a7b56 | 2006-02-01 21:47:16 +0000 | [diff] [blame] | 78 | " Maps: |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 79 | if !exists("g:netrw_nogx") |
| 80 | if maparg('gx','n') == "" |
| 81 | if !hasmapto('<Plug>NetrwBrowseX') |
| 82 | nmap <unique> gx <Plug>NetrwBrowseX |
| 83 | endif |
Bram Moolenaar | 5ef1c6a | 2019-11-10 22:09:11 +0100 | [diff] [blame] | 84 | nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr> |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 85 | endif |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 86 | if maparg('gx','x') == "" |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 87 | if !hasmapto('<Plug>NetrwBrowseXVis') |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 88 | xmap <unique> gx <Plug>NetrwBrowseXVis |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 89 | endif |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 90 | xno <silent> <Plug>NetrwBrowseXVis :<c-u>call netrw#BrowseXVis()<cr> |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 91 | endif |
Bram Moolenaar | b8a7b56 | 2006-02-01 21:47:16 +0000 | [diff] [blame] | 92 | endif |
Bram Moolenaar | a0f849e | 2015-10-30 14:37:44 +0100 | [diff] [blame] | 93 | if exists("g:netrw_usetab") && g:netrw_usetab |
| 94 | if maparg('<c-tab>','n') == "" |
| 95 | nmap <unique> <c-tab> <Plug>NetrwShrink |
| 96 | endif |
| 97 | nno <silent> <Plug>NetrwShrink :call netrw#Shrink()<cr> |
| 98 | endif |
Bram Moolenaar | b8a7b56 | 2006-02-01 21:47:16 +0000 | [diff] [blame] | 99 | |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 100 | " --------------------------------------------------------------------- |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 101 | " LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{2 |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 102 | fun! s:LocalBrowse(dirname) |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 103 | " Unfortunate interaction -- only DechoMsg debugging calls can be safely used here. |
| 104 | " Otherwise, the BufEnter event gets triggered when attempts to write to |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 105 | " the DBG buffer are made. |
Bram Moolenaar | 589edb3 | 2019-09-20 14:38:13 +0200 | [diff] [blame] | 106 | |
Bram Moolenaar | e6ae622 | 2013-05-21 21:01:10 +0200 | [diff] [blame] | 107 | if !exists("s:vimentered") |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 108 | " If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will, |
| 109 | " and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined. |
| 110 | " call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)") |
| 111 | " call Dret("s:LocalBrowse") |
Bram Moolenaar | e6ae622 | 2013-05-21 21:01:10 +0200 | [diff] [blame] | 112 | return |
| 113 | endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 114 | |
| 115 | " call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")") |
| 116 | |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 117 | if has("amiga") |
| 118 | " The check against '' is made for the Amiga, where the empty |
| 119 | " string is the current directory and not checking would break |
| 120 | " things such as the help command. |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 121 | " call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)") |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 122 | if a:dirname != '' && isdirectory(a:dirname) |
Bram Moolenaar | adc2182 | 2011-04-01 18:03:16 +0200 | [diff] [blame] | 123 | sil! call netrw#LocalBrowseCheck(a:dirname) |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 124 | if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 125 | exe w:netrw_bannercnt |
| 126 | endif |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 127 | endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 128 | |
Bram Moolenaar | dd2a3cd | 2007-05-05 17:10:09 +0000 | [diff] [blame] | 129 | elseif isdirectory(a:dirname) |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 130 | " call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)") |
| 131 | " call Dredir("LocalBrowse ft last set: ","verbose set ft") |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 132 | " Jul 13, 2021: for whatever reason, preceding the following call with |
| 133 | " a sil! causes an unbalanced if-endif vim error |
| 134 | call netrw#LocalBrowseCheck(a:dirname) |
Bram Moolenaar | 8feef4f | 2015-01-07 16:57:10 +0100 | [diff] [blame] | 135 | if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt |
Bram Moolenaar | a687837 | 2014-03-22 21:02:50 +0100 | [diff] [blame] | 136 | exe w:netrw_bannercnt |
| 137 | endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 138 | |
| 139 | else |
| 140 | " not a directory, ignore it |
| 141 | " call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...") |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 142 | endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 143 | |
| 144 | " call Dret("s:LocalBrowse") |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 145 | endfun |
| 146 | |
| 147 | " --------------------------------------------------------------------- |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 148 | " s:VimEnter: after all vim startup stuff is done, this function is called. {{{2 |
| 149 | " Its purpose: to look over all windows and run s:LocalBrowse() on |
| 150 | " them, which checks if they're directories and will create a directory |
| 151 | " listing when appropriate. |
| 152 | " It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter() |
| 153 | " has already been called. |
Bram Moolenaar | 00a927d | 2010-05-14 23:24:24 +0200 | [diff] [blame] | 154 | fun! s:VimEnter(dirname) |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 155 | " call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">") |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 156 | if has('nvim') || v:version < 802 |
| 157 | " Johann Hรถchtl: reported that the call range... line causes an E488: Trailing characters |
| 158 | " error with neovim. I suspect its because neovim hasn't updated with recent |
| 159 | " vim patches. As is, this code will have problems with popup terminals |
| 160 | " instantiated before the VimEnter event runs. |
| 161 | " Ingo Karkat : E488 also in Vim 8.1.1602 |
Bram Moolenaar | e6ae622 | 2013-05-21 21:01:10 +0200 | [diff] [blame] | 162 | let curwin = winnr() |
| 163 | let s:vimentered = 1 |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 164 | windo call s:LocalBrowse(expand("%:p")) |
Bram Moolenaar | 477db06 | 2010-07-28 18:17:41 +0200 | [diff] [blame] | 165 | exe curwin."wincmd w" |
Bram Moolenaar | 89a9c15 | 2021-08-29 21:55:35 +0200 | [diff] [blame] | 166 | else |
| 167 | " the following complicated expression comes courtesy of lacygoill; largely does the same thing as the windo and |
| 168 | " wincmd which are commented out, but avoids some side effects. Allows popup terminal before VimEnter. |
| 169 | let s:vimentered = 1 |
| 170 | call range(1, winnr('$'))->map({_, v -> win_execute(win_getid(v), 'call expand("%:p")->s:LocalBrowse()')}) |
| 171 | endif |
Bram Moolenaar | 8d04317 | 2014-01-23 14:24:41 +0100 | [diff] [blame] | 172 | " call Dret("s:VimEnter") |
Bram Moolenaar | 00a927d | 2010-05-14 23:24:24 +0200 | [diff] [blame] | 173 | endfun |
| 174 | |
| 175 | " --------------------------------------------------------------------- |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 176 | " NetrwStatusLine: {{{1 |
| 177 | fun! NetrwStatusLine() |
Bram Moolenaar | af48b09 | 2006-03-14 22:51:38 +0000 | [diff] [blame] | 178 | " let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".") |
| 179 | if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list") |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 180 | let &stl= s:netrw_explore_stl |
| 181 | if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif |
| 182 | if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif |
| 183 | return "" |
| 184 | else |
| 185 | return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen |
| 186 | endif |
| 187 | endfun |
| 188 | |
| 189 | " ------------------------------------------------------------------------ |
| 190 | " NetUserPass: set username and password for subsequent ftp transfer {{{1 |
| 191 | " Usage: :call NetUserPass() -- will prompt for userid and password |
| 192 | " :call NetUserPass("uid") -- will prompt for password |
| 193 | " :call NetUserPass("uid","password") -- sets global userid and password |
| 194 | fun! NetUserPass(...) |
| 195 | |
| 196 | " get/set userid |
| 197 | if a:0 == 0 |
| 198 | " call Dfunc("NetUserPass(a:0<".a:0.">)") |
| 199 | if !exists("g:netrw_uid") || g:netrw_uid == "" |
| 200 | " via prompt |
| 201 | let g:netrw_uid= input('Enter username: ') |
| 202 | endif |
| 203 | else " from command line |
| 204 | " call Dfunc("NetUserPass(a:1<".a:1.">) {") |
| 205 | let g:netrw_uid= a:1 |
| 206 | endif |
| 207 | |
| 208 | " get password |
| 209 | if a:0 <= 1 " via prompt |
| 210 | " call Decho("a:0=".a:0." case <=1:") |
| 211 | let g:netrw_passwd= inputsecret("Enter Password: ") |
| 212 | else " from command line |
| 213 | " call Decho("a:0=".a:0." case >1: a:2<".a:2.">") |
| 214 | let g:netrw_passwd=a:2 |
| 215 | endif |
| 216 | " call Dret("NetUserPass") |
| 217 | endfun |
| 218 | |
| 219 | " ------------------------------------------------------------------------ |
Bram Moolenaar | 482aaeb | 2005-09-29 18:26:07 +0000 | [diff] [blame] | 220 | " Modelines And Restoration: {{{1 |
| 221 | let &cpo= s:keepcpo |
| 222 | unlet s:keepcpo |
| 223 | " vim:ts=8 fdm=marker |