JavaScriptを有効にしてください

おすすめtmuxキーバインド

 ·  ☕ 5 分で読めます

tmuxとは

ターミナルをカスタマイズできるツール

画面を分割してそれぞれにshellを起動させたり、タブを作ったりできる。
また、

  • となりの分割した隣のshellに移動したり
  • そのshellを一時的に全画面にしたり
  • 分割する大きさの比率を変えたり
  • 隣のタブに移動したり
    といったことが全部キーボードのショートカットだけで操作できる。

最初はギーク感がすごくてハードル高かったけど、使い始めてみたらハマりました。
基本的にvimでコーディングするときに使ってますが、
やっぱりシェルとエディタを同じ画面上で、しかもワンタッチで移動できるというのがすごく便利。

(追記) tmuxのメリット

書き忘れたけど、tmuxはsshで作業する人に非常に便利。

tmuxはローカルのtmuxサーバーでshellのプロセスを管理してる。
なので、
リモートからsshで作業するときに、tmuxのセッションの中で作業しておけば、sshの接続が切れても、繋ぎなおしてtmuxのセッションを開けばまた作業していた画面に戻れる。

あと、どんなクライアントからsshで繋いでもtmuxに入ってさえしまえば、ローカルのターミナルと同じデザイン、ショートカットを使えるというのもいい。

キーバインド

tmuxを操作するためのショートカットキーは、自分でコンフィグをいじって色々設定できます。
このコンフィグは色んな人が、使いやすくカスタマイズしたものを公開してくれています。

で、自分のコンフィグは以下。

~/.tmux.conf

unbind C-b
set -g prefix C-f
bind-key C-f last-window
bind-key e send-prefix

set -g status-position bottom
set -g status-bg colour234
set -g status-fg colour137
set -g status-attr dim
set -g status-left ''
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-fg colour81
setw -g window-status-current-bg colour238
setw -g window-status-current-attr bold
setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F '

setw -g window-status-fg colour138
setw -g window-status-bg colour235
setw -g window-status-attr none
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '

setw -g window-status-bell-attr bold
setw -g window-status-bell-fg colour255
setw -g window-status-bell-bg colour1

# 新しいWindowを開く場合
bind c new-window -a -c '#{pane_current_path}' \; source-file ~/tmux/config/tmux.neww
# 現在のPaneを水平分割してWindowを開く
bind | split-window -h -c '#{pane_current_path}'
# 現在のPaneを垂直分割してWindowを開く
bind 
- split-window -v -c '#{pane_current_path}'

set -sg escape-time 1

# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+

# # Vimのキーバインドでペインをリサイズする
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

使い方

############コマンドライン指定############ 
# 新規セッション開始
tmux

# 名前をつけて新規セッション開始
tmux new -s <セッション名>

# セッションの一覧表示
tmux ls

# 接続クライアントの一覧表示
tmux lsc

# セッションを再開 ※-t <対象セッション名>でセッション名の指定も可能
tmux a

# セッションを終了 ※-t <対象セッション名>でセッション名の指定も可能
tmux kill-session

# tmux全体を終了
tmux kill-server

# その他コマンドを実行
tmux [command [flags]]




##########キー操作##########

###基本

?      キーバインド一覧
:      コマンドプロンプト
        show-options -g や show-window-options -g 入力で設定一覧を表示
		-gはグローバル指定(デフォルト)の意、個別に設定された値は-g無しで確認する

###セッション操作

s      セッションの一覧選択
d      セッションから離脱(デタッチ)
$      セッションの名前変更
ctrl+Z tmuxを一時中断 ※fgで復帰

###ウィンドウ操作

c      新規ウインドウ作成
w      ウインドウの一覧選択
0-9    指定番号のウインドウへ移動
&      ウインドウの破棄
n      次のウインドウへ移動
p      前のウインドウへ移動
l      以前のウインドウへ移動
'      入力番号のウインドウへ移動
.      入力番号にウインドウ番号を変更
,      ウインドウの名前変更
f      ウインドウの検索

###ペイン操作

%            左右にペイン分割
"            上下にペイン分割
q            ペイン番号を表示
カーソル      指定方向のペインへ移動 ※連続押しでプレフィックス継続
Shift-vimのカーソル移動 ペインのサイズを変更 ※連続押しでプレフィックス継続
!            ペインを解除してウインドウ化
x            ペインの破棄
o            ペインを順に移動
;            以前のペインへ移動
z            現在のペインを最大化/復帰
スペース      レイアウトを変更
Alt-1-5      レイウトを変更
{            ペインの入れ替え(前方向)
}            ペインの入れ替え(後方向)
ctrl+o       ペインの入れ替え(全体)
t            ペインに時計を表示

###コピーモード

[       コピーモードの開始(カーソルキーで自由に移動)
スペース コピー開始位置決定(viモード)
エンター コピー終了位置決定(viモード)
]       コピーした内容を貼り付け

※  viモードで無い場合は、設定ファイルに set-window-option -g mode-keys vi を追加

###その他

]       スクロールモード
tmux a -d アタッチ時に画面サイズを合わせる(smaller client時)

基本的な使い方として、prefixキーのあとに続けて文字を打つことでコマンドを実行できます。

自分はprefixキーはctrl + fに設定してます。
macのキーボードだと、左手の小指と人差し指で押しやすい。

例えば、
新規ウィンドウは、ctrl + fを押した後にc
右のウィンドウに移動は、ctrl + fを押した後にn

気に入ってるキーバインドは、
h, j, k, lキーでvimと同じようにペイン移動できること。

あとは、
|(パイプ)でペインを縦分割、-(ハイフン)で横分割できることとか。

参考

vimのキーバインド風にtmuxのよく使う操作をチュートリアルっぽく解説 - Qiita

共有