tmux で新しいウィンドウを開いてコマンド実行


screen 風に使える。要 Ruby 1.9。

#!/usr/bin/env ruby
require "shellwords"
command = ARGV.first
exec %{tmux new-window} unless command
raise "No such file or directory: #{command}" unless system("which #{command.shellescape}", out: "/dev/null")
exec %{tmux new-window -n #{command.shellescape} #{ARGV.shelljoin.shellescape}}

パスの通ったところに t という名前で保存。chmod a+x しておく

tmux
# 引数がなければ新しいウインドウを開くだけ
t
# コマンド (+引数) を渡せば新しいウィンドウで実行
# ウィンドウの名称はコマンド名になる
t sleep 5