Mercurial > vim
diff runtime/doc/os_dos.txt @ 25084:beff72446e2e v8.2.3079
patch 8.2.3079: Powershell core not supported by default
Commit: https://github.com/vim/vim/commit/a3d1b29bd36487167c98b3cefa30f06c529e412d
Author: Mike Williams <mikew@globalgraphics.com>
Date: Wed Jun 30 20:56:00 2021 +0200
patch 8.2.3079: Powershell core not supported by default
Problem: Powershell core not supported by default.
Solution: Set option defaults for "pwsh". (Mike Williams, closes https://github.com/vim/vim/issues/8481)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 30 Jun 2021 21:00:05 +0200 |
parents | 0ce24f734615 |
children | 3e661b0cf500 |
line wrap: on
line diff
--- a/runtime/doc/os_dos.txt +++ b/runtime/doc/os_dos.txt @@ -304,40 +304,80 @@ Vim sets the 'shellcmdflag' and 'shellqu 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: