summaryrefslogtreecommitdiffstats
path: root/runtime/doc/os_dos.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/os_dos.txt')
-rw-r--r--runtime/doc/os_dos.txt64
1 files changed, 52 insertions, 12 deletions
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index b45cb088cb..b473134ce1 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -304,40 +304,80 @@ Vim sets the 'shellcmdflag' and 'shellquote' or 'shellxquote' options will be
set as described above.
==============================================================================
-10. PowerShell *dos-powershell*
+10. PowerShell *dos-powershell* *dos-pwsh*
-Vim also supports Windows PowerShell. If 'shell' has been set to
-"powershell.exe" at startup then VIM sets 'shellcmdflag', 'shellxquote',
-'shellpipe', and 'shellredir' options to the following values:
+Vim supports PowerShell Desktop and PowerShell Core. PowerShell Desktop is
+the version of PowerShell that is installed with Windows, while PowerShell
+Core is a separate downloadable version that works cross-platform. To see
+which version you are using then enter the following in a PowerShell prompt -
+$PSVersionTable.PSEdition
+
+If 'shell' includes "powershell" in the filename at startup then VIM sets
+'shellcmdflag', 'shellxquote', 'shellpipe', and 'shellredir' options to the
+following values:
'shellcmdflag' -Command
'shellxquote' "
'shellpipe' 2>&1 | Out-File -Encoding default
'shellredir' 2>&1 | Out-File -Encoding default
+If 'shell' includes "pwsh" in the filename at startup then VIM sets
+'shellcmdflag', 'shellxquote', 'shellpipe', and 'shellredir' options to the
+following values:
+
+'shellcmdflag' -c
+'shellxquote' "
+'shellpipe' >%s 2>&1
+'shellredir' >%s 2>&1
+
If you find that PowerShell commands are taking a long time to run then try
-setting 'shellcmdflag' to "-NoProfile -Command". Note this will prevent any
-PowerShell environment setup by the profile from taking place.
+with "-NoProfile" at the beginning of the 'shellcmdflag'. Note this will
+prevent any PowerShell environment setup by the profile from taking place.
If you have problems running PowerShell scripts through the 'shell' then try
-setting 'shellcmdflag' to "-ExecutionPolicy RemoteSigned -Command". See
-online Windows documentation for more information on PowerShell Execution
-Policy settings.
+with "-ExecutionPolicy RemoteSigned -Command" at the beginning of
+'shellcmdflag'. See online Windows documentation for more information on
+PowerShell Execution Policy settings.
+
+See |option-backslash| about including spaces in 'shellcmdflag' when using
+multiple flags.
The 'shellpipe' and 'shellredir' option values re-encode the UTF-16le output
-from Windows PowerShell to your currently configured console codepage. The
+from PowerShell Desktop to your currently configured console codepage. The
output can be forced into a different encoding by changing "default" to one of
the following:
unicode - UTF-16le (default output from PowerShell 5.1)
bigendianunicode - UTF-16
utf8 - UTF-8
- utf7 - UTF-7 (no-BOM)
+ utf7 - UTF-7 (no BOM)
utf32 - UTF-32
ascii - 7-bit ASCII character set
default - System's active code page (typically ANSI)
oem - System's current OEM code page
-Note Multi-byte Unicode encodings include a leading BOM.
+Note The abovce multi-byte Unicode encodings include a leading BOM unless
+otherwise indicated.
+
+By default PowerShell Core's output is UTF-8 encoded without a BOM. If you
+want to force the output of PowerShell Core into a different encoding then set
+'shellredir' and 'shellpipe' to "2>&1 | Out-File -Encoding encoding" where
+encoding is one of the following:
+
+ ascii - 7-bit ASCII character set
+ bigendianunicode - UTF-16be
+ bigendianutf32 - UTF-32be
+ oem - System's current OEM code page
+ unicode - UTF-16le
+ utf7 - UTF-7
+ utf8 - UTF-8
+ utf8BOM - UTF-8, with BOM
+ utf8NoBOM - UTF-8, no BOM (default output from PowerShell Core)
+ utf32 - UTF-32
+
+Since PowerShell Core 6.2, the Encoding parameter also supports specifying a
+numeric ID of a registered code page (-Encoding 1251) or string names of
+registered code pages (-Encoding "windows-1251"). The .NET documentation for
+Encoding.CodePage has more information
vim:tw=78:ts=8:noet:ft=help:norl: