ubuntu20.04 tmux 3.0
(バージョンを見るときは $ tmux -V )
※赤くハイライトしている部分は個人的に重要だと思っていて、よく使うものです。
---
tmuxとは
- terminal multiplexer (マルチプレクサ)
- 1つのウィンドウで複数のターミナルを管理できます。
- 便利ですが、少し学習が面倒です
tmux便利だと思うところ
- ターミナルを1つにまとめられること
- ウィンドウを閉じても、ログアウトしても再開できること(tmux -a で再開)
tmux不便なところ
- デフォルトではかなり使いにくい(→configファイルを書く)
- コピーペーストは、右クリックしながらでないとできない
- マウスではスクロールが大きくできない
- バーが出てこないのでマウスでは移動し辛い。
- 対応策→viの移動を使う。
- 『マウスカーソルを動かす』、または『 C-b, [ 』 でコピーモードに。viの移動が使えるようになる
- Ctrl d / u / f / bで半画面下/上/ 1画面下/上
- C-b のときはPrefixをかぶるので2回押さないといけない
インストール
$ sudo apt install tmux用語
- Prefix・・・コマンド入力を開始するキー。デフォルトはCtrl+b 。押しづらい。
- クライアント(=セッション)・・・ターミナルに相当
- ウィンドウ・・・ターミナルの中の画面
- ペイン・・・ウィンドウを分割したもの
コマンド
※ $ ... はターミナルでのコマンド。 $ なしは tmux上でのコマンド
※ C-b, a は Ctrl-b のあとに a の意味
※ a[ttach] は a でも attach でも同じ の意味
C-b, d tmuxから抜ける。デタッチ
$ tmux a[ttach] 前回デタッチしたところから起動
$ tmux a[ttach-session] -t num セッション番号numを起動
$ tmux ls 立ち上がっているクライアントを確認できる
$ tmux kill-session -t num セッション#num を消す
$ tmux kill-server 全セッションを消す
C-b, ? コマンド一覧を表示
C-b, " ペインを上下に分割
C-b, % ペインを左右に分割
C-b, ↑↓←→ カーソルを上下左右のペインに移動する
C-bを押したまま↑↓←→ ペインサイズ変更 (=ペインの端をマウスドラッグ)
$ tmux kill-server 全セッションを消す
C-b, ? コマンド一覧を表示
C-b, " ペインを上下に分割
C-b, % ペインを左右に分割
C-b, ↑↓←→ カーソルを上下左右のペインに移動する
C-bを押したまま↑↓←→ ペインサイズ変更 (=ペインの端をマウスドラッグ)
C-b, Altを押したまま↑↓ 同上
C-b, o ペインを移動する(ローテーション)
C-b, z カレントペインが最大になる(C-b, z/o で戻る)
C-b, x ペインをkill(=C-d , $ exit)
C-b, & ウィンドウをkill
paneを別windowを移動させるときは
C-b, z カレントペインが最大になる(C-b, z/o で戻る)
C-b, x ペインをkill(=C-d , $ exit)
C-b, & ウィンドウをkill
paneを別windowを移動させるときは
C-b, : でコマンドモードに入る
:join-pane [-s src-pane] [-t dst-pane]
今いるペインをwindow[1]に送る
join-pane -t :1
: が必要なので注意
https://unix.stackexchange.com/questions/14300/moving-tmux-pane-to-window/14301
こちらでもできそう
https://askubuntu.com/questions/824496/how-do-i-access-tmux-session-after-i-leave-it
こんなの→[1] 0:bash*ZM
[1] Session num
0: Window num
bash Window name
* current window
https://askubuntu.com/questions/824496/how-do-i-access-tmux-session-after-i-leave-it
tmuxターミナルの下側のバーの意味
こんなの→[1] 0:bash*ZM
[1] Session num
0: Window num
bash Window name
* current window
- previous window
Z one pane is maximized
M Marked pane
Marked pane については
Z one pane is maximized
M Marked pane
Marked pane については
・-s
to join-pane, swap-pane and swap-window のデフォルトのターゲットになる
・C-b m で On/Offできる
あまり使えていない。
https://superuser.com/questions/1056977/uppercase-m-at-the-right-of-window-name-in-tmux
SHITFキーを押しながらドラッグ右クリック ※先にドラッグできない
コピーペースト
マウスでドラッグ, コピー
(set -g mouse on を.tmux.confに記入すること)SHITFキーを押しながらドラッグ右クリック ※先にドラッグできない
viモードでコピペ
(set-window-option -g mode-keys vi を .tmux.confに記入すること)C-b, [ コピーモードに入る。viの操作で移動できるようになる。
→ Spaceでドラッグ開始。
→ Enter でクリップボードにコピー、通常モードに戻る
ペースト
C-b, ]
※コマンドをコピーすると
xclipをインストール
.mux.confに下記を記入
bind -t vi-copy y copy-pipe "xclip -sel clip -i"
※マウスで上の画面を表示しようとするとコピーモードに入ります。移動はviのコマンド: gg(先頭へ) G(末尾へ) C-u (半画面上へ) C-d (半画面下へ)が使いやすい。
$ tmux source-file ~/.tmux.conf
方法2. tmux kill-serverで全て消してから再起動する
ペースト
C-b, ]
※コマンドをコピーすると
xclipをインストール
.mux.confに下記を記入
bind -t vi-copy y copy-pipe "xclip -sel clip -i"
※マウスで上の画面を表示しようとするとコピーモードに入ります。移動はviのコマンド: gg(先頭へ) G(末尾へ) C-u (半画面上へ) C-d (半画面下へ)が使いやすい。
ペインを別ウィンドウに移動する
C-b, :pane-join -s :0 -t :1
とすると、Window0のアクティブペインが、Window1のアクティブペインの下に移動します。
https://unix.stackexchange.com/questions/14300/moving-tmux-pane-to-window
使い勝手をよくするため、 .tmux.conf にオプションを書く
.tmux.conf
をホームに置いて、オプションを書く。
方法1. 再読み込みコマンド(再起動は不要)をホームに置いて、オプションを書く。
$ tmux source-file ~/.tmux.conf
方法2. tmux kill-serverで全て消してから再起動する
.bashrcが反映されないとき
tmuxに入るとbashrcの内容が反映されないということがあります。bash_profileを使うからなので、.bash_profile の末尾に
. ~/.bashrc
と入力する。これでpash_profileからbashrc を呼び出してくれる。
https://stackoverflow.com/questions/9652126/bashrc-profile-is-not-loaded-on-new-tmux-session-or-window-why
.tmux.confの例
シンタックスハイライト
set -g default-terminal "screen-256color"日時表示を右下のバーに
set -g status-right "#[fg=cyan]%Y/%m/%d %H:%M %A"とすると、
fontはcyanで、2020/02/22/ 12:00 土曜日 のように表示されます。
マウスを使えるようにする(>2.1)
set -g mouse onデフォルトではマウスで操作できないので、できたほうが嬉しいです。tmux2.1からこの書き方になったようで、以前の書き方をコピペすると unknown option: mode-mouse というエラーが出たりします。
新しいウィンドウ、ペインをHOMEではなくカレントディレクトリで開く 参考
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"bind % split-window -h -c "#{pane_current_path}"
参考
https://mynavi-agent.jp/it/geekroid/2017/03/-11tmux.html
https://inokara.hateblo.jp/entry/2013/07/04/233051
http://robonchu.hatenablog.com/entry/2017/06/30/200630
my .tmux.conf
# When create new window, use current directory
bind c new-window -c '#{pane_current_path}'
bind '"' split-window -c '#{pane_current_path}'
bind % split-window -h -c '#{pane_current_path}'
# vi key-bind in copy mode
set-window-option -g mode-keys vi
set -g mouse on
set-option -s set-clipboard on
set-option -g default-command bash
set -g default-terminal "screen-256color"
set -g status-fg white
set -g status-bg black
set -g status-right "#[fg=cyan]%Y/%m/%d %H:%M %A"
0 件のコメント:
コメントを投稿