-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
.tmux.conf
111 lines (80 loc) · 4.8 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
# ================================================================================
# .tmux.conf
# ================================================================================
# Session Global Option (set-option -g)
# ================================================================================
# Prefix を Ctrl + t にする
set-option -g prefix C-t
# ペインの番号を 1 から開始する (デフォルトは 0)
set-option -g base-index 1
# tmux 上の vi で colorscheme が有効にならないため設定する
set-option -g default-terminal screen-256color
# 通常の枠線を水色にする
set-option -g pane-border-style fg="colour51"
# アクティブなペインの枠線を赤色にする
set-option -g pane-active-border-style fg="colour196"
# 非アクティブなウィンドウの背景色を灰色にする
set-option -g window-style 'bg=#303030'
# アクティブなウィンドウの背景色を黒色にする
set-option -g window-active-style 'bg=#000000'
# マウス操作を有効にする
set-option -g mouse on
# キーストロークのディレイを減らす
set-option -sg escape-time 1
# リフレッシュ間隔を変更する
set-option -g status-interval 1
# ステータスバーの右部分に時計を表示する
set-option -g status-right "[%Y-%m-%d (%a) %H:%M:%S]"
# MacOS : reattach-to-user-namespace を使用してクリップボード共有を有効にする
if -b 'command -v reattach-to-user-namespace > /dev/null 2>&1' 'set-option -g default-command "reattach-to-user-namespace -l bash"'
# Window Global Option (set-window-option)
# ================================================================================
# ウィンドウの番号を 1 から開始する (デフォルトは 0)
set-window-option -g pane-base-index 1
# コピーモード (Prefix + [ で開始) で vi キーバインドを使う
set-window-option -g mode-keys vi
# Bind Key
# ================================================================================
# Prefix + \ ・ Prefix + | でペインを縦に分割する (Tmux のバージョンによってエスケープ要否が異なる)
if-shell 'uname | grep -q MSYS' 'bind-key \ split-window -h'
if-shell 'uname | grep -q Darwin' 'bind-key \\ split-window -h'
if-shell 'uname | grep -q Linux' 'bind-key \\ split-window -h'
bind-key | split-window -h
# Prefix + - でペインを横に分割する
bind-key - split-window -v
# Prefix + hjkl でペイン移動
bind-key -r h select-pane -L
bind-key -r j select-pane -D
bind-key -r k select-pane -U
bind-key -r l select-pane -R
# Prefix + Shift + hjkl でペインをリサイズする
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
# Prefix + r で設定ファイルをリロードする
bind-key r source-file ~/.tmux.conf \; display "Reloaded."
# Prefix + o で tmux 用の画面クリアコマンドを入力する
bind-key o send-keys "clear && tmux clear-history" \; send-keys Enter
# Prefix + q でセッションを終了する
bind-key q kill-session
# Prefix + v でコピーモードを開始する (デフォルトは Prefix + [)
bind-key v copy-mode \; display "Copy Mode!"
# Prefix + Ctrl + p でペースト (デフォルトは Prefix + ]・クリップボード共有しているので Cmd + V でも OK)
bind-key C-p paste-buffer
# コピーモード中 v か Space で選択を始める
bind-key -T copy-mode-vi v send -X begin-selection \; display "Copy Start."
bind-key -T copy-mode-vi Space send -X begin-selection \; display "Copy Start."
# コピーモード中 V で行選択を始める
bind-key -T copy-mode-vi V send -X select-line \; display "Copy Line Start."
# コピーモード中 Ctrl + v で矩形選択を始める
bind-key -T copy-mode-vi C-v send -X rectangle-toggle \; display "Copy Rectangle Start."
# コピーモード中 y か Enter でヤンク (コピー)
# MacOS : reattach-to-user-namespace を使用
if -b 'command -v reattach-to-user-namespace > /dev/null 2>&1' 'bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" \; display "Copied!"'
if -b 'command -v reattach-to-user-namespace > /dev/null 2>&1' 'bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" \; display "Copied!"'
# Windows : tmux save-buffer で echo しパイプを使って clip.exe に渡す
if -b 'command -v clip.exe > /dev/null 2>&1' 'bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "tmux save-buffer - | clip.exe" \; display "Copied!"'
if -b 'command -v clip.exe > /dev/null 2>&1' 'bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "tmux save-buffer - | clip.exe" \; display "Copied!"'
# コピーモード中 Esc で中止
bind-key -T copy-mode-vi Escape send -X cancel