PowerShell Terminal Manager
一个智能的 VS Code 扩展,自动监控和关闭 PowerShell 终端,提高开发效率。
✨ 最新更新 (v0.1.2)
🔧 重要修复
- ✅ 自动运行问题已修复: 插件启动时现在会自动开始监控 PowerShell 终端
- ✅ 自动关闭问题已修复: 闲置的 PowerShell 终端现在会自动关闭(已测试通过)
- ✅ 状态检测优化: 改进终端状态检测逻辑,更准确地识别空闲终端
- ✅ 启动流程优化: 优化插件启动流程,确保监控服务正确启动
🐛 修复的问题
- 修复插件启动后无法自动运行的问题
- 修复闲置 PowerShell 终端无法自动关闭的问题(根本原因:关闭原因判断逻辑不完整)
- 修复状态检测器中的模拟输出问题
- 改进 PowerShell 和 Cursor 终端的识别逻辑
- 修复空闲终端关闭需要用户确认的问题
🚀 功能特性
🔍 自动监控
- 持续监控所有 PowerShell 和 Cursor 终端状态
- 智能检测终端是否正在执行命令
- 实时跟踪终端活动状态
🚪 自动关闭
- 空闲自动关闭: 指令执行完毕后,等待 5 秒后自动关闭终端
- 超时保护: 强制执行 5 分钟超时限制
- 用户选择: 超时时用户可选择立即关闭或等待 1 分钟后强制关闭
⚙️ 智能配置
- 可配置的超时时间(1-30 分钟)
- 可调整的状态检查间隔(1-10 秒)
- 白名单终端(不自动关闭的终端)
- 灵活的日志级别设置
🛡️ 安全特性
- 避免关闭用户正在输入的终端
- 完善的错误处理和恢复机制
- 紧急停止功能
- 详细的操作日志记录
📖 使用教程
🚀 快速开始
💡 新用户推荐: 查看 快速开始指南 5 分钟快速上手!
1. 安装插件
方法一:从 VSIX 文件安装(推荐)
- 下载最新的
ps-terminal-manager-0.1.2.vsix
文件
- 在 VS Code 中按
Ctrl+Shift+P
打开命令面板
- 输入 "Extensions: Install from VSIX..."
- 选择下载的
.vsix
文件
- 重启 VS Code
方法二:从源码构建
git clone https://github.com/bistuwangqiyuan/ps-terminal-manager.git
cd ps-terminal-manager
npm install
npm run compile
npm run package
2. 首次使用
插件安装后会自动启动,你会看到以下通知:
✅ 自动启动成功: "PowerShell Terminal Manager auto-started successfully"
如果没有自动启动,可以:
- 按
Ctrl+Shift+P
打开命令面板
- 输入 "Start PowerShell Terminal Manager"
- 点击 "Start Now" 开始监控
3. 验证插件工作
- 打开一个新的 PowerShell 终端(`Ctrl+Shift+``)
- 执行一个简单命令,如
Get-Date
- 等待 5 秒,终端会自动关闭
- 你会看到通知:"Terminal 'PowerShell' is idle and will close in 5 seconds"
⚙️ 配置说明
基本配置
在 VS Code 设置中搜索 "PowerShell Terminal Manager" 或直接编辑 settings.json
:
{
"psTerminalManager.enabled": true, // 启用插件
"psTerminalManager.timeoutMinutes": 5, // 超时时间(分钟)
"psTerminalManager.checkIntervalSeconds": 1, // 检查间隔(秒)
"psTerminalManager.autoStart": true, // 自动启动
"psTerminalManager.logLevel": "INFO", // 日志级别
"psTerminalManager.whitelistTerminals": [] // 白名单终端
}
配置选项详解
配置项 |
默认值 |
说明 |
推荐设置 |
enabled |
true |
启用/禁用插件 |
true |
timeoutMinutes |
5 |
命令最大执行时间 |
5-10 |
checkIntervalSeconds |
1 |
状态检查间隔 |
1-2 |
autoStart |
true |
启动时自动开始监控 |
true |
logLevel |
"INFO" |
日志级别 |
"INFO" |
whitelistTerminals |
[] |
不自动关闭的终端名称 |
根据需要添加 |
高级配置示例
{
"psTerminalManager.enabled": true,
"psTerminalManager.timeoutMinutes": 10, // 延长超时时间
"psTerminalManager.checkIntervalSeconds": 2, // 减少检查频率
"psTerminalManager.autoStart": true,
"psTerminalManager.logLevel": "WARN", // 只显示警告和错误
"psTerminalManager.whitelistTerminals": [
// 保护重要终端
"Production Server",
"Database Terminal",
"Monitoring Console"
]
}
🎯 使用场景
场景 1:日常开发
使用场景: 在开发过程中频繁使用 PowerShell 执行命令
配置建议: 使用默认配置,5 分钟超时,1 秒检查间隔
效果: 命令执行完毕后自动清理终端,保持工作区整洁
操作步骤:
- 打开 PowerShell 终端
- 执行开发命令(如
npm install
、git status
)
- 等待命令完成
- 5 秒后终端自动关闭
场景 2:长时间运行的任务
使用场景: 需要执行长时间运行的任务(如构建、测试)
配置建议: 增加超时时间到 10-15 分钟
效果: 给长时间任务足够的执行时间
配置示例:
{
"psTerminalManager.timeoutMinutes": 15,
"psTerminalManager.whitelistTerminals": ["Build Terminal"]
}
场景 3:生产环境管理
使用场景: 管理生产服务器,需要保护重要终端
配置建议: 使用白名单保护关键终端
效果: 重要终端不会被自动关闭
配置示例:
{
"psTerminalManager.timeoutMinutes": 30,
"psTerminalManager.whitelistTerminals": [
"Production Server 1",
"Production Server 2",
"Database Console"
]
}
📋 常用命令
插件提供以下命令,可以通过 Ctrl+Shift+P
访问:
命令 |
快捷键 |
功能 |
使用场景 |
Start PowerShell Terminal Manager |
- |
启动监控 |
手动启动插件 |
Stop PowerShell Terminal Manager |
- |
停止监控 |
临时禁用插件 |
Show PowerShell Terminal Manager Status |
- |
显示状态 |
查看监控状态 |
Emergency Stop - Disable All Auto-closing |
- |
紧急停止 |
快速禁用所有功能 |
命令使用示例
启动监控:
Ctrl+Shift+P
→ 输入 "Start PowerShell Terminal Manager"
- 点击命令或按回车
- 看到成功通知:"PowerShell Terminal Manager started successfully"
查看状态:
Ctrl+Shift+P
→ 输入 "Show PowerShell Terminal Manager Status"
- 查看监控的终端数量和状态
- 了解插件的运行情况
紧急停止:
Ctrl+Shift+P
→ 输入 "Emergency Stop"
- 确认操作
- 所有自动关闭功能立即停止
🔍 监控状态
状态指示器
插件在状态栏显示当前状态:
- 🟢 运行中: 正在监控终端
- 🔴 已停止: 监控已停止
- 🟡 警告: 有终端即将超时
状态信息
点击状态栏可以查看详细信息:
- 监控的终端数量: 当前正在监控的终端
- 已关闭的终端: 自动关闭的终端数量
- 超时关闭的终端: 因超时而关闭的终端数量
- 运行时间: 插件运行的总时间
📝 日志和调试
查看日志
- 按
Ctrl+Shift+P
打开命令面板
- 输入 "Developer: Show Output"
- 选择 "PowerShell Terminal Manager" 输出面板
- 查看详细的运行日志
日志级别
- INFO: 一般信息(默认)
- WARN: 警告信息
- ERROR: 错误信息
常见日志信息
[INFO] Terminal Monitor started with 1000ms interval
[INFO] Found 2 existing terminals
[INFO] Started monitoring 2 existing terminals
[TERMINAL] Terminal "PowerShell" identified as PowerShell/Cursor terminal
[TERMINAL] Started monitoring terminal: PowerShell
[TERMINAL] Terminal "PowerShell" is idle, will close in 5 seconds
[TERMINAL] Terminal closed due to idle timeout
🚨 故障排除
常见问题
Q: 插件没有自动启动?
A: 检查配置中的 autoStart
和 enabled
设置,确保都为 true
Q: 终端没有自动关闭?
A: 确认终端名称包含 "powershell"、"cursor" 等关键词
Q: 如何手动启动监控?
A: 使用命令面板执行 "Start PowerShell Terminal Manager" 命令
Q: 如何保护特定终端不被关闭?
A: 在配置的 whitelistTerminals
中添加终端名称
Q: 插件占用太多资源?
A: 增加 checkIntervalSeconds
值,减少检查频率
调试步骤
- 检查配置: 确认所有配置选项正确设置
- 查看日志: 在输出面板中查看详细日志
- 重启插件: 使用 "Stop" 和 "Start" 命令重启
- 检查终端: 确认终端类型和名称
- 重置配置: 恢复默认配置重新测试
性能优化
- 减少检查频率: 将
checkIntervalSeconds
设置为 2-3 秒
- 调整超时时间: 根据实际需求设置合适的超时时间
- 使用白名单: 只监控必要的终端
- 调整日志级别: 生产环境使用 "WARN" 或 "ERROR" 级别
🎯 最佳实践
开发环境
- 使用默认配置,快速响应
- 定期查看状态和日志
- 根据需要调整超时时间
生产环境
- 使用白名单保护重要终端
- 设置较长的超时时间
- 使用 "WARN" 日志级别
- 定期监控插件状态
团队协作
- 统一配置标准
- 共享白名单配置
- 建立故障排除流程
- 定期更新插件版本
📦 安装
从 VSIX 安装
- 下载最新的
ps-terminal-manager-0.1.2.vsix
文件
- 在 VS Code 中按
Ctrl+Shift+P
打开命令面板
- 输入 "Extensions: Install from VSIX..."
- 选择下载的
.vsix
文件
- 重启 VS Code
从源码构建
git clone https://github.com/bistuwangqiyuan/ps-terminal-manager.git
cd ps-terminal-manager
npm install
npm run compile
npm run package
🔧 配置
在 VS Code 设置中配置以下选项:
{
"psTerminalManager.enabled": true,
"psTerminalManager.timeoutMinutes": 5,
"psTerminalManager.checkIntervalSeconds": 1,
"psTerminalManager.autoStart": true,
"psTerminalManager.logLevel": "INFO",
"psTerminalManager.whitelistTerminals": []
}
配置说明
- enabled: 启用/禁用插件
- timeoutMinutes: 命令最大执行时间(分钟)
- checkIntervalSeconds: 状态检查间隔(秒)
- autoStart: 启动时自动开始监控
- logLevel: 日志级别(INFO/WARN/ERROR)
- whitelistTerminals: 不自动关闭的终端名称列表
📋 命令
插件提供以下命令:
Start PowerShell Terminal Manager
- 启动监控
Stop PowerShell Terminal Manager
- 停止监控
Show PowerShell Terminal Manager Status
- 显示状态
Emergency Stop - Disable All Auto-closing
- 紧急停止
🧪 开发
环境要求
- Node.js 16+
- VS Code 1.60.0+
- TypeScript 4.9+
开发命令
# 安装依赖
npm install
# 编译
npm run compile
# 运行测试
npm test
# 打包插件
npm run package
# 发布到市场
npm run publish
测试
# 运行所有测试
npm test
# 运行测试并显示覆盖率
npm run test:coverage
# 监听模式运行测试
npm run test:watch
📊 测试状态
- 测试用例: 56 个
- 通过率: 100%
- 测试覆盖: 良好
📚 文档
🐛 问题报告
如果遇到问题,请:
- 检查 VS Code 版本(需要 1.60.0+)
- 查看输出面板的日志信息
- 确认 PowerShell 终端类型
- 检查插件配置设置
📄 许可证
MIT License - 详见 LICENSE 文件
🤝 贡献
欢迎提交 Issue 和 Pull Request!
版本: v0.1.2
状态: ✅ 生产就绪,所有自动运行和自动关闭问题已修复
最后更新: 2025 年 8 月 15 日