-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
144 lines (121 loc) · 4.4 KB
/
.tmux.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
##########################################
# 各種設定
##########################################
# tmux起動時のシェルをzshにする
set -g default-shell /bin/zsh
set-option -g focus-events on
# tmuxを256色表示できるようにする
set -g default-terminal "screen-256color"
set -ga terminal-overrides "xterm-256color:Tc"
# paneの線を強調
set-option -g pane-active-border-style "bg=colour060"
set-option -ag pane-active-border-style "fg=black"
# window index, pane indexを変更
set -g base-index 1
setw -g pane-base-index 1
# マウス操作を有効にする
# iterm側の設定も必要 https://qiita.com/vintersnow/items/2880cc7b63a93a4d1b1d
set -g mouse on
bind -T edit-mode-vi WheelUpPane send-keys -X scroll-up
bind -T edit-mode-vi WheelDownPane send-keys -X scroll-down
##########################################
# キー設定
##########################################
# ESCの効きを良くする
set -s escape-time 0
# C-bのキーバインドを解除
unbind C-b
unbind =
# prefixキー
set -g prefix C-\\
# 設定リロード
bind R display-message "Reloaded ~/.tmux.conf" \; source-file ~/.tmux.conf
bind q kill-session
#### Pane ####
bind \\ display-panes
set -g display-panes-time 10000
set -g display-time 3000
# Enterで現在のペインを最大化
bind Enter resize-pane -Z
# 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
# ペイン縦分割
bind | split-window -h
bind r split-window -h \; resize-pane -R 50
# ペイン横分割
bind - split-window -v
bind b split-window -v \; resize-pane -D 15
#### コピーモードの設定 ####
# コピーモードでvimキーバインドを使う
setw -g mode-keys vi
# Iterm2のKey bindings のScroll One Page Up/Down][ [Page Up/Down] を削除する必要あり
bind -n Pageup copy-mode -u
bind -T copy-mode-vi Escape send-keys -X cancel
# '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
# 'Y' で行ヤンク
bind -T copy-mode-vi Y send -X copy-line
#### Popup ####
bind g popup -w95% -h95% -E lazygit
bind C-g popup -w95% -h95% -E lazydocker
bind ` popup -w95% -h95% -E -d "#{pane_current_path}" '\
if [ popup = $(tmux display -p -F "#{session_name}") ]; then \
tmux detach-client ; \
else \
tmux attach -c $(tmux display -p -F "#{pane_current_path}") -t popup || tmux new -s popup ; \
fi \
'
# popup以外のセッションに移動
bind s run-shell "tmux list-sessions -f \"##{!=:##{session_name},popup}\" | fzf-tmux -p | sed 's/:.*//' | xargs tmux switch -t"
##########################################
# ステータスバー
##########################################
set -g status-position bottom
# 左側
set -g status-left-length 100
# set -g status-left "#[bg=colour060]#[fg=colour007] #S #[bg=colour239]#[fg=colour007] #h "
set -g status-left "#[bg=colour060]#[fg=colour007] #S #[default] #h | #P"
# 右側
set -g status-right-length 90
set -g status-right "#{sysstat_cpu} | #{sysstat_mem} | #{sysstat_swap} | #{sysstat_loadavg} "
# 真ん中
set -g status-justify centre
set -g status-interval 10 # 更新頻度(second)
set -g status-bg "colour234"
set -g status-fg "colour007"
set-window-option -g window-status-current-format "#[fg=colour007,bg=colour234] #W #[default]"
##########################################
# tpm_plugins
##########################################
set -g @tpm_plugins ' \
tmux-plugins/tpm \
tmux-plugins/tmux-yank \
tmux-plugins/tmux-open \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-cpu \
tmux-plugins/tmux-continuum \
'
# auto start terminal
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'
# auto restore tmux
set -g @continuum-restore 'on'
set -g @continuum-save-interval '10' # 自動保存の間隔(minute)
set -g @plugin 'samoshkin/tmux-plugin-sysstat'
# load plugins
# <prifix>Ctrl+Uでアップデート、<prifix>Ctrl+Iでインストール
if-shell "[ -x ${HOME}/.tmux/plugins/tpm/tpm ]" "run-shell ${HOME}/.tmux/plugins/tpm/tpm"