# Easy config reload bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded" # Plugins setenv -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/plugins' set -g @plugin 'seebi/tmux-colors-solarized' set -g @plugin 'tmux-plugins/tmux-pain-control' set -g @plugin 'tmux-plugins/tmux-prefix-highlight' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tpm' # For resurrect # 自动备份时间间隔60min, 默认15min set -g @continuum-save-interval '60' set -g @continuum-restore 'on' set -g @resurrect-capture-pane-contents 'on' # Use vim keybindings in copy mode #set-window-option -g mode-keys vi set-option -g base-index 1 set-option -g renumber-windows on set -g mouse on # 打开鼠标支持 set-option -g display-time 5000 # 提示信息的持续时间 设置足够的时间以避免看不清提示,单位为毫秒 set-option -g repeat-time 1000 # 控制台激活后的持续时间 避免每次操作都要先激活控制台,单位为毫秒 # auto window rename set-option -g automatic-rename on # tmux menu bind-key A display-menu -x R -y P -T '#[align=centre fg=orange] Commands ' \ 'Synchronize Panes' 's' 'set-window-option synchronize-panes' \ 'Rename Tab' ',' 'command-prompt -I "#W" { rename-window "%%" }' \ 'Run Tmux Command' ':' 'command-prompt' # status bar set-option -g status on set-option -g status-interval 1 set-option -g status-position top set-option -g status-justify left set-option -g status-style none,fg=#a89984,bg=#3c3836 # status bar left set-option -g status-left-length 100 set-option -g status-left-style none set-option -g status-left '#[fg=#282828,bg=#a89984,nobold] #{E:@OS} Mars #S  #[fg=#a89984,bg=#262626,nobold]' # status bar right set-option -g status-right-length 150 set-option -g status-right-style none set-option -g status-right '#[fg=#a89984,bg=#262626]#[fg=#282828,bg=#a89984] #{E:@GIT_BRANCH} #[fg=#3c3836,bg=#a89984]#[fg=#3c3836]#[fg=#504945,bg=#3c3836]#[fg=#a89984,bg=#504945] #{E:@CPU}%% #[fg=#3c3836]#[fg=#a89984,bg=#504945]  %a %b %d #[fg=#3c3836] #[fg=#a89984,bg=#504945] %H:%M %p #[fg=#3c3836,bg=#504945]' ###{E:@IM} # window bar style set-option -g window-status-style 'fg=#3c3836,bg=#504945' set-option -g window-status-current-style 'fg=#ebdbb2,bg=#49556a' set-option -g window-status-activity-style 'fg=#3c3836,bg=#504945' set-option -g window-status-format ' #[fg=#a89984] #I: #W #{?window_last_flag, ,}#{?window_activity_flag,#[fg=#d79921]' set-option -g window-status-current-format ' #[fg=#ebdbb2] #I:#W #[fg=#689d6a]#{?window_zoomed_flag,,}' set-option -g window-status-separator '' set-option -ga terminal-features ',xterm-256color:RGB' set-option -g default-terminal 'xterm-256color' # pane border style set-option -g pane-active-border-style fg='#fe8019' set-option -g pane-border-style fg='#3c3836' # mode style set-option -g mode-style 'bg=brightblack,fg=white,noreverse' # status variables format if-shell 'test "$(uname)" = "Darwin"' { set-option -g @OS "" set-option -g @IM " #(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID | awk -F. '{print $4}' | sed s/PinyinKeyboard/中/)" set-option -g @CPU " #(iostat -c 2 disk0 | sed '/^\s*$/d' | tail -n 1 | awk '{usage=100-$6} END {print(usage)}' | sed 's/,/./')" } { set-option -g @OS "" set-option -g @IM " #(whoami)#{?SSH_CLIENT,@#h,}" set-option -g @CPU " #(vmstat 1 2 | tail -1 | awk '{usage=100-$15} END {print(usage)}' | sed 's/,/./')" } set-option -g @GIT_BRANCH " #(git -C #{pane_current_path} rev-parse --abbrev-ref HEAD || echo ' ')" # Pane之间切换的快捷键 bind h select-pane -L # 定位到左边窗口的快捷键 bind j select-pane -D # 定位到上边窗口的快捷键 bind k select-pane -U # 定位到下方窗口的快捷键 bind l select-pane -R # 定位到右边窗口的快捷键 # 垂直分割窗格 (Control + D) bind-key -n C-d split-window -h -c '#{pane_current_path}' # 水平分割窗格 (Control + Return) bind-key -n C-g split-window -v -c '#{pane_current_path}' # 新建选项卡 (Command + T) bind-key -n C-t new-window -c '#{pane_current_path}' # 关闭窗格 (Command + W) bind-key -n C-w kill-pane # 关闭选项卡 (Command + Shift + W) bind-key -n C-S-w kill-window # detach 当前窗口 bind-key -n C-q detach-client # 访问左边的窗格 (Command + H 或 Command + Left) bind-key -n C-h select-pane -L bind-key -n C-Left select-pane -L # 访问上面的窗格 (Command + J 或 Command + Up) bind-key -n C-j select-pane -U bind-key -n C-Up select-pane -U # 访问下面的窗格 (Command + K 或 Command + Down) bind-key -n C-k select-pane -D bind-key -n C-Down select-pane -D # 访问右边的窗格 (Command + L 或 Command + Right) bind-key -n C-l select-pane -R bind-key -n C-Right select-pane -R # 重命名 Window bind-key -n C-n command-prompt -p "(rename-window)" "rename-window '%%'" # 切换选项卡 (Command + 1 到 Command + 9) bind-key -n M-1 select-window -t :=1 bind-key -n M-2 select-window -t :=2 bind-key -n M-3 select-window -t :=3 bind-key -n M-4 select-window -t :=4 bind-key -n M-5 select-window -t :=5 bind-key -n M-6 select-window -t :=6 bind-key -n M-7 select-window -t :=7 bind-key -n M-8 select-window -t :=8 bind-key -n M-9 select-window -t :=9 bind-key -n C-l send-keys C-l \; # 切换到上一个选项卡 (Command + [) bind-key -n C-[ previous-window # 切换到下一个选项卡 (Command + ]) bind-key -n C-] next-window ### Run TPM Manger run '~/.tmux/plugins/tpm/tpm'