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

aka*_*ppi 5 powershell powershell-ise

这很奇怪.

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

做这个:

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

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

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

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

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

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

其他人可以重现这个吗?

截图

系统:Windows 8.1 Pro PowerShell ISE

Ryn*_*ant 5

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

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

 Does this mean no-one uses tabs within comments in PowerShell scripts?
Run Code Online (Sandbox Code Playgroud)

轶事,但我从来没有在单行注释中使用制表符,但我经常在多行注释中使用制表符,这些制表符用<#和括起来#>.例如

<#
Functions
    Get-Foo
    Get-Bar

Variables
    $Foo
    $Bar
#>

Function Get-Foo { ...
Run Code Online (Sandbox Code Playgroud)

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

, or that no-one uses comments in PowerShell scripts?
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这种行为会暗示这一点; 我总是用一个空格开始一行注释.

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

所以,我的工作流程将是:

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

  • 谢谢,很好的评论,阐明了它的工作方式。另外,我还没有学习多行注释的语法。有道理,用一种奇怪的方式。 (2认同)