Skip to content

Repository files navigation

PowerShell Terminal Kit

一套以 PowerShell 7 为唯一 Shell 基底的 Windows Terminal 环境。它提供接近 Zsh/Nushell 的视觉与交互,但不引入 Zsh、Nushell、WSL 或 Git Bash 的兼容性层。

效果与特性

  • Tokyo Night、Maple Mono NF CN、亚克力背景和紧凑 Windows Terminal 布局。
  • 原生 PowerShell robbyrussell 风格提示符,显示当前目录、Git 分支和 dirty 状态。
  • PSReadLine 彩色语法、历史与插件预测、Carapace 原生 CLI 补全。
  • Ctrl+T 使用自研 fzf-icons内置 fastwalk:原生扫描速度与完整文件图标兼得。
  • Ctrl+R 使用 fzf 搜索 PowerShell 历史。
  • ls / ll / la 使用 C# 二进制渲染 Nushell 风格圆角表格。
  • lso 保留原始 FileInfo / DirectoryInfo 对象管道。
  • zoxide 提供 j / ji 智能目录跳转。
  • Yazi 使用 Ranger 键位;ya 启动,光标停在目录上按 Shift+S 即退出并进入该目录。
  • Neovim 0.12 使用内置 vim.pack、原生 LSP 补全和精简的现代插件栈。
  • psmux 提供原生 Windows session/window/pane、Tokyo Night 状态栏和 Neovim/Amp 双栏开发布局。
  • btop、lazygit、dust、jq、just、ripgrep、fd 等现代原生命令行工具。
  • 慢模块在首次提示符后预热,Carapace 在首次 Tab 时加载。
╭──────┬───────────┬──────────────────┬───────────────────────────╮
│ type │      size │ modified         │ name                      │
├──────┼───────────┼──────────────────┼───────────────────────────┤
│ dir  │         — │ 2026-08-12 08:27 │   artifacts              │
│ file │   1.5 KiB │ 2026-08-12 14:26 │ 󰞷  Build.ps1              │
╰──────┴───────────┴──────────────────┴───────────────────────────╯

一键安装

要求:Windows 10/11、WinGet,以及能够联网访问 WinGet、PSGallery 和 GitHub。 不需要管理员 PowerShell;字体按当前用户安装。

打开 PowerShell,粘贴这一行即可;不需要 Git,不需要下载或克隆仓库

irm https://raw.githubusercontent.com/meglinge/PowerShell-Terminal-Kit/main/bootstrap.ps1 | iex

该命令通过 HTTPS 获取公开的 bootstrap.ps1,自动下载最新版仓库压缩包到系统临时 目录,执行安装后立即清理压缩包和源码。建议先打开链接审阅脚本,再执行远程代码。

如果已经手动下载了仓库,也可以离线从仓库根目录执行:

pwsh -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

安装器会:

  1. 自动备份已有 PowerShell Profile、Yazi 键位和 Windows Terminal 设置。
  2. 通过 WinGet 最多并行安装 4 个任务,部署 PowerShell、Windows Terminal 和全部原生工具。
  3. 从 PSGallery 安装 PSReadLine、PSFzf 和 CompletionPredictor。
  4. 从 Maple Mono 官方稳定 Release 安装 Maple Mono NF CN。
  5. 安装仓库内经过校验的 fzf-iconsFast-TerminalIcons
  6. 结构化合并 Windows Terminal 设置,保留用户已有的其他 Profile 和配色。
  7. 备份并部署 Neovim 配置;首次启动按锁文件并行安装插件。
  8. 安装并配置 psmux,保留 PowerShell 7、预测补全和原生 Windows 兼容性。

安装完成后关闭所有 Windows Terminal 窗口,重新打开,再验证:

Test-TerminalKit

安装选项

# 只预览,不修改任何内容
.\install.ps1 -DryRun

# 已有所有工具,只部署配置和自研组件
.\install.ps1 -SkipPackages

# 不下载字体
.\install.ps1 -SkipFont

# 不修改 Windows Terminal 设置
.\install.ps1 -SkipTerminalSettings

# 保留现有 Neovim 配置
.\install.ps1 -SkipNeovimConfig

# 保留现有 psmux 配置
.\install.ps1 -SkipPsmuxConfig

脚本可重复执行;每次执行都会创建新的时间戳备份。

一键更新

重复运行同一条安装命令就会自动获取并覆盖为 GitHub main 的最新配置:

irm https://raw.githubusercontent.com/meglinge/PowerShell-Terminal-Kit/main/bootstrap.ps1 | iex

安装后还会提供更短的更新命令:

Update-TerminalKit

更新同样会先创建新备份;哈希未变化且正在使用的 DLL 会跳过复制,因此重复执行不会 因 Windows 锁定已加载模块而失败。更新后重新打开 Windows Terminal。

回滚与卸载

恢复第一次安装本套件之前的原始配置:

Uninstall-TerminalKit

指定某次备份:

& "$env:LOCALAPPDATA\PowerShellTerminalKit\uninstall.ps1" `
    -Backup "$env:LOCALAPPDATA\PowerShellTerminalKit\backups\20260812-120000-000"

卸载器会恢复配置并移除本套件的 fzf 和 Fast-TerminalIcons 运行时。WinGet 应用、 PSGallery 模块与字体可能被其他配置共享,因此有意保留,不做破坏性删除。卸载前的 当前配置也会再次保存到 uninstall-backups

主要命令

命令/按键 用途
ls 圆角表格,普通文件
ll / la 圆角表格,包含隐藏文件
lso 原始对象列表,可接 Where-Object / Remove-Item
Ctrl+T 带图标的内置 walker 文件选择
Ctrl+R 模糊搜索历史命令
j keyword zoxide 直接跳转
ji zoxide + fzf 交互跳转
ya 启动 Yazi 并支持退出后切换目录
Shift+S(Yazi) 进入光标所指目录、退出 Yazi、切换 PowerShell 目录
reload-profile 重载 PowerShell Profile
edit-profile 用 VS Code 编辑 Profile
vim / nvim 启动 Neovim
edit-nvim 在 Neovim 中打开配置目录
mux [名称] 创建或进入一个 psmux session
mux-dev [名称] 创建 Neovim 65% + Amp 35% 的开发 session
mux-ls 列出 psmux sessions
mux-reload 重新加载 psmux 配置
edit-psmux 用 Neovim 编辑 psmux 配置
Update-TerminalKit 自动下载并更新到最新版
Test-TerminalKit 验证已安装环境
Uninstall-TerminalKit 恢复首次安装前的原始配置

Neovim 的插件、语言支持和快捷键见 docs/NEOVIM.md。 psmux 的完整键位和工作流见 docs/PSMUX.md

完整键位见 docs/KEYS.md

设计与性能

Windows Terminal (Tokyo Night + Maple Mono NF CN)
└─ PowerShell 7 -NoLogo
   ├─ 同步:UTF-8、PSReadLine、原生 prompt、zoxide
   ├─ OnIdle:Fast-TerminalIcons、PSFzf、CompletionPredictor
   ├─ 首次 Tab:Carapace
   ├─ Ctrl+T:fzf-icons 内置 fastwalk
   └─ ls:Fast-TerminalIcons C# 边框渲染器
  • 不使用 PowerShell 循环扫描文件来生成 fzf 图标。
  • 普通 Get-ChildItem 不额外 stat;目录大小显示 ,不会递归扫描。
  • Fast-TerminalIcons direct DLL 冷导入约 10ms;10,000 项边框构建约 22ms (参考开发机数据,不作为所有硬件的性能保证)。
  • 完整边框必须缓存列表并输出一个字符串;对象管道请使用 lso
  • Windows Terminal 采用合并而非覆盖,避免删除 WSL、VS、SSH 等已有 Profile。

更多实现边界见 docs/ARCHITECTURE.md

仓库布局

assets/                    已校验的原生运行时与许可证
config/powershell/         可移植 PowerShell Profile
config/yazi/               Ranger 风格键位
config/nvim/               Neovim 0.12 原生 vim.pack 配置与锁文件
config/psmux/              psmux PowerShell/Neovim/Amp 适配
config/windows-terminal…   可合并的 Terminal 设计片段
docs/                      架构和快捷键文档
install.ps1                幂等安装、备份和结构化合并
uninstall.ps1              从 manifest 回滚
verify.ps1                 语法、密钥、哈希、部署和回滚测试

安全与来源

  • 仓库不包含用户名、个人绝对路径、GitHub Token 或其他凭据。
  • 两个 bundled binary 的 SHA-256 位于 assets/checksums.sha256
  • fzf fork 的提交与设计来源位于 assets/fzf-icons/PROVENANCE.md
  • 第三方许可见 THIRD-PARTY-NOTICES.md
  • 安装脚本只从 WinGet、PSGallery 与 Maple Mono 官方 GitHub Release 获取依赖。

开发验证

pwsh -NoProfile -File .\verify.ps1 -RepositoryOnly

该命令会在临时目录执行完整部署与卸载回滚,验证 Windows Terminal 合并不会删除 已有 Profile/配色,并验证二进制哈希、fzf walker icons 与 C# 边框渲染。

License

仓库自有脚本和配置使用 MIT License。第三方组件维持各自许可证。

About

A fast, native PowerShell 7 terminal setup for Windows with Tokyo Night, fzf walker icons, Nushell-style listings, Yazi Ranger bindings, backup and one-command deployment.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages