parent
cffcfe150b
commit
fc2813ef44
1 changed files with 9 additions and 5 deletions
14
plug.vim
14
plug.vim
|
@ -116,6 +116,10 @@ let s:TYPE = {
|
||||||
let s:loaded = get(s:, 'loaded', {})
|
let s:loaded = get(s:, 'loaded', {})
|
||||||
let s:triggers = get(s:, 'triggers', {})
|
let s:triggers = get(s:, 'triggers', {})
|
||||||
|
|
||||||
|
function! s:is_powershell(shell)
|
||||||
|
return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$'
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:isabsolute(dir) abort
|
function! s:isabsolute(dir) abort
|
||||||
return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)')
|
return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)')
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -263,7 +267,7 @@ function! s:define_commands()
|
||||||
endif
|
endif
|
||||||
if has('win32')
|
if has('win32')
|
||||||
\ && &shellslash
|
\ && &shellslash
|
||||||
\ && (&shell =~# 'cmd\(\.exe\)\?$' || &shell =~# 'powershell\(\.exe\)\?$')
|
\ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell))
|
||||||
return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.')
|
return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.')
|
||||||
endif
|
endif
|
||||||
if !has('nvim')
|
if !has('nvim')
|
||||||
|
@ -503,7 +507,7 @@ if s:is_win
|
||||||
let batchfile = s:plug_tempname().'.bat'
|
let batchfile = s:plug_tempname().'.bat'
|
||||||
call writefile(s:wrap_cmds(a:cmd), batchfile)
|
call writefile(s:wrap_cmds(a:cmd), batchfile)
|
||||||
let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0})
|
let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0})
|
||||||
if &shell =~# 'powershell\(\.exe\)\?$'
|
if s:is_powershell(&shell)
|
||||||
let cmd = '& ' . cmd
|
let cmd = '& ' . cmd
|
||||||
endif
|
endif
|
||||||
return [batchfile, cmd]
|
return [batchfile, cmd]
|
||||||
|
@ -984,7 +988,7 @@ function! s:chsh(swap)
|
||||||
set shell=sh
|
set shell=sh
|
||||||
endif
|
endif
|
||||||
if a:swap
|
if a:swap
|
||||||
if &shell =~# 'powershell\(\.exe\)\?$' || &shell =~# 'pwsh$'
|
if s:is_powershell(&shell)
|
||||||
let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s'
|
let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s'
|
||||||
elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$'
|
elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$'
|
||||||
set shellredir=>%s\ 2>&1
|
set shellredir=>%s\ 2>&1
|
||||||
|
@ -2225,7 +2229,7 @@ function! plug#shellescape(arg, ...)
|
||||||
let script = get(opts, 'script', 1)
|
let script = get(opts, 'script', 1)
|
||||||
if shell =~# 'cmd\(\.exe\)\?$'
|
if shell =~# 'cmd\(\.exe\)\?$'
|
||||||
return s:shellesc_cmd(a:arg, script)
|
return s:shellesc_cmd(a:arg, script)
|
||||||
elseif shell =~# 'powershell\(\.exe\)\?$' || shell =~# 'pwsh$'
|
elseif s:is_powershell(shell)
|
||||||
return s:shellesc_ps1(a:arg)
|
return s:shellesc_ps1(a:arg)
|
||||||
endif
|
endif
|
||||||
return s:shellesc_sh(a:arg)
|
return s:shellesc_sh(a:arg)
|
||||||
|
@ -2277,7 +2281,7 @@ function! s:system(cmd, ...)
|
||||||
return system(a:cmd)
|
return system(a:cmd)
|
||||||
endif
|
endif
|
||||||
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})'))
|
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})'))
|
||||||
if &shell =~# 'powershell\(\.exe\)\?$'
|
if s:is_powershell(&shell)
|
||||||
let cmd = '& ' . cmd
|
let cmd = '& ' . cmd
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue