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

[玩转系统] 使用 PSReadLine 键处理程序

作者:精品下载站 日期:2024-12-14 03:04:39 浏览:13 分类:玩电脑

使用 PSReadLine 键处理程序


PSReadLine 模块提供将 PSReadLine 功能映射到键盘和弦的按键处理程序。键盘和弦是同时按下的一个或多个击键的序列。例如,和弦 Ctrl+空格键 是同时按下 Ctrl 和 空格键 键的组合。 PSReadLine 函数是可以在命令行上执行的预定义操作。例如,MenuComplete 函数允许您从菜单的选项列表中进行选择,完成命令行上的输入。

PSReadLine 有几个默认绑定的预定义键处理程序。您还可以定义自己的自定义按键处理程序。运行以下命令列出当前定义的密钥处理程序。

Get-PSReadLineKeyHandler

您还可以获得所有可绑定到调和弦的未绑定 PSReadLine 函数的列表。

Get-PSReadLineKeyHandler -Unbound

您可以使用 Set-PSReadLineKeyHandler cmdlet 将函数绑定到按键处理程序。以下命令将 MenuComplete 函数绑定到和弦 Ctrl+空格键。

Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete

查找键名和和弦绑定

和弦中的按键名称由 [System.ConsoleKey] 枚举定义。有关详细信息,请参阅 System.ConsoleKey 文档。例如,[System.ConsoleKey] 中的 2 键的名称为 D2,而 2 的名称为 D2。数字键盘上的 kbd> 键是 NumPad2。您可以使用[System.Console]::ReadKey()方法查找您按下的按键的名称。

[System.Console]::ReadKey()

以下输出显示了 Ctrl+2 键和弦的 ReadKey() 方法返回的信息。

KeyChar Key Modifiers
------- --- ---------
        D2   Control

对于 PSReadLine 键处理程序 cmdlet,此和弦表示为 Ctrl+D2。以下示例将此和弦绑定到一个函数。

Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete

您可以将多条线绑定到一个函数。默认情况下,BackwardDeleteChar 函数绑定到两个和弦。

Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key       Function           Description
---       --------           -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h    BackwardDeleteChar Delete the character before the cursor

笔记

和弦参数区分大小写。这意味着,您可以为 Ctrl+X 和 Ctrl+x 创建不同的绑定。

在 Windows 上,您还可以使用 Alt+? 键和弦来显示绑定到您输入的下一个键和弦的功能。当您键入 Alt+? 时,您会看到以下提示:

what-is-key:

当您按下 Backspace 键时,您会收到以下响应:

Backspace: BackwardDeleteChar - Delete the character before the cursor

非 Windows 计算机上的密钥处理程序

根据您使用的操作系统和终端应用程序,键盘生成的键码可能会有所不同。

macOS

Macintosh 键盘不像 Windows 和 Linux 系统那样有 Alt 键。相反,它具有 ⌥ Option 键。 macOS 使用此键的方式与其他系统上的 Alt 键不同。但是,您可以在 macOS 上配置终端和 iTerm2 应用程序,将其视为 Alt 键。

配置终端应用程序

从 Terminal.app 中的应用栏打开设置窗口。选择配置文件并选择您要配置的配置文件。选择配置选项的键盘选项卡。在键列表下方,选择使用选项作为元键设置。此设置允许 ⌥ Option 键充当终端应用程序中的 Alt。

[玩转系统] 使用 PSReadLine 键处理程序

配置 iTerm2 应用程序

从 iTerm.app 的应用栏中打开设置窗口。选择配置文件并选择您要配置的配置文件。选择配置选项的按键选项卡。为左选项键右选项键设置选择Esc+选项。此设置允许 ⌥ Option 键在 iTerm 应用程序中充当 Alt 键。

[玩转系统] 使用 PSReadLine 键处理程序

笔记

具体步骤可能会有所不同,具体取决于 macOS 和终端应用程序的版本。这些示例是在 macOS Ventura 13.2.1 和 iTerm2 v3.4.16 上捕获的。

Linux

在 Linux 平台上,生成的关键代码可能与其他系统不同。例如:

  • Ctrl+[ 与 Escape 相同

  • Ctrl+空格键 生成Ctrl+D2 的按键代码。如果要映射功能 Ctrl+空格键,则必须使用和弦 Ctrl+D2

    Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
    

使用 ReadKey() 方法验证键盘生成的按键代码。

常用的按键处理程序

以下是 Windows 上默认绑定的一些常用键处理程序。请注意,非 Windows 平台上的键绑定可能有所不同。

MenuComplete

通过从可能的完成值菜单中进行选择来完成输入。

默认和弦:Ctrl+空格键

以下示例显示了以 select 开头的命令的可能完成菜单。

PS C:\> select<Ctrl+Spacebar>
select                   Select-Object            Select-PSFPropertyValue  Select-Xml
Select-AzContext         Select-PSFConfig         Select-PSMDBuildProject
Select-AzSubscription    Select-PSFObject         Select-String

Select-Object

使用箭头键选择所需的完成方式。按Enter键完成输入。当您在选择中移动时,所选命令的帮助将显示在菜单下方。

ClearScreen

此函数清除屏幕类似于clsclear命令。

默认和弦:Ctrl+l

选择命令参数

选择命令行上的下一个参数。

默认和弦:Alt+a

您可能希望在历史记录中使用不同的参数值再次运行命令。您可以使用和弦循环浏览每个参数并根据需要更改值。

New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM

按 Alt+a 依次选择下一个参数:myRGNameeastusmyVM.

GotoBrace

将光标移动到匹配的大括号。

默认和弦:Ctrl+]

此函数将光标移动到与命令行上当前光标位置处的大括号相匹配的右大括号。该函数适用于方括号 ([])、大括号 ({}) 和圆括号 (())。

DigitArgument

启动或累积数字参数,用于重复击键指定的次数。

默认和弦:Alt+0Alt+9

例如,在命令行中键入 Alt+4+# 会输入 ####

参见

  • 获取 PSReadLineKeyHandler
  • 设置 PSReadLineKeyHandler

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

取消回复欢迎 发表评论:

关灯