-
Notifications
You must be signed in to change notification settings - Fork 0
/
tmux.conf
68 lines (53 loc) · 2.52 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
set -g default-terminal "tmux-256color"
# set-option -g default-command "/usr/local/bin/zsh"
set-option -g mouse on
# pane management
unbind %
bind | split-window -h -c "#{pane_current_path}"
unbind '"'
bind - split-window -v -c "#{pane_current_path}"
bind -r j resize-pane -D 5
bind -r k resize-pane -U 5
bind -r l resize-pane -R 5
bind -r h resize-pane -L 5
bind -r m resize-pane -Z
# increase scrollback buffer.
set-option -g history-limit 16384
# http://robots.thoughtbot.com/tmux-copy-paste-on-os-x-a-better-future
# Use vim keybindings in copy mode, y to yank.
setw -g mode-keys vi
bind-key -Tcopy-mode-vi 'v' send -X begin-selection
bind-key -Tcopy-mode-vi 'y' send -X copy-pipe-and-cancel "pbcopy"
# unbind -Tcopy-mode-vi 'Enter'
# bind-key -Tcopy-mode-vi 'Enter' send -X copy-selection
bind-key -Tcopy-mode-vi Escape send -X cancel
bind-key -Tcopy-mode-vi V send -X rectangle-toggle
# https://stackoverflow.com/questions/10543684/how-can-i-clear-scrollback-buffer-in-tmux
# bind -n C-S-k clear-history
# bind -n C-6 clear-history
bind -n C-o clear-history
# http://zanshin.net/2013/09/05/my-tmux-configuration/
# set window and pane index to 0 (0 by default)
set-option -g base-index 0
setw -g pane-base-index 0
# reload ~/.tmux.conf using PREFIX r
unbind r
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# https://github.com/tmux/tmux/issues/353
set-option -s escape-time 10
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'jimeh/tmux-themepack'
run '~/.tmux/plugins/tpm/tpm'
# Disable C-movement from wrapping around
# https://github.com/christoomey/vim-tmux-navigator#disable-wrapping
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?)(diff)?$'"
bind-key -n 'C-h' if-shell "$is_vim" { send-keys C-h } { if-shell -F '#{pane_at_left}' {} { select-pane -L } }
bind-key -n 'C-j' if-shell "$is_vim" { send-keys C-j } { if-shell -F '#{pane_at_bottom}' {} { select-pane -D } }
bind-key -n 'C-k' if-shell "$is_vim" { send-keys C-k } { if-shell -F '#{pane_at_top}' {} { select-pane -U } }
bind-key -n 'C-l' if-shell "$is_vim" { send-keys C-l } { if-shell -F '#{pane_at_right}' {} { select-pane -R } }
bind-key -T copy-mode-vi 'C-h' if-shell -F '#{pane_at_left}' {} { select-pane -L }
bind-key -T copy-mode-vi 'C-j' if-shell -F '#{pane_at_bottom}' {} { select-pane -D }
bind-key -T copy-mode-vi 'C-k' if-shell -F '#{pane_at_top}' {} { select-pane -U }
bind-key -T copy-mode-vi 'C-l' if-shell -F '#{pane_at_right}' {} { select-pane -R }