[玩转系统] 使用 PowerShell 扩展 VSCode
作者:精品下载站 日期:2024-12-14 07:52:44 浏览:15 分类:玩电脑
使用 PowerShell 扩展 VSCode
去年,我有意识地决定将 VS Code 作为我的主要 PowerShell 开发工具。我花了数年时间调整和定制 PowerShell ISE,所以我对过渡有点担心。但我知道掌握 VS Code 的唯一方法(而且我还有很长的路要走)就是一直使用它。使这成为可能的 VSCode 功能之一是 PowerShellEditorServices。许多功能是通过 VS Code 中的 $PSEditor 对象公开的,类似于 PowerShell ISE 中的 $PSISE。不幸的是,关于该主题的 IT 专业人员友好的材料并不多。让我补充一点。
在我的 VS Code 配置文件 ($profile) 中,我添加命令来配置编辑器。我所做的一件事是使用 Register-EditorCommand cmdlet 添加自定义命令。我可以通过访问命令选项板并选择 PowerShell:显示来自 PowerShell 模块的其他命令来获取它们。
当我选择该选项时,我会得到可用命令的列表:
这些是我在 VSCode 配置文件中定义并添加的命令。就是这样。
我使用 Open Live Writer 来准备博客文章。我的博客使用 Crayon 插件来格式化代码示例。为了加快速度,我可以将必要的 HTML 代码插入到本地源中。在 PowerShell ISE 中,我有一个自定义菜单插件,可以复制选定的文本、插入必要的 HTML 并将结果复制到剪贴板,我可以将其粘贴到 Open Live Writer 中。我需要对 VS Code 做同样的事情。
Function ExportAsCrayon {
[cmdletbinding()]
param ([Microsoft.PowerShell.EditorServices.Extensions.EditorContext]$context)
$text = $context.CurrentFile.GetText($context.SelectedRange).Replace(">", ">").Replace("<", "<").Trim()
$code = @"
<pre>
$text
</pre>
"@
$code | Set-clipboard
$psEditor.Window.ShowInformationMessage("The selected text has been converted and copied to the clipboard.")
}
您为 VSCode 编写的大多数函数可能会使用 $Context 参数。顾名思义,这会告诉 VSCode 你在哪里,并让你可以访问一些方法和属性。在我的函数中,我使用 CurrentFile 对象和 GetText() 方法来获取所选文本。棘手的是,您需要传递的参数是 $Context 中的 SelectedRange 属性。这是没有很好记录的事情之一。我的代码的其余部分使用 Replace() 方法来转义 HTML 的尖括号字符。这被插入到此处的字符串 $code 中,该字符串被发送到剪贴板。
最后一步是调用 ShowInformationMessage(),它将提供视觉提示。
您还可以使用这样的方法:
$pseditor.window.ShowErrorMessage("You made a mistake")
$pseditor.window.ShowWarningMessage("I wouldn't do that if I were you.")
一旦我有了这个函数,我就可以用 VS Code 注册它。
Register-EditorCommand -Name ExportAsCrayon -DisplayName "Export Code as Crayon" -Function ExportAsCrayon
这是一个 PowerShell cmdlet,因此您可以阅读有关它的帮助。名称是编程名称,显示名称是您在下拉列表中看到的内容。
但要访问此命令需要执行几个键盘步骤。 VS Code 充满了键盘快捷键和绑定。我想创建自己的。
不幸的是,当前无法以编程方式创建或定义键盘快捷键。相反,您需要转到“文件”-“首选项”-“键盘快捷键”,然后单击链接来编辑 keybindings.json。
默认应用程序设置将位于左侧面板中,您的自定义设置将位于右侧面板中。要添加新的,请在最后一个后面、右方括号之前插入一个逗号。然后输入一组{}。
您需要输入密钥。我将使用 Ctrl+F6。 “命令”的设置将为“PowerShell.InvokeRegisteredEditorCommand”。棘手的部分,也是我花了最长的时间才弄清楚的部分是参数或参数值。该方法非常清楚它要做什么。创建一个“args”键,其值如下所示:“commandName”:“ExportAsCrayon”}。使用您注册的命令的短名称。或者,您可以添加键绑定“何时”处于活动状态的设置。我希望我的编辑器处于活动状态时。这是完整的 json 条目。
{
"key":"ctrl+f6",
"command": "PowerShell.InvokeRegisteredEditorCommand",
"args" : {"commandName": "ExportAsCrayon"},
"when": "editorTextFocus"
}
保存文件即可使用。如果您没有得到预期的结果或出现错误,请检查您的输入。 Json 区分大小写。 args 条目必须是“commandName”。我通常尝试根据其他键绑定条目来遵循大小写。
但现在我已经准备好了。 Register-EditorCommand 表达式位于我的 VSCode 配置文件中,我只需添加一次键绑定。现在我可以选择文本,按 Ctrl+F6 并将蜡笔格式的代码复制到剪贴板。
我希望这对您有所帮助,并避免您头疼。我想我为我们所有人做的已经够多了。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag