fix(shell): on Windows :make does not echo #22728

Problem:
On Windows, :make does not display the output of the program it runs.
The cause is the default 'shellpipe'.  On Linux, nvim uses `tee` to redirect the
output to both stdout and the error file.  In Windows, for both cmd.exe and
powershell, the output is only redirected to the error file.

Solution:
- On Windows, change the 'shellpipe' default to "2>&1| tee".
    - Nvim includes `tee` in its Windows package.
- Document recommended defaults for powershell.

Fixes #12910
This commit is contained in:
Enan Ajmain
2023-03-20 03:25:12 +06:00
committed by GitHub
parent 5726f33e8c
commit ecc4d0e435
7 changed files with 20 additions and 19 deletions

View File

@@ -22,7 +22,7 @@ func Test_shell_options()
\ ['tcsh', '-c', '|& tee', '', '>&', '', '']]
endif
if has('win32')
let shells += [['cmd', '/s /c', '>%s 2>&1', '', '>%s 2>&1', '', '"']]
let shells += [['cmd', '/s /c', '2>&1| tee', '', '>%s 2>&1', '', '"']]
endif
" start a new Vim instance with 'shell' set to each of the supported shells