-
Notifications
You must be signed in to change notification settings - Fork 1
/
.tmux.conf
83 lines (69 loc) · 2.1 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
set -g default-terminal "screen-256color"
# set shell
set -g default-shell /bin/zsh
# prefix
set -g prefix 'C-\'
bind 'C-\' send-prefix
# history
set-option -g history-limit 5000
# force a reload of the config file
unbind R
bind R \
source-file ~/.tmux.conf \;\
display 'Reloaded tmux config.'
# don't resize window when using grouped sessions
setw -g aggressive-resize on
# reset the shell
unbind r
bind r send-keys ^c 'reset' Enter
# emacs -nw evil-mode compat
set -s escape-time 0
# copy mode
unbind [
bind y copy-mode
set-window-option -g mode-keys vi
unbind p
bind p paste-buffer
bind-key -T copy-mode-vi v send -X begin-selection
#bind -t vi-copy v begin-selection
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
#bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
bind-key -T copy-mode-vi Escape send -X cancel
#bind -t vi-copy Escape cancel
# Update default binding of `Enter` to also use copy-pipe
unbind-key -T copy-mode-vi Enter
#unbind -t vi-copy Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
#bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
# mouse
set -g mouse off
# splitting panes
unbind %
bind v split-window -h -c '#{pane_current_path}' # horizontal split, matches vim C-w v
unbind '"'
bind s split-window -v -c '#{pane_current_path}' # vertical split, matches vim C-w s
# moving around panes
bind K swap-pane -U
#bind J swap-pane -D
bind b break-pane
bind-key J command-prompt -p "join pane from:" "join-pane -s ':%%'"
bind-key S command-prompt -p "send pane to:" "join-pane -t ':%%'"
bind l select-pane -R
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind o select-pane -t :.+
bind n select-pane -t :.-
# moving between windows
bind W confirm-before -p "kill-window #W? (y/n)" kill-window
unbind \{
bind \{ previous-window
unbind \}
bind \} next-window
# pane resizing
bind Left resize-pane -L 5
bind Right resize-pane -R 5
bind Down resize-pane -D 5
bind Up resize-pane -U 5
# Focus events, so that vim-gitgutter will work
set -g focus-events on