cover
2016年8月26日 - 2022年4月11日

tmuxinator 使用

tmuxinator 是一个 tmux 的管理工具,使用它可以很方便的创建和管理 tmux. github 地址

安装

gem install tmuxinator

设置默认编辑器

tmuxinator 某些操作(如创建项目后打开)会需要调用默认编辑器,可以执行以下命令查看默认编辑器:

echo $EDITOR

若是没有设置可以将以下代码添加到你的默认 shell 配置文件中:

export EDITOR='vim'

自动补全

从仓库中或者是源码中下载对应的文件放到~/.bin文件夹中,然后将其配置到shell配置文件中,以zsh为例:

source ~/.bin/tmuxinator.zsh

使用

  • 创建一个项目

    tmuxinator new [project]
    
  • 编辑项目

    tmuxinator open [project]
    
  • 打开一个 session

    tmuxinator start [project] [alias]
    

    使用 alias 将会为 session 设定一个别名,让同一个配置文件可以重用

其他命令

  • 复制一个已有的项目

    tmuxinator copy [existing] [new]
    
  • 列出所有项目

    tmuxinator list
    
  • 删除项目

    tmuxinator delete [project]
    
  • 清空所有配置项

    tmuxinator implode
    
  • 检查环境配置文件等

    tmuxinator doctor
    
  • 显示帮助

    tmuxinator help
    
  • 显示项目执行的 shell 命令

    tmuxinator debug [project]
    
  • 显示版本号

    tmuxinator version
    

项目文件详解

# ~/.tmuxinator/sample.yml

name: sample # 定义项目名称
root: ~/ # 项目根路径,所有window和pane的默认路径

# Optional. tmux socket
# socket_name: foo

# Runs before everything. Use it to start daemons etc.
# 启动项目前前会先执行下面的命令,
# pre: sudo /etc/rc.d/mysqld start

# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# 大概意思是进入每个window和pane前都会执行下面的命令, 可以用来进入指定的解释器.
# pre_window: rbenv shell 2.0.0-p247

# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# 用来定义项目自己的tmux配置文件
# tmux_options: -f ~/.tmux.mac.conf

# Change the command to call tmux.  This can be used by derivatives/wrappers like byobu.
# 额...
# tmux_command: byobu

# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
# 定义项目启动时默认进入那个窗口
# startup_window: logs

windows: # 下面是项目中的所有窗口定义
    - editor: # 窗口名称
          layout: main-vertical # 窗口的布局方式
          root: ~/ # 窗口的根目录,不定义就使用项目的root
          panes: # 窗口下的面板
              - vim # 面板默认执行命令
              - guard
    - server: bundle exec rails s
    - logs: tail -f log/development.log