-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.tmux.conf
executable file
·193 lines (160 loc) · 6.81 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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# prefix
set-option -g prefix C-q
unbind C-b
set -g mouse on
setw -g mouse on
setw -g mode-keys vi
set -g focus-event on
# neovim で Esc の認識が遅いのを改善する
set-option -g escape-time 0
set-option -sa terminal-overrides ',XXX:RGB'
# 閉じたときに再採番
set-option -g renumber-windows on
# 色設定 けど効いてない気がしたので、
# alias tmux='TERM=xterm-256color tmux' してる
set-option -g default-terminal xterm-256color
set -g terminal-overrides 'xterm:colors=256'
# Vi キーバインド
set-window-option -g mode-keys vi
# 設定リロード
bind-key r source-file ~/.tmux.conf
###################################################
# status bar
###################################################
set-option -g status on
set-option -g status-interval 1
# set-option -g status-utf8 on
# ステータスバーをトップに配置する
set-option -g status-position top
set -g status-right '#{?client_prefix,#[reverse],} #h %Y-%m-%d(%a) %H:%M'
# 文字色と背景色
set -g status-style fg=white,bg=black
set-option -g status-style bright
set -g window-status-current-style fg=brightwhite,bg=green
set-option -g message-style fg=white,bg=black
###################################################
# コピー系
###################################################
# clipboard連携
# http://d.hatena.ne.jp/tmatsuu/20111220/1324399472
if-shell "uname -a | grep -q Linux" {
# Linux メインはWayland
bind-key C-c run "tmux save-buffer - | wl-copy && wl-paste -n | wl-copy -p"
bind-key C-v run "wl-paste -n | tmux load-buffer - && tmux paste-buffer"
}
if-shell "uname -a | grep -q Darwin" {
bind-key C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind-key C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
}
if-shell "uname -a | grep -q WSL" {
# WSLはX11
bind-key C-c run "tmux save-buffer - | xclip -in clipboard"
bind-key C-v run "xclip -out | tmux load-buffer - && tmux paste-buffer"
}
# http://qiita.com/b4b4r07/items/01359e8a3066d1c37edc
# Prefix+v でコピーモード開始
bind-key v copy-mode \; display "Copy mode!"
# Esc キーでコピーの反転を解除(コピーモードは抜けない)
# bind-key -t vi-copy Escape clear-selection
bind-key -T copy-mode-vi Escape send-keys -X clear-selection
# Ctrl-c キーでコピーの反転を解除し、コピーモードから抜ける
# bind-key -t vi-copy C-c cancel
bind-key -T copy-mode-vi C-c send-keys -X cancel
# コピーモード中(Prefix+v 後)C-v で矩形選択開始
# bind-key -t vi-copy C-v rectangle-toggle
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
# 1行選択
# bind-key -t vi-copy V select-line
bind-key -T copy-mode-vi V send-keys -X select-line
# Setup 'v' to begin selection as in Vim
# bind-key -t vi-copy v begin-selection
bind-key -T copy-mode-vi v send-keys -X begin-selection
# http://unix.stackexchange.com/questions/131011/use-system-clipboard-in-vi-copy-mode-in-tmux
if-shell "uname -a | grep -q Linux" {
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy && wl-paste -n | wl-copy -p"
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "wl-copy && wl-paste -n | wl-copy -p"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy && wl-paste -n | wl-copy -p"
}
if-shell "uname -a | grep -q Darwin" {
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
}
# for vim clipboard
if-shell "uname -a | grep -q Linux" {
set-option -g default-command "zsh"
}
if-shell "uname -a | grep -q Darwin" {
set-option -g default-command "reattach-to-user-namespace -l zsh"
}
# Vi モード中に Ctrl-a で行頭に(Emacs ライク)
# bind-key -t vi-copy C-a start-of-line
bind-key -T copy-mode-vi C-a send-keys -X start-of-line
# Vi モード中に Ctrl-e で行末に(Emacs ライク)
# bind-key -t vi-copy C-e end-of-line
bind-key -T copy-mode-vi C-e send-keys -X end-of-line
# 単語の最初の1文字に移動
# bind-key -t vi-copy w next-word
bind-key -T copy-mode-vi w send-keys -X next-word
# 単語の最後の1文字に移動
# bind-key -t vi-copy e next-word-end
bind-key -T copy-mode-vi e send-keys -X next-word-end
# w の逆の動き back
# bind-key -t vi-copy b previous-word
bind-key -T copy-mode-vi b send-keys -X previous-word
# 画面上に映る最上行に移動
# bind-key -t vi-copy g top-line
bind-key -T copy-mode-vi g send-keys -X top-line
# 画面上に映る最下行に移動
# bind-key -t vi-copy G bottom-line
bind-key -T copy-mode-vi G send-keys -X bottom-line
# 前方検索
bind-key -T copy-mode-vi / command-prompt -ip "(search forward)" "send -X search-forward-incremental \"%%%\""
# 後方検索
bind-key -T copy-mode-vi ? command-prompt -ip "(search backward)" "send -X search-backward-incremental \"%%%\""
# ページスクロール
# bind-key -t vi-copy C-n page-up
# bind-key -t vi-copy C-f page-down
bind-key -T copy-mode-vi C-n send-keys -X page-up
bind-key -T copu-mode-vi C-f send-keys -X page-down
# ページ送り
# bind-key -t vi-copy C-u scroll-up
# bind-key -t vi-copy C-d scroll-down
bind-key -T copy-mode-vi C-u send-keys -X scroll-up
bind-key -T copy-mode-vi C-d send-keys -X scroll-down
###################################################
# ウインドウ・ペイン操作
###################################################
# ウィンドウ選択画面
bind Space choose-window
# インデックスを1から
set-option -g base-index 1
# Prefix+- で横に、Prefix+| で縦に分割(ペイン)する
bind-key | split-window -h
bind-key - split-window -v
# Prefix + Ctrl-h/l でウィンドウ切り替え
# Prefix + Ctrl-h,h,h,h,...と連打できる
bind-key -r C-h select-window -t :-
bind-key -r C-l select-window -t :+
# Prefix+hjkl でペイン移動
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
# ペインサイズを上下左右(Prefix+JKHL)に変更
# Prefix+J,J,J,J,...と連打してリサイズ可能
bind-key -r H resize-pane -L 5
bind-key -r J resize-pane -D 5
bind-key -r K resize-pane -U 5
bind-key -r L resize-pane -R 5
# Ctrl-o でペインをローテーションしながら移動
# Prefix を用いないのでタイプが楽だが、Ctrl-o を使用してしまう
# 他のソフトウェアの設定に支障をきたさないように注意
bind-key -n C-o select-pane -t :.+
##################################
# plugins
##################################
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @yank_selection 'clipboard'
run '~/.tmux/plugins/tpm/tpm'