repl.info

tmux内でコマンドを実行する際に新しいウィンドウやウィンドウを分割して実行する

本記事はターミナルマルチプレクサ Advent Calendar 2011 : ATNDの3日 目です.2日目はtmuxのjoin-paneからpaneの指定方法を学ぶ (ターミナ ルマルチプレクサ Advent Calendar 2日目) – kozo2のはてなダイアリー でした. tmuxとzshを使った小ネタです.zsh以外のシェルでも可能だと思います.

  • tmux内でsshを実行すると新しいウィンドウを作成してそこで実行する
  • tmux内でmanを実行するとウィンドウを分割してそこで実行する

~/.zshrcに設定するだけです.

# tmuxの中でsshを実行した場合,新しくウィンドウを作成するif[$TERM= screen];thenfunctionssh\_tmux() {evalserver=\${$#}

        tmux new-window -n $@"exec ssh $@"}aliasssh=ssh_tmuxfi# tmuxの中でmanを実行した場合,新しくペインを作成するif[$TERM= screen];thenfunctionman\_tmux() {evalserver=\${$#}

        tmux split-window"exec man $@"}aliasman=man_tmuxfi

tmuxのnew-windowやsplit-windowは,実行した後に引数のコマ ンドを実行することができるので,それを利用しているだけです. ただ,この設定だと,新規ウィンドウや新規ペインでssh・manを実行し たくない時どうすればいいのか分かりません.誰か知っている人がいた ら教えてください.