-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.tmux.conf
121 lines (110 loc) · 3.62 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
# View
# ステータスライン更新間隔(秒)
set -g status-interval 1
set -g status-left-length 100
set -g status-right-length 50
set-option -g set-titles on
set-option -g set-titles-string "@#h"
#set -g status-left '#[fg=black][#20(whoami)@#H]#[default]'
set -g status-right '#[fg=#af8700] %a ❮ %Y-%m-%d ❮ %H:%M:%S #[default]'
# Option
# コピー、選択モードのキーバインドvi/emacs
set-window-option -g mode-keys vi
# マウス有効。MacのTerminal.appでは効かず…
#set-option -g mouse-select-pane on
# ウィンドウ等の番号基準値
set-option -g base-index 1
# 後方スクロール行数の指定
set-option -g history-limit 5000
# Escキーを素早く認識
set -s escape-time 0
# Colour
# term
#set -g default-terminal "screen-256color"
# status
# messages
# panel
# KeyBindings
# プレフィックスキー
set-option -g prefix C-t
bind-key C-t send-prefix
unbind-key C-b
# 直前のウィンドウ
bind - last-window
# 設定リロード
bind r source-file ~/.tmux.conf
# ウィンドウ選択画面
bind Space next-layout
# 新ウィンドウ作成
bind c new-window
# ペインの縦分割
bind s split-window -v
# ペインの横分割
bind v split-window -h
# ペイン間をhjklで移動
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# ペインリサイズ関連vi風
bind -r C-h resize-pane -L 6
bind -r C-l resize-pane -R 6
bind -r C-j resize-pane -D 6
bind -r C-k resize-pane -U 6
bind -r s swap-pane -U
# ペイン終了
#bind k kill-pane
# ウィンドウ終了
#bind K kill-window
# ペイン番号表示
bind i display-panes
# コピーモード
bind [ copy-mode
# ペースト
bind y paste-buffer
unbind ]
# ウィンドウ間の移動
bind n next-window
bind p previous-window
# ウィンドウの位置を移動
bind C-p run-shell 'tmux list-windows | head -n 1 | grep -q active || tmux swap-window -t -1'
bind C-n run-shell 'tmux list-windows | tail -n 1 | grep -q active || tmux swap-window -t +1'
# vでマーク開始
bind-key -T copy-mode-vi v send-keys -X begin-selection
# C-vで範囲選択モードをトグル
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
# yでヤンク
bind-key -T copy-mode-vi y send-keys -X copy-selection
# C-aで行頭へ
bind-key -T copy-mode-vi C-a send-keys -X start-of-line
# C-eで行末へ
bind-key -T copy-mode-vi C-e send-keys -X end-of-line
# どんなときもEscでキャンセル
bind-key -T edit-mode-vi Escape send-keys -X cancel
bind-key -T copy-mode-vi Escape send-keys -X cancel
bind-key -T choice-mode-vi Escape send-keys -X cancel
# 検索方向を入れ替え
bind-key -T copy-mode-vi / command-prompt -p "(search up)" "send -X search-backward \"%%%\""
bind-key -T copy-mode-vi ? command-prompt -p "(search down)" "send -X search-forward \"%%%\""
#
# tmux-powerline
#
set -g status-style fg=black,bg=green,fg=colour245,bg=colour235
set -g message-style fg=black,bg=green,fg=colour235,bg=colour148
set -g pane-border-style fg=white,bg=black,fg=colour235
set -g pane-active-border-style fg=green,bg=black,fg=colour148
set-option -g status on
#set-option -g status-interval 2
#set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
# guard で通知されるようにデフォルトのstatus-leftを利用
set -g status-left ' #h:#S #[default]'
set -g status-left-style fg=colour235,bg=colour148
#set-option -g status-left "#(~/.tmux/tmux-powerline/powerline.sh left)"
#
# Don't use tmux-powerline on windows, Because high CPU usage.
#
if "[[ ! $(uname -s) =~ ^CYGWIN ]]" "set-option -g status-right '#(~/.tmux/tmux-powerline/powerline.sh right)'"
# Session
new-session -d