smug 一款用 go 实现的 tmux session manager

更新日期: 2022-05-28 阅读次数: 354 字数: 389 分类: Linux

之前由 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

tags: tmux

爱评论不评论