Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save furu/6698095 to your computer and use it in GitHub Desktop.
Save furu/6698095 to your computer and use it in GitHub Desktop.
for window in `tmux list-windows -F '#I'`; do
tmux select-window -t $window
tmux send-keys "source ~/.zshrc" C-m
done
@furu
Copy link
Author

furu commented Sep 25, 2013

メモ

やっていることとしては、tmux list-windows で現在のセッションのウィンドウの番号を取得し、select-window に取得したウィンドウの番号を渡してウィンドウを選択して、send-keys で選択したウィンドウに対して source ~/.zshrc してる。C-m は改行ではないけど改行になるって誰かがいってた。

このスクリプトだと現在のセッションだけしか適用されなくて、全セッションに対して zshrc の変更を適用させるにはもうちょっとどうにかしないといけない。

tmux list-windows

  • 現在のセッションのウィンドウをいろんな情報とともに表示する
  • -a が与えられるとサーバー上(たぶん全セッション)のウィンドウを表示する
  • -t target-session が与えられると target-session セッションのウィンドウを表示する
  • -F を受け取ることができ、表示する情報のフォーマットが指定できるっぽい
    • 詳しくは man の FORMATS セクションを見ろ
  • #I は Current window index とあって、ウィンドウの番号を表すっぽい

tmux select-window

  • 字面からウィンドウの選択ができるっぽい
  • ウィンドウを指定するには、-t target-window とする
    • target-window に何が指定できるのかわからんが、たぶん list-windows で書いたようなウィンドウの番号なんだろう
  • -l で最後のウィンドウ
  • -n で次のウィンドウ
  • -p で前のウィンドウ
  • -T はよくわからん
    • man には、-T が与えられて選択されたウィンドウがもうすでに現在のウィンドウであれば、そのコマンドは last-window のように振舞う って書いてある

tmux send-keys

  • ウィンドウへキー(複数可)を送ることができる
  • -t target-pane でたぶんペインを指定できるっぽい
  • 他のオプションはめんどいので理解していない

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment