|
|
- # Bind escape to copy mode
- unbind [
- bind Escape copy-mode
-
- # p = paste
- unbind p
- bind p paste-buffer
-
- # no escape delay
- set -sg escape-time 0
-
- # remap prefix to Control + a
- set -g prefix C-a
- unbind C-b
- bind C-a send-prefix
-
- # Start window numbering at 1 (default => 0)
- set -g base-index 1
-
- set -g clock-mode-style 12
-
- # Renumber windows after removing one
- set -g renumber-windows on
-
- # use 256 colors
- # set -g default-terminal 'tmux-256color-italic'
- set-option -ga terminal-overrides ",xterm-256color-italic:Tc"
- # set -g default-terminal "tmux-256color-italic"
-
-
- # change tmux bar colors
- set -g status-bg '#B388FF'
- set -g status-fg '#EEEEEE'
-
- # Keep plenty of history for scrollback
- set -g history-limit 50000
-
- # mouse
- set -g mouse on
-
-
- # Act like vim in copy mode
- set -g status-keys vi
- setw -g mode-keys vi
- bind-key -Tcopy-mode-vi 'v' send -X begin-selection
-
- # 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"
-
- # Secondary binding for C-l to retain redraw
- bind C-l send-keys 'C-l'
-
- # Easy rotating of panes
- bind C-k swap-pane -U
-
- # increase display time
- set -g display-panes-time 1200
-
- # status bar stuff
- set -g status-left-length 40
-
- # Simplify status bar display.
- set -g status-left '[#S]'
- set -g status-right "%I:%M %p "
- # set -g status-right "#[fg=red][44%%]#[default] - %I:%M %p "
-
- # Dismiss current pane to background window
- bind b break-pane -d
- bind-key j command-prompt -p "join pane from: " "join-pane -h -s '%%'"
-
- # more intuitive keybindings for splitting
- bind \\ split-window -h -c "#{pane_current_path}"
- bind - split-window -v -c "#{pane_current_path}"
-
- # Easy return to Vim from tmux runner zoom runner pane
- bind C-p run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys ':VtrZoomRunnerPane' 'C-m') || tmux send-keys 'C-c' && tmux select-pane -l"
-
- # Make C-j display a selectable list of sessions
- bind C-j choose-tree
-
- # Keep window names as I set them
- setw -g automatic-rename off
-
- # Reload tmux.conf with prefix-r
- bind C-r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf"
-
- # Provide access to the clipboard for pbpaste, pbcopy (details: http://goo.gl/DN82E)
- set-window-option -g automatic-rename on
-
- # Enable VI mode
- set-window-option -g mode-keys vi
-
- # Set ability to capture on start and restore on exit window data when running an application
- setw -g alternate-screen on
-
- # bind resizing of panes to H,J,K,L (resizes by steps of 10 lines/columns)
- # # Note, bindings are repeatable (within the default 500ms time limit) so that
- # # you don't have to keep entering the prefix. (Prefix-H-H-H resizes by 15)
- bind -n S-Left resize-pane -L 2
- bind -n S-Right resize-pane -R 2
- bind -n S-Down resize-pane -D 1
- bind -n S-Up resize-pane -U 1
- unbind -n C-Left
- unbind -n C-Down
- unbind -n C-Up
- unbind -n C-Right
- bind -n C-Left resize-pane -L 10
- bind -n C-Right resize-pane -R 10
- bind -n C-Down resize-pane -D 5
- bind -n C-Up resize-pane -U 5
|