如何在PowerShell 7+中启用Tab补全的子字符串匹配?
PowerShell 7+ 实现子字符串Tab补全的原生方法
配置PSReadLine匹配模式
PSReadLine原生支持调整补全的匹配策略,只需通过Set-PSReadLineOption命令修改即可:
- 执行以下命令,直接启用子字符串匹配:
其中Set-PSReadLineOption -WordDelimiters "`t()[]{}" -MatchingMode Substring-WordDelimiters的设置是为了让连字符(如code-understanding中的-)被视为单词的一部分,避免补全时拆分词汇。 - 若要永久生效,将这条命令添加到PowerShell配置文件(
$PROFILE指向的文件)中,每次启动PowerShell时会自动加载配置。
搭配菜单补全使用
你已配置的MenuComplete功能可以和上述匹配模式兼容,按下Tab后会直接弹出包含目标子字符串的所有补全选项。如果需要临时切换匹配模式,可使用快捷键:
- 默认快捷键
Ctrl+Alt+M可循环切换匹配模式(子字符串、前缀、精确匹配等),也可自定义快捷键:Set-PSReadLineKeyHandler -Key Ctrl+Shift+M -Function SwitchMatchingMode
验证效果
配置完成后,输入under再按Tab,所有包含under的词汇(如code-understanding、file-underlined)都会出现在补全菜单中。
内容的提问来源于stack exchange,提问作者TheSmartMonkey
相关产品推荐
相关产品推荐

