如何在PowerShell ISE的注释中键入制表符(缩进)?

如何在PowerShell ISE的注释中键入制表符(缩进)?,powershell,powershell-ise,Powershell,Powershell Ise,这很奇怪 我知道tab用于PowerShell ISE中的命令完成,所以很好。但是,它也会弄乱编辑窗格 这样做: 文件>新建(Untitled1.ps1打开) 按tab键(一切正常,您将获得缩进) 键入enter、#(注释),然后按其后面的tab键 预期:在散列之后将得到缩进 实际值:将哈希替换为$PSVersionTable或命令提示符历史记录中的任何内容!(制表符和Shift制表符在其中循环) 这是否意味着没有人在PowerShell脚本的注释中使用选项卡,或者没有人在PowerShell脚

这很奇怪

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

这样做:

  • 文件>新建(
    Untitled1.ps1
    打开)

  • 按tab键(一切正常,您将获得缩进)

  • 键入enter、
    #
    (注释),然后按其后面的tab键 预期:在散列之后将得到缩进 实际值:将哈希替换为
    $PSVersionTable
    或命令提示符历史记录中的任何内容!(制表符和Shift制表符在其中循环)

  • 这是否意味着没有人在PowerShell脚本的注释中使用选项卡,或者没有人在PowerShell脚本中使用注释

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

    而且,这种行为似乎不一致。如果例如键入
    ##
    ,则有时tab不会完成(它也不会输入选项卡)

    其他人能复制这个吗

    系统: Windows 8.1 Pro
    PowerShell ISE要回答主要问题,可以输入Alt+09(使用数字键盘)以输入

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

     Does this mean no-one uses tabs within comments in PowerShell scripts?
    
    轶事,但我从未在单行注释中使用过制表符,但我经常在多行注释中使用制表符,这些注释由
    括起。例如

    <#
    Functions
        Get-Foo
        Get-Bar
    
    Variables
        $Foo
        $Bar
    #>
    
    Function Get-Foo { ...
    
    我不知道为什么这种行为会暗示这一点;我总是用一个空格开始一行注释

    我发现这在开发脚本时很有帮助,因为我经常在命令窗格中尝试表达式,如果我不确定其行为,则将表达式添加到脚本中(如果可以)

    因此,我的工作流程是:

  • 按Ctrl-D键转到命令窗格
  • 键入命令
  • 如果命令符合我的要求,则Ctrl-I可以转到脚本窗格
  • 键入
    #
    ,该行将添加到脚本中

  • 我可以复制这个。标签完成甚至在评论中起作用!但前提是我在“谢谢”后面键入一个空格。那么这是一只虫子吗。。?我不知道为什么会有人想要这个。无论如何,PowerShell一开始就很烦人。这只是靴子里又多了一块小石子。@Alireza我不认为这是一只虫子。正如我在回答中提到的,我发现这是一个有用的行为。无论如何,这都不重要,因为PSISE将选项卡替换为4个空格(或者刚好足够到达最近的
    列%4-eq 0
    或4的倍数)。如果需要选项卡,请使用空格。或者先输入选项卡,然后添加#。或者按照建议粘贴标签。谢谢,这是一条很好的评论,可以让我们了解它是如何工作的。此外,我还没有学会多行注释的语法。奇怪的是,这很有意义。当没有自动完成候选项时,TAB仍然不能作为内联注释或块注释中的TAB。似乎在评论之外的行为是正确的。。
    , or that no-one uses comments in PowerShell scripts?