-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.tmux.conf
147 lines (113 loc) · 4.25 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
# プレフィックス {{{
set -g prefix C-t
unbind C-b
# prefixを2回押してCtrl-tを送る
bind C-t send-prefix
# }}}
# プラグイン {{{
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'nordtheme/tmux'
set -g @plugin 'fcsonline/tmux-thumbs'
run-shell ~/.tmux/plugins/tmux-thumbs/tmux-thumbs.tmux
set -g @thumbs-key f
set -g @thumbs-command 'echo -n {} | pbcopy'
set -g @thumbs-upcase-command 'echo -n {} | pbcopy'
# }}}
# True Colorを使う {{{
set -ga terminal-overrides ",$TERM:Tc"
set -g default-terminal "tmux-256color"
# }}}
# デフォルトシェル {{{
if-shell 'test -x /opt/homebrew/bin/fish' {
set -g default-shell /opt/homebrew/bin/fish
}
if-shell 'test -x /usr/local/bin/fish' {
set -g default-shell /usr/local/bin/fish
}
# }}}
# セッションオプション set-option (set) {{{
# prefix :show-options -g で確認
# ウィンドウ番号を1から開始
set -g base-index 1
# マウス
set -g mouse off
# バッファ上限数
set -g buffer-limit 32
# ビジュアルノーティフィケーション
set -g visual-activity on
# ウィンドウマネージャ向けのタイトル
set -g set-titles on
set -g set-titles-string ""
set -g renumber-windows on
# }}}
# ウィンドウオプション set-window-option (setw) {{{
# prefix :show-window-options -g で確認
# コピーモードのキーマップ。標準はemacs
setw -g mode-keys vi
# ウィンドウ名が自動的に更新されないようにする
setw -g automatic-rename off
# カレントではないウィンドウに変化があったときの通知をしない
setw -g monitor-activity off
# ペインの番号を1から開始
setw -g pane-base-index 1
setw -g wrap-search on
setw -g xterm-keys on
# }}}
# キーバインド bind-key (bind) / unbind-key (unbind) {{{
# prefix :list-keys で確認
# CtrlとAltが使える
# Ctrl : C-または^
# Alt : M-
# -rは連続で入力可能にする
# -nはプレフィックスキーをおさなくても動作するようになる
## 設定ファイルを再読込する
unbind r
bind r source-file ~/.tmux.conf\; display-message "[tmux] $HOME/.tmux.conf reloaded."
# prefix + C-c で新規ウィンドウ作成
bind C-c new-window
# 新しいSSH接続を名前をつけたウィンドウで作成する。
# unbind s
# bind-key s command-prompt -p "ssh new-window" "new-window -n %1 'ssh -t %1'"
# bind-key C-s command-prompt -p "ssh vertical-split" "split-window -h 'ssh -t %1'"
# bind-key S command-prompt -p "ssh horizontal-split" "split-window 'ssh -t %1'"
# tmuxは起動時に、環境変数をグローバル環境変数に格納する。
# かつ、セッションごとにも環境変数を持っている。
# なので新しいウインドウを作る時にグローバル環境変数をマージして子プロセスに渡す。
# prefixt :show-environment で確認可能。
set -g update-environment "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION"
# ペイン分割
unbind %
bind v split-window -h # 縦
unbind '"'
bind s split-window -v # 横
# ペイン終了
unbind !
bind q kill-pane
# 現在のペインを新しいウィンドウの単独ペインにする
bind b break-pane
# 現在のペインを別のウィンドウへ移動する
bind m command-prompt -p "move pane to:(window)" "join-pane -t:%1"
# 別ウィンドウのアクティブなペイン(もしくはウィンドウ番号.ペイン番号)を持ってくる
bind M command-prompt -p "join pane from: (window.pane)" "join-pane -s:%1"
# ペイン間の移動
bind j select-pane -D
bind k select-pane -U
bind h select-pane -L
bind l select-pane -R
# 直前にアクティブだったウィンドウへ
unbind t
bind t last-window
# ペインのサイズ変更
bind -r J resize-pane -D 3
bind -r K resize-pane -U 3
bind -r H resize-pane -L 3
bind -r L resize-pane -R 3
# ポップアップを起動
bind Space popup -xC -yC -w60% -h60% -E 'tmux a -t popup || tmux new -s popup';
# 作業ログを取る
# bind-key H pipe-pane 'cat >> $HOME/.tmux/tmux-#W.log' \; display-message 'Started logging to $HOME/.tmux/tmux-#W.log'
# bind-key h pipe-pane \; display-message 'Ended logging to $HOME/.tmux/tmux-#W.log'
# }}}
run '~/.tmux/plugins/tpm/tpm'
# vim: set et fenc=utf-8 ff=unix ft=tmux sts=2 sw=2 ts=2 fdm=marker: