tmux.conf 3.4 KB
Newer Older
P
plum-lihui 已提交
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
unbind C-b
# remap prefix to Control + z
set -g prefix C-a
# bind 'C-z C-z' to type 'C-z'
bind C-a send-prefix


# 0 is too far from ` ;)
set -g base-index 1

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000

setw -g mode-keys vi
#setw -g mode-mouse on
setw -g monitor-activity on
set -g mouse on

bind-key v split-window -h -c "#{pane_current_path}"
bind-key s split-window -v -c "#{pane_current_path}"
bind-key c new-window -c "#{pane_current_path}"

bind-key -n C-S-Left  swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

# bind-key J resize-pane -D 5
# bind-key K resize-pane -U 5
# bind-key H resize-pane -L 5
# bind-key L resize-pane -R 5

# bind-key M-j resize-pane -D
# bind-key M-k resize-pane -U
# bind-key M-h resize-pane -L
# bind-key M-l resize-pane -R

# Vim style pane selection
bind h select-pane -L
bind j select-pane -D 
bind k select-pane -U
bind l select-pane -R
bind K kill-pane -a

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# bind -n M-h select-pane -L \; resize-pane -Z
# bind -n M-j select-pane -D \; resize-pane -Z
# bind -n M-k select-pane -U \; resize-pane -Z
# bind -n M-l select-pane -R \; resize-pane -Z

# # Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n C-Left  previous-window
bind -n C-Right next-window

bind -n M-n  previous-window
bind -n M-p nejt-window

# Map Alt-z to zoom in and out pane
bind -n M-z resize-pane -Z
bind -n M-q resize-pane -Z

# # Use v to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection
#
# # Use y to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# No delay for escape key press
set -sg escape-time 0

# THEME
set -g status-style bg=black,fg=white
# set -g status-bg black
# set -g status-fg white
set -g window-status-current-style bg=green,fg=black,bold
set -g pane-active-border-style fg=green,bg=black
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=green](#S) #(whoami)'
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'

# synchronouse windows
# setw synchronize-panes

# pane movement
bind-key b command-prompt -p "join pane from:"  "join-pane -s ':%%'"
bind-key a command-prompt -p "send pane to:"  "join-pane -t ':%%'"
# # for vim
# # Smart pane switching with awareness of Vim splits.
# # See: https://github.com/christoomey/vim-tmux-navigator
# is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
#     | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
# bind-key -n C-h if-shell "$is_vim" "send-keys C-h"  "select-pane -L"
# bind-key -n C-j if-shell "$is_vim" "send-keys C-j"  "select-pane -D"
# bind-key -n C-k if-shell "$is_vim" "send-keys C-k"  "select-pane -U"
# bind-key -n C-l if-shell "$is_vim" "send-keys C-l"  "select-pane -R"
# bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# bind-key -T copy-mode-vi C-h select-pane -L
# bind-key -T copy-mode-vi C-j select-pane -D
# bind-key -T copy-mode-vi C-k select-pane -U
# bind-key -T copy-mode-vi C-l select-pane -R
# bind-key -T copy-mode-vi C-\ select-pane -l