如何在PowerShell ISE中的注释中键入选项卡(缩进)?

时间:2014-07-14 11:32:29

标签: powershell powershell-ise

这很奇怪。

我知道tab是PowerShell ISE中的命令完成,所以很好。但是,它也会破坏编辑窗格。

这样做:

  1. 档案>新的(Untitled1.ps1打开)

  2. 按Tab键(一切正常,你得到一个缩进)

  3. 输入enter,#(评论),然后按Tab键 预期:哈希之后会有缩进 实际:一个得到哈希替换为$PSVersionTable或者命令提示符在其历史记录中的任何内容! (标签和Shift-tab圈选那些)

  4. 这是否意味着没有人在PowerShell脚本中的注释中使用制表符,或者没有人在PowerShell脚本中使用注释?

    我可以在任何地方关闭此行为吗?

    此外,行为似乎不一致。如果我键入##,有时标签不会完成(它也不会输入标签)。

    其他人可以重现这个吗?

    screenshot

    系统: Windows 8.1专业版 PowerShell ISE

1 个答案:

答案 0 :(得分:5)

要回答主要问题,您可以输入 Alt + 09 (使用数字小键盘)输入<Tab>

对于所描述的行为,我将此视为预期的行为。您可以通过键入#和上一个命令的一部分来获得历史记录完成,然后重复按 Tab 将在匹配历史记录中向后循环。单独键入#将匹配从最后一个命令开始的所有历史记录。

 Does this mean no-one uses tabs within comments in PowerShell scripts?

轶事,但我从未在单行评论中使用标签,但我经常在多行注释中使用标签,这些标注由<##>括起来。例如。

<#
Functions
    Get-Foo
    Get-Bar

Variables
    $Foo
    $Bar
#>

Function Get-Foo { ...

使用多行注释时,自动完成不会成为问题。

, or that no-one uses comments in PowerShell scripts?

我不知道为什么行为会暗示这一点;我总是使用一个空格来开始评论。

我在开发脚本时发现这很有用,因为我经常在命令窗格中尝试表达式,如果我不确定该行为,那么如果表达式有效,则将表达式添加到脚本中。

所以,我的工作流程是:

  1. Ctrl-D 转到命令窗格
  2. 输入命令
  3. 如果命令执行了我想要的操作, Ctrl-I 转到脚本窗格
  4. 键入#<Tab>,该行将添加到脚本中。