忍者ブログ
物理学者(ポスドク)による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

tmuxがすでに起動しているときはそれにデタッチする、起動してないときはnew windowする設定
を知りたい。
screenにはそういうことを自動的にやってくれるらしい

が、tmuxにはないので関数を作らないといけない



↓9年前の記事
tmuxが起動してると/tmp/tmux-*/defaultにファイルがあることを活用してる
この通り書いてみたけど、セッションの有無に関わらず、このファイルがあるので上手く行かなかった

■ 参考 : tmuxで、「セッションがあればアタッチ、なかったら作成」という形で立ち上げる方法。


↓やってることはシンプルで、tmux lsですでにセッションがあるか確認
あるなら、接続
ないなら、新規作成してる

■ 参考 : tmuxでセッションの有無を判別して起動するスクリプト






これに加えて、
新規で画面を開くときは、~/.tmux.conf以外の設定ファイルを読み込んで起動したかった
(共有アカウントで共有の計算機に入ったときにtmuxを使いたかったので)

やり方は以下の通り
source-fileのあとに書けばOK
function run_tmux(){
tmux ls > /dev/null
if [ $? -eq 1 -a -z "$TMUX" ]; then
tmux -2 new-session \; source-file /somewhere/.tmux.conf
elif [ -z "$TMUX" ] ; then
tmux -2 a;
else
echo "sessions should be nested with care."
fi
}








PR

全て終わってから気づいたこと
たぶんMacを再起動したら、デフォルトシェルがzshに変わります




いーや、今すぐシェルを変えたいんだ
という方は、以下の設定を ~/.tmux.conf に追記する
set-option -g default-shell "${SHELL}"
set -g default-command "${SHELL}"


設定を反映させるために、tmuxを再起動する
killall tmux; tmux
















なんか以前はできていた気がするけど、ある時からそれができなくなって不便だと気づいた
調べて見たら、v1.9から仕様が変更になったらしい

tmuxの設定ファイルに次のように書いておけばOK
# tmuxで新しいペインを開いた時に同じディレクトリで開くようにする
bind c new-window -c '#{pane_current_path}'

# ペイン分割時も同一ディレクトリで開くようにする
# 画面分割 |と-は感覚的に分かりやすいので追加してる。デフォルトは"と%
bind | split-window -c '#{pane_current_path}'
bind - split-window -h -c '#{pane_current_path}'
bind '"' split-window -c '#{pane_current_path}'
bind % split-window -h -c '#{pane_current_path}'


■ 参考 : tmuxで新しいペインを開いた時に同じディレクトリで開くようにする









セッションに接続する前に
tmux rename -t old_name new_name
みたいな感じ


またはセッションに接続した状態で
Prefix + $
これで
(rename-session) old_name
みたいな風に表示されるのでバックスペースで消して、new_nameと入力すればOK














#セッション名を付けてセッションを立ち上げる
# この場合は hoge
tmux new -s hoge

Prefix + dでセッションをデタッチ(一時的終了みたいなもの)

その後で、もう一度セッションに接続するときは
# 今あるセッションを確認する
tmux ls

# hoge というセッションに接続
tmux a -t hoge


絶対に覚えられないからalias作ろう・・・・

tmnew と tmcon でどうだろう?

tcshの場合は、
alias tmnew 'tmux new -s \!*'
alias tmcon 'tmux a -t \!*'
みたいな感じで












一番困るのはprefixをきちんと捉えてくれない問題
bind-key a send-prefix
とtmuxの設定ファイルに追記しておく

■ 参考 : tmux nested tmux (tmux の中で tmux) を使う設定(備忘録)








Mac OSX 10.10だと
環境設定 -> 言語とテキスト -> テキスト

tmux

Macでtmuxを使う上で、最初にしておきたい設定ではあると思う・・・・







ただの備忘録です


Prefix + o : pane間移動

Prefix - o : paneの並び替え(全体)
# これはうざいので .tmux.confに追記する事で無効にした

Prefix + c : 新しいwindowの作成
Prefix + 数字 : 数字のwindowに移動する
Prefix + w : 今、開いているwindowが一覧される(カーソルを合わせてEnterでwindowを移動できる)
Prefix + & : 今、開いているwindowを強制終了させる (y/nと聞かれる)
Prefix + n : 次のwindowへ移動(window index = 1, 2, 3 と正順に)
Prefix + p : 前のwindowへ移動(window index = 3, 2, 1 と逆順に)

Prefix + q : paneに分かりやすく数字が表示される

Prefix + [ : copy-modeに入る
# emacs-likeな方法
control + @ : copyの始点
control + w : copyの終点
# tmuxでフォルトの方法
space : copyの始点
return : copyの終点

Prefix + ] : copyしたものを貼付ける(デフォルトではcontrol+yでは貼付けられないみたい)

(2018/06/21 追記)
Prefix + meta + →
Prefix + meta + ↑
Prefix + meta + ←
Prefix + meta + ↓ : アクティブなペインの大きさを変更できる

■ 元記事 : ペインのサイズ変更


(2019/01/29 追記)
Prefix + z : 今いるペインを最大化できる。もう一度 Prefix + zで元の大きさに戻せる
Prefix + w : ウィンドウの一覧が表示できる。2個より多くのウィンドウを同時に扱っているときに便利そう




tmuxのprefixはデフォルトだとcontrol+bです
これは個人的には非常に押しにくい・・・
なので変更するのですが、果たして何に変更すべきか?

ググったところ .tmux.conf の設定だと多くの人がcontrol+aにしているらしい
これも「文末へ移動」のショートカットキーと被っていてあまり良い気がしない・・・

この件に関して、面白い記事がありました
■ 参考 : screen/tmuxのコマンドプレフィックスキーは何がベストか?

■ 元記事 : What's the least conflicting prefix/escape sequence for screen or tmux?

これは自分のprefixキーをcontrol+tにした後に見つけたのですが、色々と意見が分かれているようですね・・・
まぁ自分が使いやすければなんでもいいんだと思いますがね〜







(2017/3/31 追記)

使うことはないと思うけどメモ
パネルの同期
PrefixKey :set-window-option synchronize-panes on

パネルの同期をoff
PrefixKey :set-window-option synchronize-panes off

パネルのサイズ調整(押すごとにいろんな組み合わせで変化)
PrefixKey スペース










HOME |
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "先月子供が産まれました!"

# 最終更新 2022/10/25
カウンター
カウンター カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)

英語論文執筆用の例文検索サービス
(とんでもないものを見つけてしまった・・・・ arXivに収録されている 811,761報の 英語論文から,例文を検索するための検索エンジン)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]