#completion #tabs #power-shell #nu #blazing #platform #environment

bin+lib posh-tabcomplete

适用于 PowerShell 的闪电般快速的 Tab 补全

9 个版本

0.2.1 2024年3月6日
0.2.0 2023年12月10日
0.1.6 2023年9月16日
0.1.4 2023年4月11日
0.1.2 2023年3月13日

#6 in #blazing

Download history 28/week @ 2024-03-10 23/week @ 2024-03-17 12/week @ 2024-03-31

每月 282 次下载

MIT/Apache 和可能 CC-PDDC

135KB
2.5K SLoC

Nushell 2K SLoC // 0.1% comments Rust 195 SLoC // 0.0% comments PowerShell 181 SLoC // 0.0% comments

posh-tabcomplete

Crates.io Build Status

适用于 PowerShell 和 pwsh 的闪电般快速的 Tab 补全。

demo

此视频使用了 MenuComplete 绑定在 code $PROFILE

Set-PSReadLineKeyHandler -Key Tab MenuComplete

功能

  • 使用 nushell/nu-engine 实现快速启动和执行
  • 使用 .nu 文件扩展,内置对常见任务如 gitnpm run 的支持
  • 支持所有平台。在 windows、WSL、mac 和 linux 上进行了测试

默认情况下,使用 completions.nu。可以在 TABCOMPLETE_FILE 环境变量中指定替代 .nu 文件。

安装

步骤 1. 安装二进制文件

发布版 中有可用的二进制文件,或者使用以下命令之一

存储库 说明
crates.io cargo安装 posh-tabcomplete --锁定

步骤 2. 设置 PowerShell

将此行添加到您的配置文件中,您可以通过在 PowerShell 中键入 code $PROFILE 来编辑此文件

Invoke-Expression (&posh-tabcomplete init | Out-String)

内置补全

打包在 completions.nu 中的补全如下

基准测试

要运行这些,请运行 ./benchmark/benchmark_all.ps1

基准测试 结果
benchmark/init - 启动时间 posh-tabcomplete: 45ms,posh-git: 280ms(6.22 倍更快)
benchmark/complete - Tab 补全(100 个分支) posh-tabcomplete: 104ms,posh-git: 222ms(2.13 倍更快)

别名/函数支持

支持函数。例如,演示中的 gco 补全

function gco() { git checkout $args }

目前不支持别名补全。

补全过程列表

请参阅 completions.nu

  • git
    • 分支
    • 检出
    • cherry-pick
    • 获取
    • 合并
    • 推送
    • 变基
    • 切换
    • 比较
  • npm
    • 运行

依赖

~62–95MB
~2M SLoC