インフラエンジニアのPC環境

インフラエンジニアは常に効率環境を目指している

ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム

OS


CUIソフト

今はほぼ未使用

操作を覚える必要のあるおすすめソフト

Action unknown: copypageplugin__copy
software:terminal:tmux


tmuxの便利な使い方

tmuxの特徴

tmux(ティーマックス/ティームックス)って読む

  • 設定により、マウスが使える。右クリックも表示される
  • コピーモードになり、キー操作でコピーする。
  • 細かい設定が可能
  • .tmux.confで、キーカスタマイズができる。


インストール

Ubuntu

sudo apt install tmux

Mac

brew install tmux


操作

セッション操作

tmux セッションを起動
tmux -a 中断していたセッションに戻る (Attach)
tmux a -t 名前 中断していた名前付きセッションに戻る
exit セションを終了
tmux list-sessions
Prefix s
セッションの一覧を表示
tmux kill-session -t 名前 指定したセッションを終了
prefix ? キーバインドの一覧を表示 (q で戻る)

ウィンドウ操作

Prefix c 新規ウィンドウを作成 (Create)
Prefix 数字 数字で指定したウィンドウに移動
Prefix w ウィンドウの一覧を表示 (Window)


ペイン操作操作


コピーモード操作

~/.tmux.conf に set-window-option -g mode-keys vi を追記して vi モードで使用するのがお勧めです。

Prefix [ コピーモード開始
Space コピー選択を開始する
Enter コピー選択を終了してコピーバッファに格納し、コピーモードを終了する
q コピーモードを途中で終了する


設定(.tmux.conf)

prefixの変更

# prefixキーをC-aに変更する
set -g prefix C-a

# デフォルトのprefixキーC-bを解除する
unbind C-b

ペインの分割

# | でペインを縦分割する
bind | split-window -h

# - でペインを縦分割する
bind - split-window -v

ペインの移動

# ペインの移動
bind -n C-h select-pane -L
bind -n C-j select-pane -D
bind -n C-k select-pane -U
bind -n C-l select-pane -R
# Prefix(Ctrl-b)をCtrl-aに変更する
unbind-key C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# ペインの開始番号を 0 から 1 に変更する
set-option -g base-index 1

# tmux起動時のシェルをzshにする
set-option -g default-shell /bin/zsh

# tmuxを256色表示できるようにする
set-option -g default-terminal screen-256color
set -g terminal-overrides 'xterm:colors=256'

# ステータスバーの背景色を変更する
set-option -g status-bg "colour255"


# コピーした際にWindowsのクリップボードにも転送する (yum install -y xsel)
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -bi"

#--------------------------------------------
# Mouse
#--------------------------------------------
# マウスでウィンドウ・ペインの切り替えやリサイズを可能にする
set-option -g mouse on                    # tmux 2.1以降
# set-option -g mode-mouse on               # tmux 2.0以前
# set-option -g mouse-select-window on      # tmux 2.0以前
# set-option -g mouse-select-pane on        # tmux 2.0以前
# set-option -g mouse-resize-pane on        # tmux 2.0以前

bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"

# マウスホイールでヒストリではなくスクロールできるようにする
set -g mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'



#--------------------------------------------
# Key Bind
#--------------------------------------------
# | でペインを縦分割する
bind | split-window -h

# - でペインを縦分割する
bind - split-window -v


# vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 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

コピーモード(vim風)

#--------------------------------------------
# Copy Mode
#--------------------------------------------
# コピーモードでvimキーバインドを使う
setw -g mode-keys vi

# 'v' で選択を始める
bind -T copy-mode-vi v send -X begin-selection

# 'V' で行選択
bind -T copy-mode-vi V send -X select-line

# 'C-v' で矩形選択
bind -T copy-mode-vi C-v send -X rectangle-toggle

# 'y' でヤンク
bind -T copy-mode-vi y send -X copy-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"

# 'Y' で行ヤンク
bind -T copy-mode-vi Y send -X copy-line

# Escで選択範囲を解除させる設定
bind -T copy-mode-vi Esc send-keys -X clear-selection

# 'C-p'でペースト
bind-key C-p paste-buffer


参考


software/terminal/tmux.txt · 最終更新: 2022/10/20 00:03 by kurihara

ページ用ツール