我正在努力将工作从 Powershell ISE 迁移到 VS Code 以进行 PowerShell 编程。
迄今为止最大的问题是获得类似 ISE 的体验。网上关于 VS Code 设置“切换 ISE 模式”的人是错误的。
因为它仅将 VS Code 中的 Window GUI 和位置样式设置为看起来像 ISE。当我键入 PowerShell cmdlet 名称的开头时,我不想只看到选项卡建议列表。因为没啥用。
当我输入时,我在 30 条建议列表中没有看到任何一点:
Get-Win...
然后按 Ctrl+Space,因为我无法选择其中任何一个来完成我的打字。它基本上告诉您必须按 TAB 30 次才能获得所需的 cmdlet 名称,或者继续编写 cmdlet 名称以使其更具体。
我缺少 VS Code 中的基本 ISE 功能,该功能非常有用。我提供了一个屏幕截图,以便准确显示我的意思。
请帮助我在 VS Code 中找到并启用此选项,因为我仍然无法迁移到 VS Code,因为它不起作用。
注:
我假设您正在谈论 VSCode (Visual Studio Code) 的集成终端中的体验,因此下面的答案通常适用于终端(控制台)。
相比之下,安装了PowerShell扩展后,您已经do在编辑器选项卡中获得了所需的体验,即在您键入时自动出现基于列表的补全建议。
注:
PSReadLine
,例如使用 Install-Module -Force -Scope CurrentUser PSReadLine
获得自动预测。tl;博士
虽然 PowerShell 附带的PSReadLine
模块的
预测 IntelliSense功能支持在您键入时自动提供补全,包括 - 通过选择加入 - 以 list 形式(见下文), 目前没有开箱即用地支持基于语法的补全,仅适用于基于历史的补全。
插件模型,允许第三方实现自己的预测源,包括基于假设语法的预测源。截至撰写本文时,我还不知道有这样的模块。
(或其他键,如果您愿意的话)来显示列表:
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
与任何 PSReadLine
current会话;要使其在将来也生效,请将命令添加到您的 在 PowerShell 终端(控制台)中,包括 VSCode 的集成终端,当您键入时,会自动提供完成预测(建议),这是由内置的
PSReadLine
预测性 IntelliSense 功能
(我使用的)提供只需调用下面的预测功能):预测功能默认启用,命令历史记录和插件模块均充当预测来源:
# This is the default; pass 'None' to *disable* predictions altogether,
# or 'History' / 'Plugin' to limit them to being sourced from the
# command history / plugin modules only.
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
默认预测
view是in-line
视图,如在 ISE 中一样,您必须运行:
# The default is 'InlineView'
Set-PSReadLineOption -PredictionView ListView
或者,按 F2
切换。
PSReadLine
Set-PSReadLineOption
$PROFILE
文件中。
PowerShell(自 v7.4.x 起)附带无通过搜索“预测器”获得插件。 其中有一个 Microsoft 发布的模块
CompletionPredictor
,但它是一个样本
模块,用于说明实现预测器插件模块的技术,如如何创建预测器插件模块中所述。命令行预测器,它指出此类模块必须作为 binary 模块实现,即(通常)在 C# 中。 虽然这个模块只是一个为一些硬编码命令实现基于语法的完成的示例,但它可以用作未来插件模块的基础,该模块将带来完整的、基于语法的制表符完成预测功能的功能。