【问题标题】:Powershell 5 PSReadLine autocompletion how to ignore batch files (.cmd/.bat)Powershell 5 PSReadLine 自动补全如何忽略批处理文件(.cmd/.bat)
【发布时间】:2018-10-18 12:53:22
【问题描述】:

我大量使用自动完成...

当我使用 Tab 键调用自动完成时...
Powershell 还包括当前文件夹中的所有文件
或在自动完成列表中的当前路径中

如何配置 Powershell 以忽略这些文件
(例如,仅使用 Powershell 命令/函数自动完成)

【问题讨论】:

  • 我认为您需要为 Tab / Shift+Tab 实现自己的 KeyHandler 事件。我不确定如何查看 PSReadLine 的当前实现,因为他们的模块无法通过 Get-PSReadLineKeyHandler 为您提供那么多洞察力,但我确信 implementation is here somewhere
  • 谢谢...仅仅激活一个应该作为选项出现的简单配置似乎需要做很多工作... ;-)
  • 看来我可能错了。 Here's an answer that should help you。试试这个:Set-PSReadlineKeyHandler -Key Tab -Function ALT+SPACE(触发智能感知)
  • 谢谢...我已经使用 Tab-as-Alt+Space...这是有目的的...非常有用..但不是我问的...
  • 你误解了我的评论。按 alt+tab 获取函数参数。制表符补全与调用智能感知不同

标签: powershell autocomplete


【解决方案1】:

没有简单的方法可以获取您正在寻找的行为。

您最多可以定义自己的名为TabExpansion2 的函数,然后自己完全实现制表符完成(绝对不推荐)或过滤从TabExpansion2 的默认实现返回的结果。

我记得最近讨论过这个想法,我认为甚至可能有一个未解决的问题,但我快速搜索后没有看到它here

我不知道确切的历史,但在某一时刻,我们确实实现了您想要的行为。它确实打破了一些测试,我认为有些人更喜欢看到有效无用的完成而不是没有完成,也许完成仍然有效是令人放心的。

无论如何,我认为这是一个合理的功能请求,如果您找不到问题,我建议您打开一个问题。

【讨论】:

  • 谢谢...对于一个应该作为配置选项出现的东西来说似乎工作太多了...我真的不想用拳击手套杀死跳蚤! ;-) 谢谢
  • 最近开了一个issue,欢迎留言:github.com/PowerShell/PowerShell/issues/8092
猜你喜欢
  • 2010-09-14
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多