当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] VSCode 片段带来更多乐趣

作者:精品下载站 日期:2024-12-14 07:50:58 浏览:12 分类:玩电脑

VSCode 片段带来更多乐趣


几天前,我发布了一篇文章,解释了如何在 Visual Studio Code 中创建和使用代码片段。正如那篇文章中提到的,我正在尝试将所有 PowerShell 工作迁移到 VSCode。能够使用片段只是我依赖的功能之一。正如许多人指出的那样,VSCode 扩展可以让这一切变得容易。安装 Easy Snippet Maker 扩展,您将获得一个上下文菜单,可将任何选定的文本转换为片段。

[玩转系统] VSCode 片段带来更多乐趣

按照提示操作,如果创建 PowerShell 代码段,它将被添加到我之前显示的 PowerShell.json 文件中。但是,即使在创建片段之后,您也可以使用片段做更多事情。这个很有趣。

我创建了一个函数大纲:

Function Name {
    [cmdletbinding()]
    Param(
        [Parameter(ValueFromPipeline)]
        [objecttype]$Variable
    )
    Begin {
        Write-Verbose "[$((Get-Date).TimeofDay) BEGIN  ] Starting $($myinvocation.mycommand)"

    } #begin

    Process {
        Write-Verbose "[$((Get-Date).TimeofDay) PROCESS] $Variable "

    } #process

    End {
        Write-Verbose "[$((Get-Date).TimeofDay) END    ] Ending $($myinvocation.mycommand)"

    } #end 

} #close Name

并将其转换为 VSCode 片段。由于我想要插入变量,我需要编辑代码片段。我发现一个更好的方法来转义 $myinvocable 的 $符号是使用 \\$myinspiration。正如我之前所写,这是因为 VSCode 允许您在代码片段中使用占位符。这是有趣的部分。这是修改后的代码片段。

"jh function": {
        "prefix": "myfunction",
        "body": [
            "Function ${Name} {\r",
            "    [cmdletbinding()]\r",
            "    Param(\r",
            "        [Parameter(ValueFromPipeline)]\r",
            "        [${objecttype}]$${Variable}\r",
            "    )\r",
            "    Begin {\r",
            "        Write-Verbose \"[$((Get-Date).TimeofDay) BEGIN  ] Starting $(\$myinvocation.mycommand)\"\r",
            "\r",
            "    } #begin\r",
            "\r",
            "    Process {\r",
            "        Write-Verbose \"[$((Get-Date).TimeofDay) PROCESS] $${Variable} \"\r",
            "\r",
            "    } #process\r",
            "\r",
            "    End {\r",
            "        Write-Verbose \"[$((Get-Date).TimeofDay) END    ] Ending $(\$myinvocation.mycommand)\"\r",
            "\r",
            "    } #end \r",
            "\r",
            "} #close ${Name}"
        ],
        "description": "My function outline"
    }

我创建了像 $ {Name} 和 $ {ObjectType} 这样的占位符。您还应该注意,我在代码段中的多个位置使用了 $ {Name}。这就是办法。

插入代码片段后,我可以按 Tab 键浏览占位符并开始输入替换文本。如果占位符有多个实例,它们都会立即更改!

如果您的 PowerShell.json 文件格式有点奇怪,例如所有内容都聚集在一起作为一个长字符串,请在 VSCode 中打开该文件,然后按 Alt+Shift+F 使其变得漂亮。

您可能还想看看 PowerShell MVP Keith Hill 的这一系列文章 https://rkeithhill.wordpress.com/2017/02/19/scripting-guys-blog-posts-on-using-visual-studio- code-for-powershell-development/ 以进一步利用 VSCode。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯