-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
.tmux.conf
133 lines (108 loc) · 4.17 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
set -g status on
set -g status-interval 2
# prefixキーをC-\に変更する
set -g prefix 'C-\'
unbind C-b
# デフォルトシェル
set -g default-shell /bin/bash
set -g default-command /bin/bash
# キーストロークのディレイを減らす
set -sg escape-time 1
# ウィンドウのインデックスを1から始める
set -g base-index 1
# ペインのインデックスを1から始める
set-window-option -g pane-base-index 1
# ウィンドウ履歴の最大行数
set -g history-limit 5000
# 代替画面バッファを使わないようにする(親端末のTERMがxtermの場合)
if '[ $(echo "`tmux -V | cut -d" " -f2` >= "2.2"" | bc) -eq 1 ]' \
'set-option -ga terminal-overrides ",xterm*:Tc"'
set-option -ga terminal-overrides ",xterm*:smcup@:rmcup@"
# ウィンドウ削除時に番号を詰める
set-option -g renumber-windows on
### Color ###
set -g default-terminal "screen-256color"
set -g status-fg colour252
set -g status-bg colour235
set -g status-attr default
set -g status-attr default
set-window-option -g window-status-current-bg colour61
# viのキーバインドを使用する
set-window-option -g mode-keys vi
# ctrlとかaltとかshiftと矢印キーを使えるようになるようだ
set-window-option -g xterm-keys on
# Escの効きがいいらしい
set -s escape-time 0
# 設定ファイルをリロードする
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# 直前の画面に移動
bind 'C-\' run "tmux last-pane || tmux last-window || tmux new-window"
# タイトル変更
bind A command-prompt "rename-window %%"
bind S command-prompt "rename-session %%"
# | でペインを縦に分割する
bind | split-window -h
bind -n 'M-\' split-window -hc "#{pane_current_path}"
# - でペインを横に分割する
bind - split-window -v
bind -n M-- split-window -vc "#{pane_current_path}"
# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# 矢印キーでペインを移動する
bind -n S-left select-pane -L
bind -n S-down select-pane -D
bind -n S-up select-pane -U
bind -n S-right select-pane -R
bind -n M-H select-pane -L
bind -n M-J select-pane -D
bind -n M-K select-pane -U
bind -n M-L select-pane -R
# すばやくコピーモードに移行
bind -n C-up copy-mode
bind -n C-down paste-buffer
# ウィンドウの移動
bind -n M-right next-window
bind -n M-left previous-window
bind -n M-up new-window
bind -n M-down confirm-before 'kill-window'
bind -n M-h previous-window
bind -n M-j confirm-before 'kill-window'
bind -n M-k new-window -c "#{pane_current_path}"
bind -n M-l next-window
# ペインの移動(ローテート)
#bind -n C-O select-pane -t :.+
bind -r C-o select-pane -t :.+
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
# コピーモードの操作をvi風に設定する
bind Space copy-mode
bind P paste-buffer
bind P paste-buffer
if '[ $(echo "`tmux -V | cut -d" " -f2` >= "2.4"" | bc) -eq 1 ]' \
'set-environment -g TMUX_VI_COPY "-Tcopy-mode-vi"; \
set-environment -g TMUX_SEND_OPTION "send -X"' \
'set-environment -g TMUX_VI_COPY "-t vi-copy"; \
set-environment -g TMUX_SEND_OPTION ""'
run-shell 'tmux bind $TMUX_VI_COPY v $TMUX_SEND_OPTION begin-selection'
run-shell 'tmux bind $TMUX_VI_COPY V $TMUX_SEND_OPTION select-line'
run-shell 'tmux bind $TMUX_VI_COPY C-v $TMUX_SEND_OPTION rectangle-toggle'
run-shell 'tmux bind $TMUX_VI_COPY y $TMUX_SEND_OPTION copy-selection'
run-shell 'tmux bind $TMUX_VI_COPY Y $TMUX_SEND_OPTION copy-line'
run-shell 'tmux bind $TMUX_VI_COPY Enter $TMUX_SEND_OPTION copy-pipe "xsel -i -b"'
run-shell 'tmux bind $TMUX_VI_COPY Escape $TMUX_SEND_OPTION cancel'
# Pre C-xでそのペインをkillする
bind C-x confirm-before 'kill-pane'
# Pre C-Xでそのウィンドウをkillする
bind C-X confirm-before 'kill-window'
# Pre qでそのセッションをkill-sessionする
bind q confirm-before 'kill-session'
# Pre C-qでtmuxそのもの(サーバとクライアント)をkillする
bind C-q confirm-before 'kill-server'