Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cmdshow

基于 Windows Git Bash 的命令工具集,支持 iTerm2 风格标签页:Ctrl+T 在同一窗口新建标签页。

功能

  • Ctrl+T — 同一 mintty 窗口新建标签页
  • Ctrl+W — 关闭当前标签页
  • Ctrl+Tab — 切换标签页
  • cs new / cs here — 命令行方式新建标签页
  • cs win — 新建独立窗口
  • cs mark / cs go — 目录书签
  • cs cd / cs jump — 快速目录跳转

安装

方式一:双击安装(推荐)

双击运行 install.bat,安装脚本会自动:

  • 写入 ~/.bashrc(每次打开 Git Bash 自动加载 cs 命令)
  • 必要时补全 ~/.bash_profile 对 .bashrc 的加载
  • 配置 mintty 标签页快捷键

安装后只需重新打开 Git Bash,无需手动 source。

方式二:在 Git Bash 中安装

cd /d/code/cmdshow
bash scripts/install.sh

安装脚本会:

  1. 在 ~/.bashrc 中加载 cmdshow
  2. 在 ~/.minttyrc 中启用标签栏(TabBar=1)
  3. 在 ~/.minttyrc.keys 中配置 Ctrl+T = new-tab(不能写在 .minttyrc 里)
  4. 在 ~/.inputrc 中释放 Ctrl+T(避免与 readline 冲突)
  5. 清理之前误写入 .minttyrc 的快捷键(修复 Ignoring unknown option 'Ctrl+t')

使用

cs help          # 查看帮助
cs new           # 新建标签页(同一窗口)
cs here          # 在当前目录新建标签页
cs root          # 在 git 仓库根目录新建标签页
cs win           # 新建独立窗口

cs mark backend  # 添加书签
cs marks         # 列出书签
cs go backend    # 跳转到书签

原理说明

mintty 的标签页是 虚拟标签(3.5+):多个终端窗口位置同步叠加,顶部显示标签栏,效果类似 iTerm2,而非浏览器内嵌 DOM。

关键配置:

设置 值 作用
TabBar 4 启用标签栏 + 高级同步
SessionGeomSync 4 外部启动的窗口也加入同一标签组
Ctrl+T bash bind 每个标签页自动绑定,调用 cs new

之前弹新窗口的原因:误用了不存在的 --tab 参数,且 TabBar=1 同步级别不够。

项目结构

cmdshow/
├── bin/cmdshow          # CLI 入口
├── lib/
│   ├── core.sh          # 核心函数(检测 Git、新建窗口)
│   ├── commands.sh      # 命令实现
│   └── init.sh          # bash 初始化
├── config/
│   ├── minttyrc         # mintty 终端设置(TabBar 等)
│   ├── mintty.keys      # mintty 快捷键(→ ~/.minttyrc.keys)
│   └── inputrc          # readline 配置
├── scripts/install.sh   # 安装脚本
└── install.bat          # Windows 一键安装

扩展命令

在 lib/commands.sh 的 cmdshow_dispatch 中添加新 case 即可:

mycommand)  _cs_cmd_mycommand "$@" ;;

要求

卸载

从 ~/.bashrc、~/.minttyrc、~/.minttyrc.keys、~/.inputrc 中删除 # cmdshow: 标记块即可。

About

cmdshow,git bash增加tab

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages