smug 一款用 go 实现的 tmux session manager

文章目录

    之前由 tmuxinator 叛变到了 tmuxp, 但是不想 tmuxp 的打开速度奇慢无比,一个 8 个 window 的配置文件,
    打开需要 5 秒以上,慢的不可思议。

    于是今天借新建项目的机会,我又尝试了一个用 golang 实现的 tmux session 管理工具 - smug

    smug 的中文意思是:

    • adj. 自鸣得意的;自以为是的;整洁的
    • n. 书呆子;自命不凡的家伙

    我觉得可能是 session manager using go 的缩写吧,这样容易记忆。

    smug 的优势

    • 启动速度相比 tmuxp 这个渣渣快 N 倍,几乎秒开
    • 配置相对 tmuxp 简洁太多
    • 规避了对 ruby (tmuxinator) 和 python (tmuxp) 奇葩的版本依赖问题

    唯一的缺点是名字不好记。

    安装 smug

    全局安装 smug

    go install github.com/ivaaaan/smug@latest
    

    需要指定版本号,或 latest 否则会报错:

    go: 'go install' requires a version when current directory is not in a module
    Try 'go install github.com/ivaaaan/smug@latest' to install the latest version
    

    smug 被安装到了哪里

    > ls $GOPATH/bin
    asmfmt*  errcheck*    godef*      golangci-lint*  gomodifytags*  gorename*  guru*   impl*    motion*  smug*
    dlv*     fillstruct*  goimports*  golint*         gopls*         gotags*    iferr*  keyify*  office*  staticcheck*
    
    > echo $GOPATH
    /home/zhongwei/golang
    

    smug 的极简配置

    相对 tmuxp 罗里吧嗦的配置,smug 可以做到很简洁,虽然比不上 tmuxinator 的极简,但是已经可以接受了。

    例如, tools2.yml 的配置。

    session: tools2
    
    root: /mnt/d/work/tools2
    
    windows:
      - name: code
      - name: ssh
    

    常用命令

    smug start xxx
    smug stop xxx
    

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式